ver 2010.02 → 2010.08

Sign up to get free protection for your applications and to get access to all the features.
Files changed (651) hide show
  1. data/.gitignore +1 -0
  2. data/.yardopts +1 -1
  3. data/AUTHORS +2 -2
  4. data/CHANGELOG +1160 -0
  5. data/MANIFEST +212 -62
  6. data/README.textile +68 -9
  7. data/Rakefile +2 -2
  8. data/bin/ver +33 -8
  9. data/config/commands/ANTLR.rb +11 -0
  10. data/config/commands/ActionScript.rb +102 -0
  11. data/config/commands/Active4D.rb +30 -0
  12. data/config/commands/Ada.rb +11 -0
  13. data/config/commands/Ant.rb +90 -0
  14. data/config/commands/Apache.rb +98 -0
  15. data/config/commands/AppleScript.rb +169 -0
  16. data/config/commands/Blogging.rb +72 -0
  17. data/config/commands/Bulletin Board.rb +10 -0
  18. data/config/commands/Bundle Development.rb +83 -0
  19. data/config/commands/C++ Qt.rb +158 -0
  20. data/config/commands/C.rb +82 -0
  21. data/config/commands/CMake.rb +32 -0
  22. data/config/commands/CSS.rb +76 -0
  23. data/config/commands/CTags.rb +29 -0
  24. data/config/commands/CVS.rb +114 -0
  25. data/config/commands/CoffeeScript.rb +58 -0
  26. data/config/commands/Context Free.rb +20 -0
  27. data/config/commands/Cucumber.rb +94 -0
  28. data/config/commands/D.rb +47 -0
  29. data/config/commands/Darcs.rb +72 -0
  30. data/config/commands/Diff.rb +76 -0
  31. data/config/commands/Doxygen.rb +9 -0
  32. data/config/commands/Experimental Wiki.rb +9 -0
  33. data/config/commands/Experimental.rb +172 -0
  34. data/config/commands/F-Script.rb +13 -0
  35. data/config/commands/FXScript.rb +11 -0
  36. data/config/commands/FileMerge.rb +42 -0
  37. data/config/commands/Fortran.rb +58 -0
  38. data/config/commands/GTD2.rb +134 -0
  39. data/config/commands/GTDAlt.rb +225 -0
  40. data/config/commands/GetBundle.rb +41 -0
  41. data/config/commands/Go.rb +29 -0
  42. data/config/commands/Graphviz.rb +11 -0
  43. data/config/commands/Greasemonkey.rb +158 -0
  44. data/config/commands/Gri.rb +11 -0
  45. data/config/commands/Groovy Grails.rb +174 -0
  46. data/config/commands/Groovy.rb +66 -0
  47. data/config/commands/HTML.rb +206 -0
  48. data/config/commands/Haskell.rb +48 -0
  49. data/config/commands/Hotkey.rb +50 -0
  50. data/config/commands/Hyperlink Helper.rb +81 -0
  51. data/config/commands/ImageBrowser.rb +10 -0
  52. data/config/commands/Io.rb +11 -0
  53. data/config/commands/JSFL.rb +29 -0
  54. data/config/commands/JSON.rb +11 -0
  55. data/config/commands/Java.rb +45 -0
  56. data/config/commands/JavaDoc.rb +12 -0
  57. data/config/commands/JavaScript Prototype & Script.aculo.us.rb +51 -0
  58. data/config/commands/JavaScript YUI.rb +12 -0
  59. data/config/commands/JavaScript jQuery.rb +12 -0
  60. data/config/commands/JavaScript.rb +50 -0
  61. data/config/commands/LaTeX.rb +423 -0
  62. data/config/commands/Lisp.rb +20 -0
  63. data/config/commands/Logo.rb +10 -0
  64. data/config/commands/Logtalk.rb +34 -0
  65. data/config/commands/Lua.rb +29 -0
  66. data/config/commands/MEL.rb +20 -0
  67. data/config/commands/Mail.rb +73 -0
  68. data/config/commands/Make.rb +20 -0
  69. data/config/commands/Man Pages.rb +20 -0
  70. data/config/commands/Markdown.rb +194 -0
  71. data/config/commands/Math.rb +79 -0
  72. data/config/commands/Matlab.rb +188 -0
  73. data/config/commands/Maven.rb +162 -0
  74. data/config/commands/Mediawiki.rb +12 -0
  75. data/config/commands/Mercurial.rb +185 -0
  76. data/config/commands/MoinMoin.rb +74 -0
  77. data/config/commands/Movable Type.rb +68 -0
  78. data/config/commands/Nemerle.rb +29 -0
  79. data/config/commands/OCaml Experimental Completions.rb +22 -0
  80. data/config/commands/OCaml.rb +99 -0
  81. data/config/commands/Objective-C.rb +181 -0
  82. data/config/commands/Outlines.rb +54 -0
  83. data/config/commands/PHP Smarty.rb +10 -0
  84. data/config/commands/Pascal.rb +11 -0
  85. data/config/commands/Perforce.rb +102 -0
  86. data/config/commands/Perl.rb +78 -0
  87. data/config/commands/Processing.rb +11 -0
  88. data/config/commands/Prolog.rb +11 -0
  89. data/config/commands/Property List.rb +38 -0
  90. data/config/commands/Python Django.rb +11 -0
  91. data/config/commands/Python.rb +131 -0
  92. data/config/commands/R Console (R.app).rb +80 -0
  93. data/config/commands/R Console (Rdaemon).rb +414 -0
  94. data/config/commands/R.rb +337 -0
  95. data/config/commands/Ragel.rb +10 -0
  96. data/config/commands/Regular Expressions.rb +18 -0
  97. data/config/commands/Remind.rb +44 -0
  98. data/config/commands/Ruby RSpec.rb +40 -0
  99. data/config/commands/Ruby on Rails.rb +331 -0
  100. data/config/commands/Ruby.rb +220 -0
  101. data/config/commands/S5 Slide Show.rb +37 -0
  102. data/config/commands/SCons.rb +24 -0
  103. data/config/commands/SQL.rb +60 -0
  104. data/config/commands/SVK.rb +83 -0
  105. data/config/commands/SWeave.rb +63 -0
  106. data/config/commands/Scheme.rb +30 -0
  107. data/config/commands/Scilab.rb +28 -0
  108. data/config/commands/Setext.rb +20 -0
  109. data/config/commands/Shell Script.rb +59 -0
  110. data/config/commands/Slate.rb +9 -0
  111. data/config/commands/Source.rb +84 -0
  112. data/config/commands/Standard ML.rb +38 -0
  113. data/config/commands/Subversion.rb +181 -0
  114. data/config/commands/TODO.rb +32 -0
  115. data/config/commands/Tcl.rb +21 -0
  116. data/config/commands/TerminalMate.rb +30 -0
  117. data/config/commands/Text.rb +137 -0
  118. data/config/commands/TextMate.rb +100 -0
  119. data/config/commands/Textile.rb +58 -0
  120. data/config/commands/Thrift.rb +20 -0
  121. data/config/commands/Transmit.rb +34 -0
  122. data/config/commands/Txt2tags.rb +213 -0
  123. data/config/commands/Vectorscript.rb +19 -0
  124. data/config/commands/Widget Creator.rb +23 -0
  125. data/config/commands/XML.rb +29 -0
  126. data/config/commands/Xcode.rb +106 -0
  127. data/config/commands/YAML.rb +39 -0
  128. data/config/commands/YARD.rb +12 -0
  129. data/config/commands/iTerm.rb +26 -0
  130. data/config/commands/reStructuredText.rb +126 -0
  131. data/config/detect.rb +13 -1
  132. data/config/keymap/diakonos.rb +113 -115
  133. data/config/keymap/emacs.rb +6 -2
  134. data/config/keymap/nano.rb +104 -112
  135. data/config/keymap/vim.rb +329 -258
  136. data/config/plugin/autosave.rb +3 -6
  137. data/config/plugin/git.rb +18 -12
  138. data/config/plugin/soma.rb +1 -1
  139. data/config/preferences/Apache.rb +17 -17
  140. data/config/preferences/AppleScript.rb +5 -5
  141. data/config/preferences/Bundle Development.rb +10 -10
  142. data/config/preferences/C.rb +38 -30
  143. data/config/preferences/CoffeeScript.rb +28 -0
  144. data/config/preferences/ColdFusion.rb +6 -6
  145. data/config/preferences/Cucumber.rb +40 -0
  146. data/config/preferences/Diff.rb +4 -4
  147. data/config/preferences/Eiffel.rb +6 -6
  148. data/config/preferences/Erlang.rb +16 -16
  149. data/config/preferences/F-Script.rb +12 -12
  150. data/config/preferences/FXScript.rb +5 -5
  151. data/config/preferences/Fortran.rb +17 -17
  152. data/config/preferences/Go.rb +23 -0
  153. data/config/preferences/Groovy.rb +29 -0
  154. data/config/preferences/HTML.rb +44 -44
  155. data/config/preferences/Haskell.rb +14 -14
  156. data/config/preferences/Io.rb +11 -11
  157. data/config/preferences/Java.rb +8 -8
  158. data/config/preferences/LaTeX.rb +24 -24
  159. data/config/preferences/Logo.rb +6 -6
  160. data/config/preferences/Logtalk.rb +5 -5
  161. data/config/preferences/Markdown.rb +43 -0
  162. data/config/preferences/Maven.rb +42 -42
  163. data/config/preferences/Mediawiki.rb +8 -8
  164. data/config/preferences/Movable Type.rb +14 -14
  165. data/config/preferences/OCaml.rb +15 -15
  166. data/config/preferences/Objective-C.rb +5 -5
  167. data/config/preferences/PHP.rb +2564 -0
  168. data/config/preferences/Property List.rb +8 -8
  169. data/config/preferences/R.rb +5 -5
  170. data/config/preferences/Ruby.rb +24 -24
  171. data/config/preferences/Source.rb +13 -13
  172. data/config/preferences/Standard ML.rb +9 -9
  173. data/config/preferences/Tcl.rb +5 -5
  174. data/config/preferences/Text.rb +14 -14
  175. data/config/preferences/TextMate.rb +5 -5
  176. data/config/preferences/Textile.rb +8 -8
  177. data/config/preferences/YARD.rb +9 -0
  178. data/config/preferences/iTerm.rb +9 -9
  179. data/config/rc.rb +5 -2
  180. data/config/snippets/ASP vb.NET.rb +203 -54
  181. data/config/snippets/ASP.rb +51 -36
  182. data/config/snippets/ActionScript.rb +332 -205
  183. data/config/snippets/Active4D.rb +325 -256
  184. data/config/snippets/Ada.rb +106 -60
  185. data/config/snippets/Ant.rb +7 -5
  186. data/config/snippets/Apache.rb +24 -20
  187. data/config/snippets/AppleScript.rb +213 -82
  188. data/config/snippets/Blogging.rb +41 -18
  189. data/config/snippets/Bulletin Board.rb +56 -21
  190. data/config/snippets/Bundle Development.rb +108 -63
  191. data/config/snippets/C++ Qt.rb +72 -57
  192. data/config/snippets/C.rb +128 -100
  193. data/config/snippets/CMake.rb +42 -32
  194. data/config/snippets/CSS.rb +515 -115
  195. data/config/snippets/CoffeeScript.rb +85 -0
  196. data/config/snippets/ColdFusion.rb +2228 -1547
  197. data/config/snippets/Context Free.rb +35 -28
  198. data/config/snippets/Cucumber.rb +55 -0
  199. data/config/snippets/D.rb +164 -111
  200. data/config/snippets/DokuWiki.rb +103 -54
  201. data/config/snippets/Doxygen.rb +87 -40
  202. data/config/snippets/Eiffel.rb +121 -18
  203. data/config/snippets/Erlang.rb +109 -68
  204. data/config/snippets/F-Script.rb +30 -24
  205. data/config/snippets/FXScript.rb +364 -210
  206. data/config/snippets/Fortran.rb +462 -280
  207. data/config/snippets/GTDAlt.rb +10 -4
  208. data/config/snippets/Gettext.rb +10 -8
  209. data/config/snippets/Go.rb +52 -0
  210. data/config/snippets/Greasemonkey.rb +52 -42
  211. data/config/snippets/Gri.rb +12 -10
  212. data/config/snippets/Groovy Grails.rb +313 -0
  213. data/config/snippets/Groovy.rb +685 -0
  214. data/config/snippets/HTML.rb +325 -126
  215. data/config/snippets/Haskell.rb +32 -24
  216. data/config/snippets/Io.rb +53 -42
  217. data/config/snippets/Java.rb +204 -92
  218. data/config/snippets/JavaDoc.rb +105 -56
  219. data/config/snippets/JavaScript MooTools.rb +208 -13
  220. data/config/snippets/JavaScript Objective-J.rb +18 -15
  221. data/config/snippets/JavaScript Prototype & Script.aculo.us.rb +362 -107
  222. data/config/snippets/JavaScript YUI.rb +1245 -186
  223. data/config/snippets/JavaScript jQuery.rb +693 -375
  224. data/config/snippets/JavaScript.rb +71 -53
  225. data/config/snippets/LaTeX.rb +188 -0
  226. data/config/snippets/Lisp.rb +59 -40
  227. data/config/snippets/Logo.rb +12 -6
  228. data/config/snippets/Logtalk.rb +131 -60
  229. data/config/snippets/Lua.rb +43 -33
  230. data/config/snippets/MIPS Assembler.rb +7 -5
  231. data/config/snippets/Mail.rb +10 -1
  232. data/config/snippets/Markdown.rb +7 -0
  233. data/config/snippets/Matlab.rb +232 -178
  234. data/config/snippets/Maven.rb +6 -5
  235. data/config/snippets/Mediawiki.rb +43 -12
  236. data/config/snippets/MoinMoin.rb +50 -10
  237. data/config/snippets/Movable Type.rb +368 -53
  238. data/config/snippets/Nemerle.rb +127 -79
  239. data/config/snippets/OCaml Code Completion Misc.rb +1716 -72
  240. data/config/snippets/OCaml Code Completion Unix.rb +2128 -203
  241. data/config/snippets/OCaml.rb +107 -73
  242. data/config/snippets/ODCompletion.rb +169 -118
  243. data/config/snippets/Objective-C.rb +281 -193
  244. data/config/snippets/PHP Smarty.rb +149 -79
  245. data/config/snippets/PHP.rb +186 -0
  246. data/config/snippets/Pascal.rb +47 -33
  247. data/config/snippets/Perl HTML-Template.rb +33 -0
  248. data/config/snippets/Perl Mason.rb +50 -30
  249. data/config/snippets/Perl Template Toolkit.rb +25 -20
  250. data/config/snippets/Perl.rb +91 -72
  251. data/config/snippets/Processing.rb +55 -33
  252. data/config/snippets/Propel.rb +36 -30
  253. data/config/snippets/Property List.rb +57 -24
  254. data/config/snippets/Python Django Templates.rb +381 -95
  255. data/config/snippets/Python Django.rb +159 -132
  256. data/config/snippets/Python.rb +88 -0
  257. data/config/snippets/R Console (Rdaemon).rb +11 -9
  258. data/config/snippets/R.rb +96 -77
  259. data/config/snippets/Remind.rb +18 -15
  260. data/config/snippets/Ruby RSpec.rb +343 -238
  261. data/config/snippets/Ruby on Rails.rb +1116 -765
  262. data/config/snippets/Ruby.rb +770 -545
  263. data/config/snippets/S5 Slide Show.rb +32 -24
  264. data/config/snippets/SSH Config.rb +21 -17
  265. data/config/snippets/SWIG.rb +30 -18
  266. data/config/snippets/Scilab.rb +98 -79
  267. data/config/snippets/Setext.rb +10 -8
  268. data/config/snippets/Shell Script.rb +52 -42
  269. data/config/snippets/Slate.rb +62 -48
  270. data/config/snippets/Source.rb +24 -1
  271. data/config/snippets/Standard ML.rb +37 -27
  272. data/config/snippets/Tcl.rb +32 -26
  273. data/config/snippets/Text.rb +28 -15
  274. data/config/snippets/Textile.rb +130 -45
  275. data/config/snippets/Thrift.rb +22 -18
  276. data/config/snippets/Twiki.rb +158 -105
  277. data/config/snippets/Txt2tags.rb +166 -79
  278. data/config/snippets/Vectorscript.rb +47 -38
  279. data/config/snippets/Widget Creator.rb +5 -5
  280. data/config/snippets/XML.rb +30 -18
  281. data/config/snippets/YAML.rb +5 -4
  282. data/config/snippets/YARD.rb +93 -0
  283. data/config/snippets/reStructuredText.rb +25 -20
  284. data/config/syntax/ANTLR.rb +17 -15
  285. data/config/syntax/ASP vb.NET.rb +27 -24
  286. data/config/syntax/ASP.rb +21 -19
  287. data/config/syntax/ActionScript.rb +16 -16
  288. data/config/syntax/Active4D Config.rb +5 -5
  289. data/config/syntax/Active4D Library.rb +2 -2
  290. data/config/syntax/Active4D.rb +32 -30
  291. data/config/syntax/Ada.rb +13 -10
  292. data/config/syntax/Ant.rb +9 -7
  293. data/config/syntax/Apache.rb +22 -18
  294. data/config/syntax/AppleScript.rb +486 -192
  295. data/config/syntax/AsciiDoc.rb +21 -0
  296. data/config/syntax/BibTeX.rb +7 -7
  297. data/config/syntax/Blog - HTML.rb +7 -7
  298. data/config/syntax/Blog - Markdown.rb +6 -6
  299. data/config/syntax/Blog - Text.rb +2 -2
  300. data/config/syntax/Blog - Textile.rb +2 -2
  301. data/config/syntax/Bulletin Board.rb +33 -32
  302. data/config/syntax/C++ Qt.rb +7 -6
  303. data/config/syntax/C++.rb +31 -28
  304. data/config/syntax/C.rb +55 -51
  305. data/config/syntax/CMake Listfile.rb +12 -11
  306. data/config/syntax/CSS.rb +24 -23
  307. data/config/syntax/CSV.rb +3 -3
  308. data/config/syntax/CoffeeScript.rb +161 -0
  309. data/config/syntax/ColdFusion.rb +8 -8
  310. data/config/syntax/Context Free.rb +18 -16
  311. data/config/syntax/Cucumber Steps.rb +108 -0
  312. data/config/syntax/D.rb +70 -69
  313. data/config/syntax/Diff.rb +13 -10
  314. data/config/syntax/DokuWiki.rb +22 -18
  315. data/config/syntax/Doxygen.rb +1 -1
  316. data/config/syntax/Dylan.rb +8 -8
  317. data/config/syntax/Eiffel.rb +12 -12
  318. data/config/syntax/Erlang.rb +96 -89
  319. data/config/syntax/F-Script.rb +11 -9
  320. data/config/syntax/FXScript.rb +16 -14
  321. data/config/syntax/Fortran - Modern.rb +25 -24
  322. data/config/syntax/Fortran - Punchcard.rb +43 -40
  323. data/config/syntax/GTD.rb +1 -1
  324. data/config/syntax/GTDalt.rb +14 -11
  325. data/config/syntax/Gettext.rb +10 -9
  326. data/config/syntax/Gherkin.rb +65 -0
  327. data/config/syntax/Go.rb +256 -0
  328. data/config/syntax/Grails Server Page.rb +108 -0
  329. data/config/syntax/Graphviz (DOT).rb +6 -6
  330. data/config/syntax/Greasemonkey.rb +3 -3
  331. data/config/syntax/Gri.rb +12 -12
  332. data/config/syntax/Groovy.rb +502 -0
  333. data/config/syntax/HTML (ASP).rb +3 -3
  334. data/config/syntax/HTML (ASP.net).rb +31 -31
  335. data/config/syntax/HTML (Active4D).rb +19 -19
  336. data/config/syntax/HTML (Django).rb +6 -6
  337. data/config/syntax/HTML (Erlang).rb +4 -4
  338. data/config/syntax/HTML (Mason).rb +13 -13
  339. data/config/syntax/HTML (Rails).rb +5 -5
  340. data/config/syntax/HTML (Tcl).rb +3 -3
  341. data/config/syntax/HTML (Template Toolkit).rb +9 -9
  342. data/config/syntax/HTML.rb +27 -27
  343. data/config/syntax/Haskell.rb +31 -28
  344. data/config/syntax/Inform.rb +5 -5
  345. data/config/syntax/Ini.rb +4 -4
  346. data/config/syntax/Installer Distribution Script.rb +19 -18
  347. data/config/syntax/Io.rb +17 -15
  348. data/config/syntax/JSFL.rb +7 -6
  349. data/config/syntax/Java Properties.rb +3 -3
  350. data/config/syntax/Java Server Page (JSP).rb +5 -4
  351. data/config/syntax/Java.rb +40 -33
  352. data/config/syntax/JavaDoc.rb +24 -22
  353. data/config/syntax/JavaScript (Rails).rb +1 -1
  354. data/config/syntax/JavaScript.rb +41 -34
  355. data/config/syntax/Javascript YUI.rb +109 -101
  356. data/config/syntax/LaTeX Beamer.rb +3 -3
  357. data/config/syntax/LaTeX Log.rb +3 -3
  358. data/config/syntax/LaTeX Memoir.rb +7 -5
  359. data/config/syntax/LaTeX Rdaemon.rb +1 -1
  360. data/config/syntax/LaTeX.rb +52 -47
  361. data/config/syntax/Language Grammar.rb +58 -55
  362. data/config/syntax/Lex-Flex.rb +13 -13
  363. data/config/syntax/Lighttpd.rb +7 -7
  364. data/config/syntax/Lisp.rb +6 -5
  365. data/config/syntax/Literate Haskell.rb +2 -2
  366. data/config/syntax/Logo.rb +4 -4
  367. data/config/syntax/Logtalk.rb +64 -49
  368. data/config/syntax/Lua.rb +12 -12
  369. data/config/syntax/MATLAB.rb +71 -70
  370. data/config/syntax/MEL.rb +16 -15
  371. data/config/syntax/MIPS Assembler.rb +11 -11
  372. data/config/syntax/MacPorts Portfile.rb +16 -15
  373. data/config/syntax/Mail.rb +5 -4
  374. data/config/syntax/Makefile.rb +3 -3
  375. data/config/syntax/Man.rb +2 -2
  376. data/config/syntax/Markdown.rb +440 -0
  377. data/config/syntax/Maven POM.rb +17 -16
  378. data/config/syntax/Mediawiki.rb +46 -46
  379. data/config/syntax/Modula-3.rb +7 -6
  380. data/config/syntax/MoinMoin.rb +16 -16
  381. data/config/syntax/MooTools.rb +75 -65
  382. data/config/syntax/Movable Type (MT only).rb +18 -18
  383. data/config/syntax/Movable Type.rb +20 -20
  384. data/config/syntax/MultiMarkdown.rb +35 -0
  385. data/config/syntax/Nemerle.rb +12 -12
  386. data/config/syntax/OCaml.rb +79 -71
  387. data/config/syntax/OCamllex.rb +14 -14
  388. data/config/syntax/OCamlyacc.rb +14 -12
  389. data/config/syntax/Objective-C++.rb +2 -2
  390. data/config/syntax/Objective-C.rb +76 -70
  391. data/config/syntax/Objective-J.rb +30 -29
  392. data/config/syntax/Octave.rb +27 -27
  393. data/config/syntax/OpenGL.rb +4 -4
  394. data/config/syntax/PHP.rb +1154 -0
  395. data/config/syntax/Pascal.rb +8 -8
  396. data/config/syntax/Perl HTML-Template.rb +5 -5
  397. data/config/syntax/Perl.rb +80 -76
  398. data/config/syntax/Plain Text.rb +5 -5
  399. data/config/syntax/Postscript.rb +6 -6
  400. data/config/syntax/Processing.rb +20 -20
  401. data/config/syntax/Prolog.rb +2 -2
  402. data/config/syntax/Property List.rb +50 -47
  403. data/config/syntax/Prototype & Script.aculo.us (JavaScript) Bracketed.rb +15 -13
  404. data/config/syntax/Prototype & Script.aculo.us (JavaScript).rb +9 -8
  405. data/config/syntax/Python Django.rb +6 -6
  406. data/config/syntax/Python.rb +94 -87
  407. data/config/syntax/Quake Style .cfg.rb +4 -4
  408. data/config/syntax/R Console (Rdaemon) Plain.rb +2 -2
  409. data/config/syntax/R Console (Rdaemon).rb +2 -2
  410. data/config/syntax/R.rb +21 -20
  411. data/config/syntax/RSpec.rb +15 -15
  412. data/config/syntax/Ragel.rb +14 -13
  413. data/config/syntax/Rd (R Documentation).rb +4 -4
  414. data/config/syntax/Regular Expressions (Oniguruma).rb +11 -10
  415. data/config/syntax/Regular Expressions (Python).rb +9 -9
  416. data/config/syntax/Release Notes.rb +7 -6
  417. data/config/syntax/Remind.rb +19 -17
  418. data/config/syntax/Rez.rb +10 -9
  419. data/config/syntax/Ruby Haml.rb +11 -11
  420. data/config/syntax/Ruby on Rails.rb +26 -24
  421. data/config/syntax/Ruby.rb +73 -71
  422. data/config/syntax/S5 Slide Show.rb +9 -9
  423. data/config/syntax/SQL.rb +29 -27
  424. data/config/syntax/SSH Config.rb +4 -4
  425. data/config/syntax/SWIG.rb +12 -11
  426. data/config/syntax/SWeave.rb +8 -7
  427. data/config/syntax/Scheme.rb +56 -54
  428. data/config/syntax/Scilab.rb +7 -6
  429. data/config/syntax/Setext.rb +14 -13
  430. data/config/syntax/Shell Script (Bash).rb +42 -42
  431. data/config/syntax/Slate.rb +24 -19
  432. data/config/syntax/Smarty.rb +11 -10
  433. data/config/syntax/Standard ML - CM.rb +2 -2
  434. data/config/syntax/Standard ML.rb +26 -23
  435. data/config/syntax/Strings File.rb +6 -6
  436. data/config/syntax/TSV.rb +2 -2
  437. data/config/syntax/Tcl.rb +10 -9
  438. data/config/syntax/TeX Math.rb +7 -6
  439. data/config/syntax/TeX.rb +7 -7
  440. data/config/syntax/Textile.rb +33 -27
  441. data/config/syntax/Thrift.rb +37 -29
  442. data/config/syntax/Twiki.rb +19 -18
  443. data/config/syntax/Txt2tags.rb +26 -23
  444. data/config/syntax/Vectorscript.rb +9 -7
  445. data/config/syntax/XML strict.rb +6 -4
  446. data/config/syntax/XML.rb +55 -30
  447. data/config/syntax/XSL.rb +5 -5
  448. data/config/syntax/YAML.rb +14 -12
  449. data/config/syntax/camlp4.rb +5 -5
  450. data/config/syntax/iCalendar.rb +3 -3
  451. data/config/syntax/jQuery (JavaScript).rb +9 -9
  452. data/config/syntax/mod_perl.rb +6 -6
  453. data/config/syntax/qmake Project file.rb +16 -15
  454. data/config/syntax/reStructuredText.rb +23 -21
  455. data/config/syntax/svn-commit.tmp.rb +5 -5
  456. data/lib/ver.rb +169 -85
  457. data/lib/ver/action.rb +39 -30
  458. data/lib/ver/buffer.rb +962 -144
  459. data/lib/ver/buffer/frame.rb +23 -0
  460. data/lib/ver/buffer/invalid_trailing_whitespace.rb +17 -0
  461. data/lib/ver/buffer/markup_underline_link.rb +30 -0
  462. data/lib/ver/buffer/matching_brace.rb +22 -0
  463. data/lib/ver/buffer/term.rb +1 -1
  464. data/lib/ver/clipboard.rb +107 -0
  465. data/lib/ver/digraphs.rb +1373 -0
  466. data/lib/ver/entry.rb +54 -43
  467. data/lib/ver/event.rb +335 -0
  468. data/lib/ver/exception_view.rb +3 -1
  469. data/lib/ver/executor.rb +7 -7
  470. data/lib/ver/executor/buffer.rb +4 -4
  471. data/lib/ver/executor/encoding.rb +19 -0
  472. data/lib/ver/executor/entry.rb +9 -9
  473. data/lib/ver/executor/fuzzy_file_finder.rb +1 -1
  474. data/lib/ver/executor/label.rb +2 -0
  475. data/lib/ver/executor/method.rb +2 -3
  476. data/lib/ver/help/describe_key.rb +44 -44
  477. data/lib/ver/hover_completion.rb +11 -6
  478. data/lib/ver/keymap.rb +68 -39
  479. data/lib/ver/layout/paned.rb +56 -44
  480. data/lib/ver/layout/toplevel.rb +68 -0
  481. data/lib/ver/layout/vim.rb +919 -0
  482. data/lib/ver/major_mode.rb +49 -49
  483. data/lib/ver/methods.rb +22 -25
  484. data/lib/ver/methods/basic.rb +49 -20
  485. data/lib/ver/methods/bookmark.rb +33 -33
  486. data/lib/ver/methods/clipboard.rb +186 -49
  487. data/lib/ver/methods/completion.rb +5 -5
  488. data/lib/ver/methods/control.rb +47 -66
  489. data/lib/ver/methods/delete.rb +5 -122
  490. data/lib/ver/methods/help.rb +2 -2
  491. data/lib/ver/methods/insert.rb +101 -29
  492. data/lib/ver/methods/layout.rb +62 -64
  493. data/lib/ver/methods/macro.rb +45 -0
  494. data/lib/ver/methods/move.rb +63 -349
  495. data/lib/ver/methods/nano.rb +99 -71
  496. data/lib/ver/methods/open.rb +8 -7
  497. data/lib/ver/methods/preview.rb +34 -14
  498. data/lib/ver/methods/save.rb +194 -163
  499. data/lib/ver/methods/search.rb +169 -81
  500. data/lib/ver/methods/search_and_replace.rb +62 -49
  501. data/lib/ver/methods/selection.rb +26 -54
  502. data/lib/ver/methods/snippet.rb +79 -54
  503. data/lib/ver/methods/undo.rb +12 -16
  504. data/lib/ver/minibuffer.rb +283 -134
  505. data/lib/ver/minor_mode.rb +36 -47
  506. data/lib/ver/mode_resolving.rb +71 -0
  507. data/lib/ver/platform.rb +41 -0
  508. data/lib/ver/plist.rb +16 -4
  509. data/lib/ver/register.rb +86 -0
  510. data/lib/ver/status.rb +44 -6
  511. data/lib/ver/status/battery.rb +1 -1
  512. data/lib/ver/status/buffer_position.rb +2 -2
  513. data/lib/ver/status/diakonos_position.rb +3 -3
  514. data/lib/ver/status/encoding.rb +1 -1
  515. data/lib/ver/status/filename.rb +1 -1
  516. data/lib/ver/status/label.rb +20 -20
  517. data/lib/ver/status/mode.rb +1 -1
  518. data/lib/ver/status/nano_help.rb +3 -14
  519. data/lib/ver/status/nano_position.rb +6 -6
  520. data/lib/ver/status/percent.rb +2 -2
  521. data/lib/ver/status/position.rb +2 -2
  522. data/lib/ver/status/short_filename.rb +1 -1
  523. data/lib/ver/status/syntax.rb +1 -1
  524. data/lib/ver/struct.rb +28 -0
  525. data/lib/ver/syntax/processor.rb +2 -1
  526. data/lib/ver/text.rb +48 -520
  527. data/lib/ver/text/end.rb +14 -0
  528. data/lib/ver/text/index.rb +16 -101
  529. data/lib/ver/text/insert.rb +138 -0
  530. data/lib/ver/text/mark.rb +559 -0
  531. data/lib/ver/text/position.rb +240 -0
  532. data/lib/ver/text/range.rb +74 -0
  533. data/lib/ver/text/selection.rb +402 -0
  534. data/lib/ver/text/selection/block.rb +69 -0
  535. data/lib/ver/text/selection/char.rb +93 -0
  536. data/lib/ver/text/selection/line.rb +64 -0
  537. data/lib/ver/text/tag.rb +322 -0
  538. data/lib/ver/undo.rb +109 -34
  539. data/lib/ver/vendor/eval_completer.rb +184 -0
  540. data/lib/ver/vendor/json_store.rb +23 -0
  541. data/lib/ver/vendor/open3.rb +729 -0
  542. data/lib/ver/vendor/pathname.rb +73 -0
  543. data/lib/ver/vendor/textpow.rb +1 -1
  544. data/lib/ver/version.rb +1 -1
  545. data/lib/ver/widget_event.rb +9 -5
  546. data/lib/ver/widget_major_mode.rb +69 -23
  547. data/spec/helper.rb +124 -8
  548. data/spec/ver/action.rb +160 -46
  549. data/spec/ver/buffer.rb +23 -0
  550. data/spec/ver/clipboard.rb +92 -0
  551. data/spec/ver/keymap.rb +63 -61
  552. data/spec/ver/keymap/diakonos.rb +88 -0
  553. data/spec/ver/keymap/emacs.rb +65 -0
  554. data/spec/ver/keymap/general.rb +98 -0
  555. data/spec/ver/keymap/nano.rb +84 -0
  556. data/spec/ver/keymap/vim.rb +205 -0
  557. data/spec/ver/keymap/vim/changing_text.rb +489 -0
  558. data/spec/ver/keymap/vim/complex_changes.rb +53 -0
  559. data/spec/ver/keymap/vim/copying_and_moving_text.rb +258 -0
  560. data/spec/ver/keymap/vim/deleting_text.rb +188 -0
  561. data/spec/ver/keymap/vim/digraphs.rb +52 -0
  562. data/spec/ver/keymap/vim/external_commands.rb +21 -0
  563. data/spec/ver/keymap/vim/inserting_mode_keys.rb +115 -0
  564. data/spec/ver/keymap/vim/inserting_mode_special.rb +168 -0
  565. data/spec/ver/keymap/vim/inserting_text.rb +108 -0
  566. data/spec/ver/keymap/vim/left_right_motion.rb +120 -0
  567. data/spec/ver/keymap/vim/mark_motion.rb +73 -0
  568. data/spec/ver/keymap/vim/repeating_commands.rb +64 -0
  569. data/spec/ver/keymap/vim/text_object_motion.rb +137 -0
  570. data/spec/ver/keymap/vim/text_objects.rb +101 -0
  571. data/spec/ver/keymap/vim/undo_redo.rb +21 -0
  572. data/spec/ver/keymap/vim/up_down_motion.rb +94 -0
  573. data/spec/ver/keymap/vim/various_motion.rb +33 -0
  574. data/spec/ver/keysyms.rb +13 -0
  575. data/spec/ver/major_mode.rb +37 -37
  576. data/spec/ver/minor_mode.rb +21 -20
  577. data/spec/ver/plugin/smart_autoindent.rb +2 -2
  578. data/spec/ver/text/index.rb +122 -0
  579. data/spec/ver/text/insert.rb +299 -0
  580. data/spec/ver/text/mark.rb +94 -0
  581. data/spec/ver/text/range.rb +71 -0
  582. data/spec/ver/text/selection.rb +315 -0
  583. data/spec/ver/text/tag.rb +93 -0
  584. data/spec/ver/undo.rb +133 -0
  585. data/spec/ver/undo/record_sanitize.rb +85 -0
  586. data/spec/ver/vendor/eval_completer.rb +91 -0
  587. data/spec/ver/widget_major_mode.rb +4 -3
  588. data/ver.gemspec +8 -8
  589. metadata +234 -72
  590. data/.todo +0 -102
  591. data/ROADMAP.textile +0 -187
  592. data/config/snippets/ANTLR.rb +0 -3
  593. data/config/snippets/Bison.rb +0 -3
  594. data/config/snippets/CTags.rb +0 -3
  595. data/config/snippets/CVS.rb +0 -3
  596. data/config/snippets/Darcs.rb +0 -3
  597. data/config/snippets/Diff.rb +0 -3
  598. data/config/snippets/Dylan.rb +0 -3
  599. data/config/snippets/Experimental Wiki.rb +0 -3
  600. data/config/snippets/Experimental.rb +0 -3
  601. data/config/snippets/FileMerge.rb +0 -3
  602. data/config/snippets/GTD2.rb +0 -3
  603. data/config/snippets/GetBundle.rb +0 -3
  604. data/config/snippets/Graphviz.rb +0 -3
  605. data/config/snippets/Hotkey.rb +0 -3
  606. data/config/snippets/Hyperlink Helper.rb +0 -3
  607. data/config/snippets/ImageBrowser.rb +0 -3
  608. data/config/snippets/Inform.rb +0 -3
  609. data/config/snippets/Ini.rb +0 -3
  610. data/config/snippets/Installer.rb +0 -3
  611. data/config/snippets/JSFL.rb +0 -3
  612. data/config/snippets/JSON.rb +0 -3
  613. data/config/snippets/Lex-Flex.rb +0 -3
  614. data/config/snippets/Lighttpd.rb +0 -3
  615. data/config/snippets/MEL.rb +0 -3
  616. data/config/snippets/MacPorts.rb +0 -3
  617. data/config/snippets/Make.rb +0 -3
  618. data/config/snippets/Man Pages.rb +0 -3
  619. data/config/snippets/Math.rb +0 -3
  620. data/config/snippets/Mercurial.rb +0 -3
  621. data/config/snippets/Modula.rb +0 -3
  622. data/config/snippets/Navigation.rb +0 -3
  623. data/config/snippets/OCaml Experimental Completions.rb +0 -3
  624. data/config/snippets/OpenGL.rb +0 -3
  625. data/config/snippets/Outlines.rb +0 -3
  626. data/config/snippets/Perforce.rb +0 -3
  627. data/config/snippets/Perl HTML::Template.rb +0 -27
  628. data/config/snippets/Postscript.rb +0 -3
  629. data/config/snippets/Prolog.rb +0 -3
  630. data/config/snippets/Quake.rb +0 -3
  631. data/config/snippets/R Console (R.app).rb +0 -3
  632. data/config/snippets/Ragel.rb +0 -3
  633. data/config/snippets/Regular Expressions.rb +0 -3
  634. data/config/snippets/Rez.rb +0 -3
  635. data/config/snippets/Ruby Haml.rb +0 -3
  636. data/config/snippets/SCons.rb +0 -3
  637. data/config/snippets/SQL.rb +0 -3
  638. data/config/snippets/SVK.rb +0 -3
  639. data/config/snippets/SWeave.rb +0 -3
  640. data/config/snippets/Scheme.rb +0 -3
  641. data/config/snippets/Subversion.rb +0 -3
  642. data/config/snippets/TODO.rb +0 -3
  643. data/config/snippets/Tabular.rb +0 -3
  644. data/config/snippets/TerminalMate.rb +0 -3
  645. data/config/snippets/TextMate.rb +0 -3
  646. data/config/snippets/Transmit.rb +0 -3
  647. data/config/snippets/Xcode.rb +0 -3
  648. data/config/snippets/iCalendar.rb +0 -3
  649. data/config/snippets/iTerm.rb +0 -3
  650. data/lib/ver/keysyms.rb +0 -104
  651. data/spec/ver/methods/move.rb +0 -150
@@ -0,0 +1,58 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "nop",
4
+ command:
5
+ "#!/usr/bin/env ruby\nENV['TM_SELECTED_TEXT'].to_s.each_line() { |line|\n\tif(line =~ /^\\*/)\n\t\tprint(\"*\#{line}\")\n\telse\n\t\tprint(\"* \#{line}\")\n\tend\n}\n",
6
+ input: "selection",
7
+ keyEquivalent: "^*",
8
+ name: "Bullet List",
9
+ output: "replaceSelectedText",
10
+ scope: "text.html.textile",
11
+ uuid: "9F539C5E-46E1-45F4-9AD7-6BF05BE0C7ED"},
12
+ {beforeRunningCommand: "nop",
13
+ command:
14
+ "#!/usr/bin/env ruby\nbegin \n require 'rubygems'\n require 'redcloth'\nrescue LoadError\n require ENV['TM_BUNDLE_SUPPORT'] + '/lib/redcloth'\nend\n\ncontents = []\n$stdin.each_line { |line| contents << line }\n\nputs(RedCloth.new(contents.join()).to_html(:textile))",
15
+ fallbackInput: "document",
16
+ input: "selection",
17
+ keyEquivalent: "^H",
18
+ name: "Convert Document / Selection to HTML",
19
+ output: "replaceSelectedText",
20
+ scope: "text.html.textile",
21
+ uuid: "9B769AE9-BE8F-45B9-91E0-39533AD8114B"},
22
+ {beforeRunningCommand: "nop",
23
+ command:
24
+ "#!/usr/bin/env ruby\nrequire ENV['TM_SUPPORT_PATH'] + \"/lib/ui\"\n\nif color = TextMate::UI.request_color\n print \"{color:\#{color}}\"\nend\n",
25
+ fallbackInput: "word",
26
+ input: "none",
27
+ keyEquivalent: "@C",
28
+ name: "Insert Color…",
29
+ output: "afterSelectedText",
30
+ scope: "text.html.textile",
31
+ uuid: "7164B649-E5B6-4A2C-BF01-671528D0A780"},
32
+ {beforeRunningCommand: "nop",
33
+ command:
34
+ "#!/usr/bin/env ruby\nENV['TM_SELECTED_TEXT'].to_s.each_line() { |line|\n\tif(line =~ /^#/)\n\t\tprint(\"#\#{line}\")\n\telse\n\t\tprint(\"# \#{line}\")\n\tend\n}\n",
35
+ input: "selection",
36
+ keyEquivalent: "^#",
37
+ name: "Number List",
38
+ output: "replaceSelectedText",
39
+ scope: "text.html.textile",
40
+ uuid: "EE76702D-2370-44B6-85E6-772922D963A2"},
41
+ {beforeRunningCommand: "nop",
42
+ command:
43
+ "#!/usr/bin/env ruby\nbegin \n require 'rubygems'\n require 'redcloth'\nrescue LoadError\n require ENV['TM_BUNDLE_SUPPORT'] + '/lib/redcloth'\nend\n\nrequire \"\#{ENV['TM_SUPPORT_PATH']}/lib/tm/htmloutput\"\n\ncontents = []\n$stdin.each_line { |line| contents << line }\n\noutput = RedCloth.new(contents.join()).to_html(:textile)\n\nTextMate::HTMLOutput.show(:title => \"Textile Preview\", :sub_title => ENV['TM_FILENAME']) do |io|\n io << output\n end\n\n",
44
+ input: "document",
45
+ keyEquivalent: "^~@p",
46
+ name: "Preview",
47
+ output: "showAsHTML",
48
+ scope: "text.html.textile",
49
+ uuid: "2684F52C-663F-47F3-8320-C8FCB71E276F"},
50
+ {beforeRunningCommand: "nop",
51
+ command:
52
+ "echo '<meta http-equiv=\"refresh\" content=\"0; http://redcloth.org/hobix.com/textile/\">'",
53
+ input: "none",
54
+ keyEquivalent: "^h",
55
+ name: "Show Documentation",
56
+ output: "showAsHTML",
57
+ scope: "text.html.textile",
58
+ uuid: "B9EE97CD-E059-4FE5-AD3A-EEC7D5A23E99"}]
@@ -0,0 +1,20 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "nop",
4
+ command:
5
+ "#!/usr/bin/env ruby\n\nif ENV['TM_CURRENT_LINE'] =~ /^\\s*[\\w.]+\\s*=\\s*(\\d+)\\s*[,;]?\\s*$/\n\tidx = $1.to_i + 1\nelse\n\tidx = 1\nend\n\nif ENV['TM_CURRENT_LINE'] =~ /^\\s+/\n indent = ''\nelse\n indent = \"\\t\"\nend\n\nputs\nprint \"\#{indent}${1:FIELD} = ${2:\#{idx}},$0\"\n",
6
+ fallbackInput: "line",
7
+ input: "none",
8
+ name: "enum field",
9
+ output: "insertAsSnippet",
10
+ scope: "meta.enum.thrift",
11
+ uuid: "841E598E-C872-4A98-A4D5-F13272F51B6F"},
12
+ {beforeRunningCommand: "nop",
13
+ command:
14
+ "#!/usr/bin/env ruby\n\n# this command is intended to be used to generate the struct field macro\n# the struct field macro is ^E followed by this command.\n\ni = 1\nif ENV['TM_CURRENT_LINE'] =~ /^\\s*(\\d+):/\n\ti = $1.to_i + 1\nend\n\nindent = ''\nif ENV['TM_CURRENT_LINE'] !~ /^\\s+/\n indent = \"\\t\"\nend\n\nputs\nprint \"\#{indent}${1:\#{i}}${1/.+/: /m}${2:i32} ${3:field}${4/.+/ = /m}${4:value},$0\"\n",
15
+ fallbackInput: "line",
16
+ input: "none",
17
+ name: "struct field",
18
+ output: "insertAsSnippet",
19
+ scope: "meta.struct.thrift, meta.exception.thrift",
20
+ uuid: "9240E318-0643-4BF7-8EBA-DD947C8CB7B9"}]
@@ -0,0 +1,34 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "nop",
4
+ command:
5
+ ". \"$TM_SUPPORT_PATH/lib/webpreview.sh\"\nhtml_header \"Transmit Bundle Help\" \"Transmit\"\n\"$TM_SUPPORT_PATH/lib/markdown_to_help.rb\" <<'MARKDOWN'\n\n# Synopsis\n\nThe Transmit bundle offers you a way to have the current document or its containing folder uploaded via the [Transmit][] file transfer program.\n\n[Transmit]: http://www.panic.com/transmit/\n\n# DockSend Setup\n\nThe two commands with a “(DockSend)” suffix assumes that you have configured Transmit to have DockSend enabled for the containing folder of the current document.\n\nThis is done by starting Transmit, connect to your server as usual and then from the Favorites menu select Add to Favorites…\n\nIn the sheet which appears, you need to click the downward pointing arrow with a “More Options” label.\n\nThis expands the sheet so it looks like in the following picture:\n\n![Add to Favorites](add_to_favorites.png)\n\nThere are 3 settings of importance here:\n\n 1. **Remote Path** — This is where, on the server, you want your files uploaded.\n\n 2. **Local Path** — This is where the files are located on your own machine.\n\n 3. **Use DockSend** — Check this box to enable the feature.\n\nIn the picture we have set the remote path to `/usr/home/raven/public_html` and the local path to `~/scavenger`.\n\nWhat this means is that if we edit `~/scavenger/index.html` and select Trasmit → Send Document (DockSend) then it will be uploaded to the server as `/usr/home/raven/public_html/index.html`\n\nMARKDOWN\nhtml_footer\n",
6
+ dontFollowNewOutput: true,
7
+ input: "none",
8
+ name: "Help",
9
+ output: "showAsHTML",
10
+ uuid: "BF39FA53-3EFD-4CA8-9789-BA606C7883B9"},
11
+ {beforeRunningCommand: "saveActiveFile",
12
+ command:
13
+ "#!/bin/sh\nosascript \"${TM_BUNDLE_SUPPORT}/send_to_transmit.applescript\" \"$TM_FILEPATH\" &>/dev/console &\necho \"Sent ‘${TM_FILENAME}’ to Transmit\"\n",
14
+ input: "none",
15
+ keyEquivalent: "^F",
16
+ name: "Send Document (DockSend)",
17
+ output: "showAsTooltip",
18
+ uuid: "91FC4F89-ADA9-4435-B159-9BA348FDE590"},
19
+ {beforeRunningCommand: "saveActiveFile",
20
+ command:
21
+ "osascript <<-\"APPLESCRIPT\" - \"$TM_FILEPATH\"\non run(argv)\n\ttell application \"Transmit\"\n\t\t(upload item (item 1 of argv)) in current session of first document\n\tend tell\nend run\nAPPLESCRIPT\n",
22
+ input: "none",
23
+ keyEquivalent: "^F",
24
+ name: "Send Document With Active Connection",
25
+ output: "showAsTooltip",
26
+ uuid: "C958B58A-D4D4-4055-89DF-22BCA3B8A9CA"},
27
+ {beforeRunningCommand: "saveModifiedFiles",
28
+ command:
29
+ "#!/bin/sh\nosascript \"${TM_BUNDLE_SUPPORT}/send_to_transmit.applescript\" \"$TM_DIRECTORY\" &>/dev/console &\necho \"Sent folder ‘`basename ${TM_DIRECTORY}`’ to Transmit\"\n",
30
+ input: "none",
31
+ keyEquivalent: "^F",
32
+ name: "Send Folder (DockSend)",
33
+ output: "showAsTooltip",
34
+ uuid: "C4006FCA-85FF-4476-BDA8-34EF355FD0E4"}]
@@ -0,0 +1,213 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "saveActiveFile",
4
+ command: "txt2tags \"$TM_FILEPATH\"",
5
+ input: "none",
6
+ keyEquivalent: "@r",
7
+ name: "Convert to Default Target",
8
+ output: "showAsTooltip",
9
+ scope: "text.txt2tags",
10
+ uuid: "0EC28386-027E-49E4-AEDE-B212796B5AD8"},
11
+ {beforeRunningCommand: "saveActiveFile",
12
+ command:
13
+ "HTML_FILE_PATH=$(txt2tags -t html \"$TM_FILEPATH\" | sed -n 's/^txt2tags wrote //p')\ntest -z \"$HTML_FILE_PATH\" || open \"$HTML_FILE_PATH\"",
14
+ input: "none",
15
+ keyEquivalent: "^@p",
16
+ name: "Convert to HTML and Preview in Browser",
17
+ output: "showAsTooltip",
18
+ scope: "text.txt2tags",
19
+ uuid: "8EC9DC0F-5F86-4258-AC0B-304D90E1E126"},
20
+ {beforeRunningCommand: "nop",
21
+ command:
22
+ "if test -z \"$TM_SELECTED_TEXT\"; then\n\techo\n\techo \": Term 1\"\n\techo \"Description 1\"\n\techo \": Term 2\"\n\techo \"Description 2\"\n\techo \":\"\nelse\n\techo \"$TM_SELECTED_TEXT\" | sed 's/^/: /'\nfi",
23
+ fallbackInput: "none",
24
+ input: "selection",
25
+ name: "Definition List",
26
+ output: "replaceSelectedText",
27
+ scope: "text.txt2tags",
28
+ tabTrigger: ":",
29
+ uuid: "CE8367B5-2C5D-4057-B1EE-9EB026173E31"},
30
+ {beforeRunningCommand: "saveActiveFile",
31
+ command: "txt2tags -t doku \"$TM_FILEPATH\"",
32
+ input: "none",
33
+ keyEquivalent: "^H",
34
+ name: "DokuWiki",
35
+ output: "showAsTooltip",
36
+ scope: "text.txt2tags",
37
+ uuid: "87C7E27B-D787-48D3-A3B0-5D623264263E"},
38
+ {beforeRunningCommand: "saveActiveFile",
39
+ command: "txt2tags -t gwiki \"$TM_FILEPATH\"",
40
+ input: "none",
41
+ keyEquivalent: "^H",
42
+ name: "Google Code Wiki",
43
+ output: "showAsTooltip",
44
+ scope: "text.txt2tags",
45
+ uuid: "4C1A60D8-747B-4C2B-BFC9-ABC0EE33DE24"},
46
+ {beforeRunningCommand: "saveActiveFile",
47
+ command: "txt2tags -t html \"$TM_FILEPATH\"",
48
+ input: "none",
49
+ keyEquivalent: "^H",
50
+ name: "HTML",
51
+ output: "showAsTooltip",
52
+ scope: "text.txt2tags",
53
+ uuid: "05B145C3-6D67-4E63-8163-FE161E9CA4EB"},
54
+ {beforeRunningCommand: "saveActiveFile",
55
+ command: "txt2tags -t tex \"$TM_FILEPATH\"",
56
+ input: "none",
57
+ keyEquivalent: "^H",
58
+ name: "LaTeX",
59
+ output: "showAsTooltip",
60
+ scope: "text.txt2tags",
61
+ uuid: "505FE1E0-237F-460F-B9E7-9F05A9B7E85C"},
62
+ {beforeRunningCommand: "nop",
63
+ command:
64
+ "if test -z \"$TM_SELECTED_TEXT\"; then\n\techo\t\n\techo \"- Item 1\"\n\techo \"- Item 2\"\n\techo \"-\"\nelse\n\techo \"$TM_SELECTED_TEXT\" | sed 's/^/- /'\nfi",
65
+ fallbackInput: "none",
66
+ input: "selection",
67
+ name: "List",
68
+ output: "replaceSelectedText",
69
+ scope: "text.txt2tags",
70
+ tabTrigger: "-",
71
+ uuid: "5928BD4D-E6E6-49F3-ADFE-518FC4E663A7"},
72
+ {beforeRunningCommand: "saveActiveFile",
73
+ command: "txt2tags -t lout \"$TM_FILEPATH\"",
74
+ input: "none",
75
+ keyEquivalent: "^H",
76
+ name: "Lout",
77
+ output: "showAsTooltip",
78
+ scope: "text.txt2tags",
79
+ uuid: "CAB527E2-384C-46CE-96E0-641F941C9776"},
80
+ {beforeRunningCommand: "saveActiveFile",
81
+ command: "txt2tags -t mgp \"$TM_FILEPATH\"",
82
+ input: "none",
83
+ keyEquivalent: "^H",
84
+ name: "MagicPoint (mgp)",
85
+ output: "showAsTooltip",
86
+ scope: "text.txt2tags",
87
+ uuid: "ED33B096-631A-41B2-AEB0-50E771F41E37"},
88
+ {beforeRunningCommand: "saveActiveFile",
89
+ command: "txt2tags -t man \"$TM_FILEPATH\"",
90
+ input: "none",
91
+ keyEquivalent: "^H",
92
+ name: "Man Page",
93
+ output: "showAsTooltip",
94
+ scope: "text.txt2tags",
95
+ uuid: "90B93795-AC8C-41C1-8C41-786C1A113D43"},
96
+ {beforeRunningCommand: "saveActiveFile",
97
+ command: "txt2tags -t moin \"$TM_FILEPATH\"",
98
+ input: "none",
99
+ keyEquivalent: "^H",
100
+ name: "MoinMoin (wiki)",
101
+ output: "showAsTooltip",
102
+ scope: "text.txt2tags",
103
+ uuid: "E03416E2-4742-4AC4-B152-D838A6542696"},
104
+ {beforeRunningCommand: "nop",
105
+ command:
106
+ "if test -z \"$TM_SELECTED_TEXT\"; then\n\techo\n\techo \"+ Item 1\"\n\techo \"+ Item 2\"\n\techo \"+\"\nelse\n\techo \"$TM_SELECTED_TEXT\" | sed 's/^/+ /'\nfi",
107
+ fallbackInput: "none",
108
+ input: "selection",
109
+ name: "Numbered List",
110
+ output: "replaceSelectedText",
111
+ scope: "text.txt2tags",
112
+ tabTrigger: "+",
113
+ uuid: "70E9A4C5-9F6F-4139-BE41-3685017D6169"},
114
+ {beforeRunningCommand: "saveActiveFile",
115
+ command: "txt2tags -t pm6 \"$TM_FILEPATH\"",
116
+ input: "none",
117
+ keyEquivalent: "^H",
118
+ name: "PageMaker",
119
+ output: "showAsTooltip",
120
+ scope: "text.txt2tags",
121
+ uuid: "0E94ACC5-07FC-48BA-8FE0-9557224856F8"},
122
+ {beforeRunningCommand: "saveActiveFile",
123
+ command: "txt2tags -t txt \"$TM_FILEPATH\"",
124
+ input: "none",
125
+ keyEquivalent: "^H",
126
+ name: "Plain Text",
127
+ output: "showAsTooltip",
128
+ scope: "text.txt2tags",
129
+ uuid: "1B1B0B59-A69B-4601-9884-23480A27914B"},
130
+ {beforeRunningCommand: "nop",
131
+ command:
132
+ ". \"$TM_SUPPORT_PATH/lib/webpreview.sh\"\n\nhtml_header \"Txt2tags Preview\"\ntxt2tags -t html -i- -o- |\n\tsed \"s|<HEAD>|&<base href='tm-file://${TM_FILEPATH// /%20}'>|\"\n\t# ^needed for images, CSS files and friends\nhtml_footer\n",
133
+ input: "document",
134
+ keyEquivalent: "^~@p",
135
+ name: "Preview",
136
+ output: "showAsHTML",
137
+ scope: "text.txt2tags",
138
+ uuid: "4B8C62A1-82C3-40C6-9595-4546EE8B2CA0"},
139
+ {beforeRunningCommand: "saveActiveFile",
140
+ command: "txt2tags -t sgml \"$TM_FILEPATH\"",
141
+ input: "none",
142
+ keyEquivalent: "^H",
143
+ name: "Sgml",
144
+ output: "showAsTooltip",
145
+ scope: "text.txt2tags",
146
+ uuid: "AFAA4B88-20AB-44B3-8BF3-4D3E66FEB3A0"},
147
+ {beforeRunningCommand: "nop",
148
+ command:
149
+ ". \"$TM_SUPPORT_PATH/lib/webpreview.sh\"\n\ntest -z $TM_FILENAME && title=\"Txt2tags\" || title=\"${TM_FILENAME%.*}\"\n\nhtml_header \"$title - Active Configuration\"\n\ncd \"$TM_DIRECTORY\" # needed to expand possible includes\ntxt2tags -t txt --dump-config -i- -o- | pre\n\nhtml_footer",
150
+ input: "document",
151
+ name: "Show Active Configuration",
152
+ output: "showAsHTML",
153
+ scope: "text.txt2tags",
154
+ uuid: "69189D22-7020-4A1D-AF4C-1A3A068D0ADA"},
155
+ {beforeRunningCommand: "nop",
156
+ command:
157
+ ". \"$TM_SUPPORT_PATH/lib/webpreview.sh\"\n\ntest -z $TM_FILENAME && title=\"Txt2tags\" || title=\"${TM_FILENAME%.*}\"\n\nhtml_header \"$title - Document Outline\"\n\ncd \"$TM_DIRECTORY\" # needed to expand possible includes\ntxt2tags -t txt --toc-level 5 --toc-only -i- -o- | pre\n\nhtml_footer",
158
+ input: "document",
159
+ name: "Show Document Outline",
160
+ output: "showAsHTML",
161
+ scope: "text.txt2tags",
162
+ uuid: "423F0F96-A0B8-4643-B8E1-A55157FC53E4"},
163
+ {beforeRunningCommand: "nop",
164
+ command:
165
+ "cat <<\"TEXT\"\n⌘B\t\tBold\n⌘I\t\tItalic\n⌘U\t\tUnderline\n⌘K\t\tMonospaced\n⌥⌘K\tVerbatim Block (code)\n⌃⇧L\tLink\n⌃⇧I\tImage\n⌃⇧|\tTable\n⌃⇧+\tNumbered Title\n⌃=\t\tTitle\n⌘]\t\tQuote (In)\n⌘[\t\tQuote (Out)\n⌘/\t\tComment Lines (On/Off)\nTEXT\n",
166
+ input: "none",
167
+ keyEquivalent: "@",
168
+ name: "Show Keyboard Shortcuts",
169
+ output: "showAsTooltip",
170
+ scope: "text.txt2tags",
171
+ uuid: "7C1AFFF2-BA6F-4AB7-AE1A-D60D737BBB14"},
172
+ {beforeRunningCommand: "nop",
173
+ command: "txt2tags --version | sed 's/<.*//'",
174
+ input: "none",
175
+ name: "Show Txt2tags Version",
176
+ output: "showAsTooltip",
177
+ scope: "text.txt2tags",
178
+ uuid: "BF01B32B-534E-4886-AA99-69B4C9676BA3"},
179
+ {beforeRunningCommand: "nop",
180
+ command: "open http://txt2tags.sourceforge.net/markup.html",
181
+ input: "none",
182
+ keyEquivalent: "^h",
183
+ name: "Syntax Cheat Sheet",
184
+ output: "discard",
185
+ scope: "text.txt2tags",
186
+ uuid: "B44403DA-5B16-407D-9750-8F2805B84FD6"},
187
+ {beforeRunningCommand: "nop",
188
+ command:
189
+ "if test -z \"$TM_SELECTED_TEXT\"; then\n\techo\t\n\techo \"|| Heading1 | Heading 2 | Heading 3 |\"\n\techo \"| left | center | right |\"\n\techo\nelse\n\ttab=$(echo -ne \\\\t)\n\techo \"$TM_SELECTED_TEXT\" |\n\t\tsed \"s/$tab/ | /g;s/.*/| & |/\"\nfi",
190
+ fallbackInput: "none",
191
+ input: "selection",
192
+ keyEquivalent: "^|",
193
+ name: "Table",
194
+ output: "replaceSelectedText",
195
+ scope: "text.txt2tags",
196
+ tabTrigger: "|",
197
+ uuid: "3B5D493F-111A-4639-BA28-B2119770504B"},
198
+ {beforeRunningCommand: "saveActiveFile",
199
+ command: "txt2tags -t wiki \"$TM_FILEPATH\"",
200
+ input: "none",
201
+ keyEquivalent: "^H",
202
+ name: "Wikipedia",
203
+ output: "showAsTooltip",
204
+ scope: "text.txt2tags",
205
+ uuid: "3D1E0C6B-23DD-44E1-A2F0-2F143AE9D898"},
206
+ {beforeRunningCommand: "saveActiveFile",
207
+ command: "txt2tags -t xhtml \"$TM_FILEPATH\"",
208
+ input: "none",
209
+ keyEquivalent: "^H",
210
+ name: "XHTML",
211
+ output: "showAsTooltip",
212
+ scope: "text.txt2tags",
213
+ uuid: "C95007FC-50A3-4BBC-AACF-3EF6EE2AA7F5"}]
@@ -0,0 +1,19 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "nop",
4
+ command: "cat \"${TM_BUNDLE_PATH}/README.html\"",
5
+ input: "none",
6
+ name: "Help",
7
+ output: "showAsHTML",
8
+ scope: "source.pascal",
9
+ uuid: "AAAB7E78-7F66-488F-9727-CF9817353380"},
10
+ {beforeRunningCommand: "nop",
11
+ command:
12
+ "VW_MANPATH=$TM_VSCRIPT_MANUAL\n\npushd \"${VW_MANPATH}\" > /dev/null\nFILE=`grep -o \"<A name = \\\"${TM_CURRENT_WORD}\" *.html | cut -f 1 -d :`\npopd > /dev/null\nFILEPATH=\"${VW_MANPATH}/${FILE}\"\nLINES=`cat \"${FILEPATH}\" | tr '\\r' '\\n' | wc -l`\nSTARTLINE=`cat \"${FILEPATH}\" | tr '\\r' '\\n' | grep -n \"<\\!-- ${TM_CURRENT_WORD}\" | cut -f 1 -d :`\nTAILLINES=$((LINES-STARTLINE))\nHEADLINES=`cat \"${FILEPATH}\" | tr '\\r' '\\n' | tail -n $TAILLINES | grep -n \"^<\\!--\" | cut -f 1 -d : | head -n 1`\ncat \"${FILEPATH}\" | tr '\\r' '\\n' | tail -n $TAILLINES 2> /dev/null | head -n $((HEADLINES-1))",
13
+ fallbackInput: "word",
14
+ input: "selection",
15
+ keyEquivalent: "^h",
16
+ name: "Lookup",
17
+ output: "showAsHTML",
18
+ scope: "source.pascal.vectorscript",
19
+ uuid: "A5E76858-928F-47F9-9A18-DE9E281364AC"}]
@@ -0,0 +1,23 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "saveActiveFile",
4
+ command:
5
+ "#!/usr/bin/env bash\nSCRIPT_PATH=\"Library/Application Support/Textmate/Widget Scripts\"\nESCAPED_FILEPATH=$(echo $TM_FILEPATH | sed -e 's/\\\"/\\\\\\\"/g' -e 's/\\`/\\\\\\`/g')\nmkdir -p ~/\"$SCRIPT_PATH\"\necho \\#\\!\\/usr/bin/env bash > ~/\"$SCRIPT_PATH/default.sh\"\necho -n \"\\\"$ESCAPED_FILEPATH\\\" \\\"\\$@\\\"\" >> ~/\"$SCRIPT_PATH/default.sh\"\necho -n \"\\\"$TM_FILENAME\\\"\" > ~/\"$SCRIPT_PATH/filename.txt\"\n\"$TM_BUNDLE_SUPPORT/deploy_widget.sh\"\necho \"Widget created.\"\n",
6
+ input: "none",
7
+ name: "Create Widget Calling Current Document",
8
+ output: "showAsTooltip",
9
+ uuid: "61B9EE59-3C49-45B8-94DE-7C0C8BCB965C"},
10
+ {beforeRunningCommand: "nop",
11
+ command:
12
+ "#!/usr/bin/env bash\nSCRIPT_PATH=\"Library/Application Support/Textmate/Widget Scripts\"\nmkdir -p ~/\"$SCRIPT_PATH\"\ncat > ~/\"$SCRIPT_PATH/default.sh\"\n\"$TM_BUNDLE_SUPPORT/deploy_widget.sh\"\necho \"Widget created.\"\n",
13
+ input: "document",
14
+ name: "Create Widget With Contents of Document",
15
+ output: "showAsTooltip",
16
+ uuid: "907BF622-2B0E-43C7-85F6-369A67226CA4"},
17
+ {beforeRunningCommand: "nop",
18
+ command:
19
+ ". \"$TM_SUPPORT_PATH/lib/webpreview.sh\"\n\nhtml_header \"Widget Creator Bundle Help\" \"Widget Creator\"\n\nMarkdown.pl <<\"EOF\"|SmartyPants.pl\n\n## Widget Creator Bundle Help\n\nThe Widget Creator Bundle provides an interface to scripts normally accessed through Terminal.app through the Dashboard layer of OS X.\n\nThe bundle includes a Dashboard widget, which will be installed automatically when the command \"*Create Widget With Contents of Document*\" or \"*Create Widget Calling Current Document*\" are called within Textmate.\n\n### \"Create Widget With Contents of Document\"\n\nWhen editing a script which would usually be executed in a shell terminal such as Terminal.app, calling the \"*Create Widget With Contents of Document*\" command will copy the contents of the current document to a new file created in ~/Application Settings/Textmate/Widget Scripts/ and a new instance of a widget will appear on the Dashboard layer of OS X.\n\nWhen this widget is clicked on the copied script will run, and any output to STDOUT or STDERR will be accessable by clicking on the green or red icons which should appear on the widget respectively.\n\nAddtionally, if any files or a URL is dragged on to the widget then arguments are passed to the script with either the full path and filename of each file, or the URL itself.\n\n### \"Create Widget Calling Current Document\"\n\nIf the \"*Create Widget Calling Current Document*\" command is invoked in Textmate whilst editing a saved script, then a new widget is created which will call the already existing script, passing any arguments in the process (i.e. any files/URL dropped).\n\nThis is useful feature if you plan on calling the script used by the widget in a shell terminal as well as through Dashboard, so any changes you make to the original script are also reflected when called by both methods.\n\n### \"Insert Loop to Handle Multiple Arguments\"\n\nThe only snippet in this bundle will allow a bash script to deal with multiple arguments, this is useful when applying the same action to multiple files when they are dragged on to the widget.\n\nWhen the snippet is inserted a loop will appear in the edit window, and any commands nested within the loop with be performed as many times as there are arguments (i.e. files) passed to the script. Each time the loop iterates a new argument will be assigned to $ARG, so for example 'rm \"$arg\"' within the loop will delete every file dragged on to the widget.\n\n### Hints\n\nThis document can be printed using *Print…* (⌘P) from the *File* menu.\nEOF\n\nhtml_footer\n",
20
+ input: "none",
21
+ name: "Help",
22
+ output: "showAsHTML",
23
+ uuid: "A0F5745D-6DC1-4D2B-B638-8A38AB18EE68"}]
@@ -0,0 +1,29 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "nop",
4
+ command:
5
+ "#!/usr/bin/env ruby\nrequire 'rexml/document'\n\ndef serialize(source, dest)\n if source.is_a? REXML::Text\n dest.add_text(source.dup)\n return dest\n end\n\n d2 = dest.add_element('xsl:element', 'name' => source.expanded_name)\n source.attributes.each { |(k,v)| d2.add_element('xsl:attribute', 'name' => k).text = v }\n source.children.each { |node| serialize(node, d2)}\n dest\nend\n\nsource = REXML::Document.new(STDIN.read)\ndest = REXML::Document.new\n\nprint serialize(source.elements[1], dest).to_s",
6
+ fallbackInput: "document",
7
+ input: "selection",
8
+ name: "Create XSL Generator for Selection",
9
+ output: "replaceSelectedText",
10
+ scope: "text.xml",
11
+ uuid: "67E7372F-C15F-4009-AE5B-975F2BC9DD91"},
12
+ {beforeRunningCommand: "nop",
13
+ command:
14
+ "if [[ \"$TM_SOFT_TABS\" = \"YES\" ]];\n\tthen export XMLLINT_INDENT=`ruby -e\"print(' ' * ${TM_TAB_SIZE})\"`\n\telse export XMLLINT_INDENT=$'\\t'\nfi\nresult=`xmllint --format - 2>&1`\nif [[ $? > 0 ]];\n\tthen exit_show_tool_tip \"Errors: $result\"\n\telse echo \"$result\"\nfi",
15
+ input: "selection",
16
+ keyEquivalent: "^H",
17
+ name: "Tidy",
18
+ output: "replaceSelectedText",
19
+ scope: "text.xml",
20
+ uuid: "A1DAE610-1E05-4174-BB6D-A51E22DB0764"},
21
+ {beforeRunningCommand: "nop",
22
+ command:
23
+ "xmllint --htmlout --valid - 2>&1|perl -pe 's|^((?:</?[^>]+>)*)(.*?):(\\d+):(.*error.*)|$1<a href=\"txmt://open?line=$3\">$4</a>|'",
24
+ input: "document",
25
+ keyEquivalent: "^V",
26
+ name: "Validate Syntax",
27
+ output: "showAsHTML",
28
+ scope: "text.xml",
29
+ uuid: "F216B838-965F-11D9-9561-000D93589AF6"}]
@@ -0,0 +1,106 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "nop",
4
+ command:
5
+ "PROJECT=\"project=$(find_xcode_project.rb)\"\n\nif [[ -n \"$TM_SELECTED_FILES\" ]]; then\n eval arr=(\"$TM_SELECTED_FILES\")\n xcode_project.rb \"$PROJECT\" \"${arr[@]/#/add=}\"\nelif [[ -n \"$TM_FILEPATH\" ]]; then\n xcode_project.rb \"$PROJECT\" add=\"$TM_FILEPATH\"\nelse\n exit_show_tool_tip \"No files selected.\"\nfi\n",
6
+ input: "none",
7
+ keyEquivalent: "^X",
8
+ name: "Add to Active Target",
9
+ output: "showAsTooltip",
10
+ uuid: "E435839A-880B-4E5F-9078-71BC595F2EA0"},
11
+ {autoScrollOutput: true,
12
+ beforeRunningCommand: "saveModifiedFiles",
13
+ command: "\"${TM_BUNDLE_SUPPORT}/bin/run_xcodebuild.sh\"\n",
14
+ input: "none",
15
+ keyEquivalent: "@b",
16
+ name: "Build",
17
+ output: "showAsHTML",
18
+ uuid: "9656317E-73EB-11D9-9848-000D93589AF6"},
19
+ {autoScrollOutput: 1,
20
+ beforeRunningCommand: "saveModifiedFiles",
21
+ command:
22
+ "# this command calls xcodebuild giving the name of the project\n# directory as the project to build and parses the output for\n# file/line information then plays a succes/failure sample\n# based on the final outcome\n#\n# if the build succeeds, it will run the target\n\nXCODE_PROJECT_FILE=$(ruby -- \"${TM_BUNDLE_SUPPORT}/bin/find_xcode_project.rb\")\nexport XCODE_PROJECT_FILE\n\nexport XCODE_RUN_BUILD=1\n\"${TM_BUNDLE_SUPPORT}/bin/run_xcodebuild.sh\"\n\n#&& \"${TM_BUNDLE_SUPPORT}/bin/run_xcode_target.rb\" -project_dir=\"$XCODE_PROJECT_FILE\"\n",
23
+ input: "none",
24
+ keyEquivalent: "@r",
25
+ name: "Build & Run",
26
+ output: "showAsHTML",
27
+ uuid: "B0254A99-7750-4A06-937A-9A453ECE3A6C"},
28
+ {autoScrollOutput: 1,
29
+ beforeRunningCommand: "saveModifiedFiles",
30
+ command:
31
+ "XCODE_BUILD_VERB=\"clean\"\nexport XCODE_BUILD_VERB\n\"${TM_BUNDLE_SUPPORT}/bin/run_xcodebuild.sh\"\n",
32
+ input: "none",
33
+ name: "Clean",
34
+ output: "showAsHTML",
35
+ uuid: "392068ED-4C79-42D8-9DE8-53867928B3B0"},
36
+ {beforeRunningCommand: "nop",
37
+ bundleUUID: "D619CB94-53ED-41C5-963B-401492CE2602",
38
+ command:
39
+ ". \"$TM_SUPPORT_PATH/lib/webpreview.sh\"\nhtml_header \"XCode Help\" \"XCode\"\n\nMarkdown.pl <<'EOF'\nThis bundle contains a set of useful commands for Xcode users.\n\nSeveral of the commands will use your Xcode project file and will try to find this by first checking the root folder of your project (`TM_PROJECT_DIRECTORY`) searching for a project with the extensions `xcodeproj`, `xcode`, or `pbproj`. If nothing is found, the folder of the currently open file (`TM_DIRECTORY`) will be checked, and then the parent and ancestor folders of this (until the project file is found).\n\nNormally it should work out-of-the-box when dragging the folder containing your Xcode project and sources to TextMate. But if you have an atypical setup, you may need to explicitly set the project file, see Settings below for details.\n\n## Commands\n\n* __Build & Run__ (&#x2318;R)\n\n First do a normal build. If that succeeds, run the target and display console output.\n\n* __Build__ (&#x2318;B)\n\n Build the project using [`xcodebuild`](http://developer.apple.com/documentation/Darwin/Reference/ManPages/man1/xcodebuild.1.html) with the active build configuration and show the result pretty-printed and with potential source references shown as clickable links.\n\n A sample will be played based on the success/failure of the build. See Settings below for how to disable this.\n\n* __Run__ (&#x21E7;&#x2318;R)\n\n Scan the project file for a target of type _application_ or _tool_ and run it.\n \n For _application_ targets, TextMate will display the application’s output in the command’s HTML window.\n\n For _tool_ targets, TextMate will use the Terminal application to run the tool.\n\n The `DYLD_FRAMEWORK_PATH` and `DYLD_LIBRARY_PATH` environment variables are set to the targets folder before running the target.\n\n If the project has multiple _tool_ and _application_ targets the command will display a dialog from which you can choose the target you wish to run. You can set `XC_TARGET_NAME` to always run a single target, see Settings below for how to configure this.\n\n* __Run Tests__\n\n\tScan the project file for a unit test target and run it.\n\n* __Clean__\n\n This will clear the target (done by running `xcodebuild clean` with the project and active build configuration as arguments).\n\n* __New Project Using Xcode Template…__\n\n\tCreates a new Xcode project from one of Xcode's templates.\n\n* __Open Project in Xcode…__\n\n\tIf&mdash;using the same heuristics as the Run command&mdash;an Xcode project can be found, open it in Xcode.\n\n* __Import Project…__\n\n Asks you for an Xcode project, and will then create (and open) a TextMate project that mimics the groups and files present in that project.\n\n* __Import Frontmost Project__\n\n Create a TextMate project with groups and files like the frontmost project which is open in Xcode.\n \n## Settings\n\n* `TM_XCODE_PROJECT`\n\n If your file structure is so that TextMate can't automatically find your Xcode project, then you can set this environment variable to the full path of the project file.\n \n It makes the most sense to set this as a project specific variable (as opposed to a global variable). This is done by deselecting everything in the project drawer and then clicking the small circled I button in the lower right corner of the drawer.\n\n* `TM_MUTE`\n\n If you do not like the samples being played after a build, you can set this variable to 1. This can be done in Preferences &#x2192; Advanced &#x2192; Shell Variables.\n\n* `XC_TARGET_NAME`\n\n If there are multiple targets in a project then you can set this environment variable to the name of the target you want to run to avoid the pop-up selector. This would normally be set as a project specific variable (see `TM_XCODE_PROJECT` above for how to do this).\n\n## Credits\n\nMajority of work done by Chris Thomas. Additional work by Allan Odgaard with support from Mark Rowe and Rob Rix.\n\nEOF\n\nhtml_footer",
40
+ input: "none",
41
+ name: "Help",
42
+ output: "showAsHTML",
43
+ uuid: "31F1A06C-0990-4BD7-8E63-D65E7BCD485D"},
44
+ {beforeRunningCommand: "nop",
45
+ command:
46
+ "# import the frontmost opened project window in Xcode\n\nsource_path=$(osascript -e 'tell application \"Xcode\" to get the path of project 1')\ndest_path=\"${source_path%.*}.tmproj\"\n\n# FIXME probably should move the old dest_path somewhere and only nuke it if the conversion is successful\n\n\"$TM_BUNDLE_SUPPORT/bin/xcode_to_tmproj\" \"$source_path/project.pbxproj\" \"$dest_path\" && open \"$dest_path\"\n\n",
47
+ input: "none",
48
+ keyEquivalent: "",
49
+ name: "Import Frontmost Project",
50
+ output: "showAsTooltip",
51
+ uuid: "8104FD3A-DD58-45CA-8FC8-F64680261F13"},
52
+ {beforeRunningCommand: "nop",
53
+ command:
54
+ "#!/usr/bin/env ruby\n# import the frontmost opened project window in Xcode\n\nsource_path = %x{osascript -e 'tell application \"TextMate\"\n\tchoose file with prompt \"Please choose an Xcode project:\"\n\tget the POSIX path of the result\nend tell'}.chomp\n\ndest_path = source_path.chomp.sub(/\\.(xcodeproj|xcode|pbproj)\\/?$/, \".tmproj\")\n\n# FIXME probably should move the old dest_path somewhere and only nuke it if the conversion is successful\n\n%x{\"\#{ENV['TM_BUNDLE_SUPPORT']}/bin/xcode_to_tmproj\" \"\#{source_path}/project.pbxproj\" \"\#{dest_path}\" && open \"\#{dest_path}\"}",
55
+ input: "none",
56
+ name: "Import Project…",
57
+ output: "openAsNewDocument",
58
+ uuid: "775EC3D9-4799-4454-85E5-5112EFCC2A15"},
59
+ {beforeRunningCommand: "nop",
60
+ command:
61
+ "#!/usr/bin/env ruby -wKU\n\nrequire ENV['TM_SUPPORT_PATH'] + '/lib/textmate'\n\nproject_file = ENV['XCODE_PROJECT_FILE'] || %x{ruby -- \"${TM_BUNDLE_SUPPORT}/bin/find_xcode_project.rb\"}.strip\n\nLogFile = project_file + '/' + ENV['LOGNAME'] + '.tm_build_errors'\n\nabort \"No errors found\" unless File.exists?(LogFile)\n\nerrors = []\nFile.readlines(LogFile).map do |error|\n file, line, error = error.split('|')\n if existing_error = errors.find { |e| e[:file] == file and e[:line] == line }\n existing_error[:error] << error\n else\n errors << {:file => file, :line => line, :error => error}\n end\nend\n\nabort \"No errors found\" if errors.empty?\n\ncurrent_error = nil\n\nerrors.each_with_index do |error, index|\n if error[:file] == ENV['TM_FILEPATH'] and error[:line] == ENV['TM_LINE_NUMBER']\n current_error = index\n break\n end\nend\n\nif current_error\n current_error += 1\n current_error = 0 if current_error > errors.size - 1\nelse\n current_error = 0\nend\n\nTextMate.go_to :file => errors[current_error][:file], :line => errors[current_error][:line]\nprint errors[current_error][:error]",
62
+ input: "none",
63
+ keyEquivalent: "@=",
64
+ name: "Jump to Next Error",
65
+ output: "showAsTooltip",
66
+ uuid: "BA7499F1-F44C-43BC-9D81-AA1E889B35F7"},
67
+ {beforeRunningCommand: "nop",
68
+ command:
69
+ "PROJECT_FILE=$(ruby -- \"${TM_BUNDLE_SUPPORT}/bin/find_xcode_project.rb\")\n#PROJECT_FILE=${PROJECT_FILE##*/}\n\n\"${TM_BUNDLE_SUPPORT}/bin/xcode_project.rb\" project=${PROJECT_FILE} list",
70
+ input: "none",
71
+ keyEquivalent: "^X",
72
+ name: "List Files in Active Target",
73
+ output: "showAsTooltip",
74
+ uuid: "F1FD7DF4-975A-4832-8A52-873AA0D32C44"},
75
+ {beforeRunningCommand: "nop",
76
+ command:
77
+ "#!/usr/bin/env ruby -wKU\n\nSUPPORT = ENV['TM_SUPPORT_PATH']\nMATE = \"\#{SUPPORT}/bin/mate\"\n\nrequire \"\#{SUPPORT}/lib/osx/plist\"\nrequire \"\#{SUPPORT}/lib/escape\"\n\nrequire \"cgi\"\nrequire \"fileutils\"\nrequire \"find\"\nrequire \"iconv\"\n\nTEMPLATE_DIRS = [\n '/Library/Application Support/Apple/Developer Tools/Project Templates',\n %x{ \"$TM_SUPPORT_PATH/bin/find_app\" Xcode.app }.sub(/Applications\\/Xcode.app$/, 'Library/Xcode/Project Templates'),\n ENV['HOME'] + '/Library/Application Support/Apple/Developer Tools/Project Templates'\n]\n\nmodule ProcessTemplate\n module_function\n \n def expand(str, variables)\n str.gsub(/«(DATE|FULLUSERNAME|ORGANIZATIONNAME|PRODUCTNAME|PROJECTNAMEASIDENTIFIER|PROJECTNAMEASXML|PROJECTNAME|TARGETNAMEASIDENTIFIER|USERNAME|UUID|YEAR)»/) do |match|\n variables[$1]\n end\n end\n\n def expand_file(file, variables)\n data = IO.read(file)\n\n open(file, \"w\") do |io|\n if data[0..1] == \"\\xFE\\xFF\"\n new_data = expand(Iconv.conv('utf-8', 'utf-16', data), variables)\n io << Iconv.conv('utf-16', 'utf-8', new_data)\n elsif mac_roman?(data)\n io << expand(Iconv.conv('utf-8', 'mac', data), variables)\n elsif utf8?(data)\n io << expand(data, variables)\n else\n io << data # we probably should not have opened the file for writing\n end\n end\n end\n\n def mac_roman?(data)\n data =~ /\\xC7(DATE|FULLUSERNAME|ORGANIZATIONNAME|PRODUCTNAME|PROJECTNAMEASIDENTIFIER|PROJECTNAMEASXML|PROJECTNAME|TARGETNAMEASIDENTIFIER|USERNAME|UUID|YEAR)\\xC8/\n end\n\n def utf8?(data)\n data =~ /«(DATE|FULLUSERNAME|ORGANIZATIONNAME|PRODUCTNAME|PROJECTNAMEASIDENTIFIER|PROJECTNAMEASXML|PROJECTNAME|TARGETNAMEASIDENTIFIER|USERNAME|UUID|YEAR)»/\n end\n\n def process(dir, name)\n variables = {\n 'DATE' => Time.now.strftime('%F'),\n 'FULLUSERNAME' => ENV['TM_FULLNAME'],\n 'ORGANIZATIONNAME' => ENV['TM_ORGANIZATION_NAME'],\n 'PRODUCTNAME' => name,\n 'PROJECTNAMEASIDENTIFIER' => name.gsub(/[^a-zA-Z0-9]/, '_'),\n 'PROJECTNAMEASXML' => CGI.escapeHTML(name),\n 'PROJECTNAME' => name,\n 'TARGETNAMEASIDENTIFIER' => name.gsub(/[^a-zA-Z0-9]/, '_'),\n 'USERNAME' => ENV['LOGNAME'],\n 'UUID' => `uuidgen`.chomp,\n 'YEAR' => Time.now.year,\n }\n\n template_info = Find.find(dir) { |path| break path if path =~ /\\/TemplateInfo.plist$/ }\n exit unless File.exist? template_info.to_s\n\n data = File.read(template_info)\n data = Iconv.conv('utf-8', 'mac', data) if mac_roman? data\n\n plist = OSX::PropertyList.load(data)\n\n plist['FilesToRename'].each_pair do |key, value|\n from = File.join(dir, expand(key, variables))\n to = File.join(dir, expand(value, variables))\n FileUtils.mv(from, to) if File.exist?(from) && !File.exist?(to)\n end unless plist['FilesToRename'].nil?\n\n src_dir = File.split(template_info).first\n Dir.glob(\"\#{src_dir}/*.*\").each do |file|\n expand_file(file, variables)\n end\n\n dst_dir = src_dir.sub(/(.*\\/)[^\\/]*(\\.[^.])/, \"\\\\1\#{name}\\\\2\")\n File.delete(template_info)\n FileUtils.mv(src_dir, dst_dir) if File.exist?(src_dir) && !File.exist?(dst_dir)\n\n plist['FilesToMacroExpand'].each do |file|\n variables['FILENAME'] = file\n expand_file(File.join(dir, expand(file, variables)), variables)\n end unless plist['FilesToMacroExpand'].nil?\n end\nend\n\ndef scan_dir(dir)\n entries = [ ]\n Dir.foreach(dir) do |entry|\n next unless File.directory?(dir) and entry !~ /^\\./\n entries << { 'name' => entry, 'path' => File.join(dir, entry) }\n end\n entries \nend\n\ntemplates = [ ]\n\nTEMPLATE_DIRS.each do |templates_dir|\n next unless File.directory?(templates_dir)\n Dir.foreach(templates_dir) do |dir|\n next if dir =~ /^\\./\n children = scan_dir(File.join(templates_dir, dir))\n if template_list = templates.find { |tpl| tpl['name'] == dir }\n template_list['children'] += children\n else\n templates << { 'name' => dir, 'children' => children }\n end\n end\nend\n\nplist = { 'templates' => templates, 'projectName' => 'untitled' }.to_plist\ndefaults = { 'Xcode New Project Location' => '~/',\n 'Xcode New Project Selected Template' => [ [ 1, 6 ] ] }.to_plist\n\nif res = OSX::PropertyList.load(%x{ \"$DIALOG\" -cmp \#{e_sh plist} -d \#{e_sh defaults} 'New Project' })['result']\n\n src = res['returnArgument']\n\n dir = File.expand_path(res['location'])\n dst = File.join(dir, res['name'])\n \n abort \"Location does not exist.\" unless File.exists?(dir)\n abort \"Destination already exists.\" if File.exists?(dst)\n\n FileUtils.cp_r(src, dst)\n ProcessTemplate.process(dst, res['name'])\n %x{ \#{e_sh MATE} \#{e_sh dst} &>/dev/null & }\n\nend\n",
78
+ input: "none",
79
+ name: "New Project Using Xcode Template…",
80
+ output: "showAsTooltip",
81
+ uuid: "73E356A1-87CF-4B8E-A4B5-B14F29683F12"},
82
+ {beforeRunningCommand: "nop",
83
+ command:
84
+ "PROJECT=$(ruby -- \"${TM_BUNDLE_SUPPORT}/bin/find_xcode_project.rb\")\nif [[ -f \"${PROJECT}/project.pbxproj\" ]]; then\n open -a Xcode \"${PROJECT}\"\nelse\n echo \"Didn't find an Xcode project file.\"\n echo \"You may want to set TM_XCODE_PROJECT.\"\nfi\n",
85
+ input: "none",
86
+ keyEquivalent: "~@",
87
+ name: "Open Project in Xcode",
88
+ output: "showAsTooltip",
89
+ scope: "source.c, source.c++, source.objc, source.objc++",
90
+ uuid: "C9FAE873-96D3-4CE7-8DDA-4C2B30F1813E"},
91
+ {beforeRunningCommand: "nop",
92
+ command:
93
+ "PROJECT=$(ruby -- \"${TM_BUNDLE_SUPPORT}/bin/find_xcode_project.rb\")\nif [[ -f \"${PROJECT}/project.pbxproj\" ]]; then\n \"${TM_BUNDLE_SUPPORT}/bin/run_xcode_target.rb\" -project_dir=\"$PROJECT\"\nelse\n echo \"Didn't find an Xcode project file.\"\n echo \"You may want to set TM_XCODE_PROJECT.\"\nfi\n",
94
+ input: "none",
95
+ keyEquivalent: "@R",
96
+ name: "Run",
97
+ output: "showAsTooltip",
98
+ uuid: "779DEA3C-D310-4B66-9531-DF9007434878"},
99
+ {beforeRunningCommand: "nop",
100
+ command:
101
+ "export TM_TARGET=\"${TM_TEST_TARGET:-Test}\"\n\"${TM_BUNDLE_SUPPORT}/bin/run_xcodebuild.sh\"",
102
+ input: "none",
103
+ keyEquivalent: "~@T",
104
+ name: "Run Tests",
105
+ output: "showAsHTML",
106
+ uuid: "40D3C674-40A1-42A1-847A-FBEAE6E83CCC"}]