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: "saveActiveFile",
4
+ command:
5
+ "#\n#\tCompile a single file to a.out and execute the code in the frontmost Terminal\n#\n\n# Get some HTML niceties\n. \"${TM_SUPPORT_PATH}/lib/html.sh\"\n. \"${TM_SUPPORT_PATH}/lib/webpreview.sh\"\n\n# Check existence of fortran compiler\n# set TM_FORTRAN to gfortran if it is not already set\n: ${TM_FORTRAN:=gfortran}\n# require the existence of the command and show HTML error message if the command is not found\nrequire_cmd \"$TM_FORTRAN\" \"You must set the <tt>TM_FORTRAN</tt> variable to the full path of your Fortran compiler (e.g. <tt>/usr/local/bin/gfortran</tt>). You may also set <tt>TM_FFLAGS</tt> for any Fortran compiler options.\"\n\n# Prepare output HTML in case the compilation fails\nhtml_header \"`basename $TM_FORTRAN` compile\"\n\n# TIP (from Allan Odgaard)\n#\tcommand1 &> >(command2)\n# pipes the output of 'command1' to 'command2' but the status is still evaluated from 'command1'. Really cool.\n\n# Pipe the output of the compiler to 'pre' which formats it nicely for HTML output\nif cd \"$TM_DIRECTORY\" && \"$TM_FORTRAN\" $TM_FFLAGS `basename \"$TM_FILEPATH\"` &> >(pre); then\n\t\n\t# if compilation went well, execute the code in the frontmost Terminal\n\t# TIP (from jacobolus): using -SOMETHING as entry point allows the end SOMETHING to be indented with the rest of the code\n\t# TIP (from infinilight): use TM_TERMINAL to detect which terminal to run\n\tTM_TERMINAL=`echo $TM_TERMINAL | tr \"[:upper:]\" \"[:lower:]\"`\n\techo $TM_TERMINAL\n\t\n\tif [ \"$TM_TERMINAL\" == \"iterm\" ]; then\n\t\t# iTerm code - simple and not necessarily robust\n\t\tosascript <<-APPLESCRIPT\n\t\t\ttell application \"iTerm\"\n\t\t\t\tactivate\n\t\t\t\tif not (exists current terminal) then\n\t\t\t\t\tset myterm to (make new terminal)\n\t\t\t\t\ttell myterm\n\t\t\t\t\t\tlaunch session \"Default Session\"\n\t\t\t\t\tend tell\n\t\t\t\tend if\n\t\t\t\ttell current terminal\n\t\t\t\t\ttell current session\n\t\t\t\t\t\twrite text \"cd \" & \"$TM_DIRECTORY\"\n\t\t\t\t\t\twrite text \"./a.out\"\n\t\t\t\t\tend tell\n\t\t\t\tend tell\n\t\t\tend tell\n\t\t\ttell application \"TextMate\"\n\t\t\t\tactivate\n\t\t\tend tell\n\t\tAPPLESCRIPT\n\telse\n\t\t# Apple Terminal code - checks that a window exists and is not buzy\n\t\tosascript <<-APPLESCRIPT\n\t\t\ttell application \"Terminal\"\n\t\t\t\tactivate\n\t\t\t\tset windowCount to (count of the windows)\n\t\t\t\tif windowCount is greater than 0 then\n\t\t\t\t\trepeat with w from 1 to windowCount\n\t\t\t\t\t\tif window 1 is busy then\n\t\t\t\t\t\t\tset frontmost of window 1 to false\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tdo script \"cd \" & \"$TM_DIRECTORY\" in window 1\n\t\t\t\t\t\t\tdo script \"./a.out\" in window 1\n\t\t\t\t\t\t\tset frontmost of window 1 to true\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\tend if\n\t\t\t\t\tend repeat\n\t\t\t\tend if\n\t\t\t\ttell window 1\n\t\t\t\t\tdo script \"cd \" & \"$TM_DIRECTORY\" & \" && ./a.out\"\n\t\t\t\t\tset frontmost to true\n\t\t\t\tend tell\n\t\t\tend tell\n\t\t\ttell application \"TextMate\"\n\t\t\t\tactivate\n\t\t\tend tell\n\t\tAPPLESCRIPT\n\tfi\n\n\texit_discard\n\nelse\n\t# if compilation failed, show compiler's output in HTML preview\n\texit_show_html \"<h2>Compilation failed</h2>\"\n\nfi\n",
6
+ input: "none",
7
+ keyEquivalent: "@r",
8
+ name: "Compile & Execute Single File",
9
+ output: "discard",
10
+ scope: "source.fortran",
11
+ uuid: "EDD1628F-BB8C-4EC1-AFBD-90EC260F45B9"},
12
+ {beforeRunningCommand: "saveActiveFile",
13
+ command:
14
+ "#\n#\tCompile a single file to a.out\n#\n\n# Get some HTML niceties\n. \"${TM_SUPPORT_PATH}/lib/html.sh\"\n. \"${TM_SUPPORT_PATH}/lib/webpreview.sh\"\n\n# Check existence of fortran compiler\n# set TM_FORTRAN to gfortran if it is not already set\n: ${TM_FORTRAN:=gfortran}\n# require the existence of the command and show HTML error message if the command is not found\nrequire_cmd \"$TM_FORTRAN\" \"You must set the <tt>TM_FORTRAN</tt> variable to the full path of your Fortran compiler (e.g. <tt>/usr/local/bin/gfortran</tt>). You may also set <tt>TM_FFLAGS</tt> for any Fortran compiler options.\"\n\n# Prepare output window\nhtml_header \"`basename $TM_FORTRAN` compile\"\n\n# TIP: from Allan Odgaard\n# \tcommand1 &> >(command2)\n# pipes the output of 'command1' to 'command2' but the status is still evaluated from 'command1'. Really cool.\n\n# Pipe the output of the compiler to 'pre' which formats it nicely for HTML output\nif cd \"$TM_DIRECTORY\" && \"$TM_FORTRAN\" $TM_FFLAGS `basename \"$TM_FILEPATH\"` &> >(pre); then\n\techo \"</pre>\"\n\techo \"<h2>Successfully compiled a.out</h2>\"\nelse\n\techo \"</pre>\"\n\techo \"<h2>Compilation failed</h2>\"\nfi\n\nhtml_footer\n",
15
+ input: "none",
16
+ keyEquivalent: "@b",
17
+ name: "Compile Single File",
18
+ output: "showAsHTML",
19
+ scope: "source.fortran",
20
+ uuid: "21AF6BCC-5AD2-4B47-8A6B-0EB7F27BD97C"},
21
+ {beforeRunningCommand: "nop",
22
+ command:
23
+ ". \"$TM_SUPPORT_PATH/lib/webpreview.sh\"\n\nhtml_header \"Fortran Format Cheat Sheet\"\n\nMarkdown.pl \"$TM_BUNDLE_SUPPORT/format_syntax.md\"\n\nhtml_footer",
24
+ input: "none",
25
+ keyEquivalent: "^H",
26
+ name: "Format Cheat Sheet",
27
+ output: "showAsHTML",
28
+ scope: "source.fortran",
29
+ uuid: "46575B73-BDD7-4905-BFCB-2B1C9AA4673D"},
30
+ {beforeRunningCommand: "nop",
31
+ command:
32
+ "echo \"function $TM_CURRENT_WORD(\\$1)\"\necho \"\t\\$2, intent(\\${3:inout}) :: \\$1\"\necho \"\t\\$4 :: $TM_CURRENT_WORD\"\necho \"\t\\$0\"\necho \"end function $TM_CURRENT_WORD\"",
33
+ fallbackInput: "word",
34
+ input: "selection",
35
+ keyEquivalent: "$\n",
36
+ name: "Function based on current word",
37
+ output: "insertAsSnippet",
38
+ scope: "source.fortran",
39
+ uuid: "0D6DE4E4-53AF-44E4-B8B8-D4F36FF96F77"},
40
+ {beforeRunningCommand: "nop",
41
+ command:
42
+ "line=$TM_CURRENT_LINE\nheader=$TM_SELECTED_TEXT\n\n# extract header from current line\nif [[ -z \"$header\" ]] && $(egrep -q <<<\"$line\" '#(import|include)'); then\n header=$(sed -n <<<\"$line\" 's/[^<\"]*[<\"]\\([^\">]*\\).*/\\1/p')\nfi\n\n# ask user about header\nif [[ -z \"$header\" ]]; then\n res=$(CocoaDialog inputbox --title \"Open Header Quickly\" --no-newline --informative-text \"Header name?\" --text \"foobar\" --button1 \"Open\" --button2 \"Cancel\")\n [[ $(head -n1 <<<\"$res\") == \"2\" ]] && exit\n header=$(tail -n1 <<<\"$res\")\nfi\n\n# If Spotlight is available, avail ourselves of it.\n# otherwise, use the old 'find'-based method.\n#\n# The Spotlight method has the advantage of being\n# both reasonably fast and catching all the corner\n# cases, many of which are missed by the old method.\n#\nif [[ `which mdfind` != *\"not found\" ]]; then\n\t# we have Spotlight\n\tfiles=`${TM_RUBY:-ruby} \"$TM_BUNDLE_SUPPORT/SpotlightSearch.rb\" \"$header\"`\nelse\n\t# old method\n\tarr=(\"/usr/include\"\n\t\"${TM_PROJECT_DIRECTORY:-$TM_DIRECTORY}\"\n\t)\n\n\tfiles=$(for dir in \"${arr[@]}\";\n\t\tdo find \"$dir\" -path \"*/$header\"; done|sort|uniq)\nfi\n\nif [[ -n \"$files\" ]];\n then IFS=$'\\n'; mate $files &>/dev/null &\n else echo \"No headers found.\"\nfi\n",
43
+ input: "selection",
44
+ keyEquivalent: "@D",
45
+ name: "Quick Open",
46
+ output: "showAsTooltip",
47
+ scope: "source.fortran",
48
+ uuid: "ED1485C9-393F-4B62-A8E8-62B242E4C7CF"},
49
+ {beforeRunningCommand: "nop",
50
+ command:
51
+ "echo \"subroutine $TM_CURRENT_WORD(\\$1)\"\necho \"\t\\$2, intent(\\${3:inout}) :: \\$1\"\necho \"\t\\$0\"\necho \"end subroutine $TM_CURRENT_WORD\"",
52
+ fallbackInput: "word",
53
+ input: "selection",
54
+ keyEquivalent: "$\n",
55
+ name: "Subroutine based on current word",
56
+ output: "insertAsSnippet",
57
+ scope: "source.fortran",
58
+ uuid: "8806B464-11D1-419E-B883-3727F144FCC5"}]
@@ -0,0 +1,134 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "saveActiveFile",
4
+ command:
5
+ "#!/usr/bin/env ruby \n\nrequire \"\#{ENV['TM_SUPPORT_PATH']}/lib/textmate\"\nrequire \"erb\"\nrequire \"pp\"\ninclude ERB::Util\nrequire \"\#{ENV['TM_BUNDLE_SUPPORT']}/gtd_functions\" \n\ndisplayTasks\n",
6
+ input: "none",
7
+ keyEquivalent: "^T",
8
+ name: "Active GTD List View",
9
+ output: "showAsHTML",
10
+ scope: "text.html.markdown.wiki.gtd",
11
+ uuid: "A108E6E4-317A-4883-B152-11A9E115BF1C"},
12
+ {beforeRunningCommand: "nop",
13
+ command:
14
+ "#!/usr/bin/env ruby\n# just to remind you of some useful environment variables\n# see Help / Environment Variables for the full list\n# echo File: \"$TM_FILEPATH\"\n\narchiveDate = `date +%Y-%m-%d`\nmyArchive = ENV['TM_PROJECT_DIRECTORY'].to_s + '/ArchivedTasks.gtd'\nmyTasks = ''\nmyTask = (`date +%Y-%m-%d`).chomp + \" \" + ENV['TM_FILENAME'][0..-5] + \": \" + ENV['TM_CURRENT_LINE'][3..-1] \n#puts myArchive\n\nunless (File.exists?(myArchive))\n\texec \"touch \#{myArchive}\"\nend \n\nFile.open(myArchive, \"r\").each do |line|\n myTasks = myTasks + line\nend\n\nmyTasks = myTasks + myTask + \"\\n\"\n\nFile.open(myArchive, \"w\") do |f|\n f << myTasks\nend",
15
+ fallbackInput: "line",
16
+ input: "selection",
17
+ name: "Archive Task",
18
+ output: "replaceSelectedText",
19
+ scope: "text.html.markdown.wiki.gtd",
20
+ tabTrigger: "a",
21
+ uuid: "7FC498D7-1477-445B-A39B-FA63FDF10742"},
22
+ {beforeRunningCommand: "saveActiveFile",
23
+ command:
24
+ "#!/usr/bin/env ruby\n\nmyFile = ENV['TM_SELECTED_FILE']\n\nmyText = File.open(myFile)\nre = /\\s/\nmyText.each do |line|\n #myTest = re.match(line)\n #if (myTest.pre_match != \"+\" and myTest.pre_match.length > 0)\n if line.length > 1\n puts line\n end\nend",
25
+ input: "document",
26
+ keyEquivalent: "^C",
27
+ name: "Cleanup",
28
+ output: "replaceDocument",
29
+ scope: "text.html.markdown.wiki.gtd",
30
+ uuid: "0CE0800F-C66A-476A-B67A-5B22087D4E70"},
31
+ {beforeRunningCommand: "nop",
32
+ command:
33
+ "#!/usr/bin/env ruby \n\nrequire \"\#{ENV['TM_SUPPORT_PATH']}/lib/textmate\"\n\n$myPath = ENV['TM_DIRECTORY']\n\nmyFiles = Dir.entries($myPath)\nmyProjects = []\nmyFiles.each do |fileName|\n if fileName[-3,3] == \"gtd\"\n myProjects.push fileName\n end\nend\n\nputs myProjects",
34
+ input: "none",
35
+ keyEquivalent: "^P",
36
+ name: "Create Project List",
37
+ output: "replaceDocument",
38
+ scope: "text.html.markdown.wiki.gtd",
39
+ uuid: "DC188528-1C29-47BA-9DBB-29A0C97C5655"},
40
+ {beforeRunningCommand: "nop",
41
+ command:
42
+ "#!/usr/bin/env python\nimport sys, os\n\noldtask = os.environ['TM_CURRENT_LINE']\nif (oldtask[0] != \"+\") and (oldtask[0] != \"^\"):\n\tsys.stdout.write(\"-> \" + oldtask[3:])\nelse:\n sys.stdout.write(oldtask)",
43
+ fallbackInput: "line",
44
+ input: "selection",
45
+ name: "Delegate",
46
+ output: "replaceSelectedText",
47
+ scope: "text.html.markdown.wiki.gtd",
48
+ tabTrigger: "f",
49
+ uuid: "DCE997E1-D107-4873-A297-6CF808401DA3"},
50
+ {beforeRunningCommand: "nop",
51
+ command:
52
+ "#!/usr/bin/env python\nimport sys, os\n\noldtask = os.environ['TM_CURRENT_LINE']\nsys.stdout.write(\"+ \" + oldtask[3:])\n",
53
+ fallbackInput: "line",
54
+ input: "selection",
55
+ name: "Done",
56
+ output: "replaceSelectedText",
57
+ scope: "text.html.markdown.wiki.gtd",
58
+ tabTrigger: "d",
59
+ uuid: "3EA8AD43-5ED3-4FB3-9296-D37A409AABF8"},
60
+ {beforeRunningCommand: "nop",
61
+ command:
62
+ "#!/usr/bin/env ruby\n\n# To use this function, type the desired key followed by \"Enter\"\n#\n# Note - the search for the tab command will stop at the first match,\n# so put longer commands before shorter, e.g., tw before t.\n\n# This is where the GTD files are kept\n$myPath = ENV['TM_DIRECTORY'] \ntabCommand = ENV['TM_CURRENT_LINE']\n\n$contexts = [] #user defined contexts\ndef readContexts(a)\n # processes contexts.gtd into script \n context, tabCommand, tabString, regex, color = a.split(/\\|/)\n $contexts.push({:context => tabCommand, :tabString => tabString}) \nend\n\n\ndef reportContexts\n # a simple test\n $contexts.each do |tag|\n puts(\"Context: \" + tag[:context])\n puts(\"tabCommand: \" + tag[:tabCommand])\n puts(\"tabString: \" + tag[:tabString])\n puts(\"Search String: \" + tag[:regex])\n puts(\"Color: \" + tag[:color])\n i = 0\n while i < tag[:tasks].length\n puts \"Task: \" + tag[:tasks][i]\n i = i + 1\n end\n end\nend\n\ndef myParse tabCommand\n found = 0\n $contexts.each do |tag|\n re = tag[:context]\n if (tabCommand == re) and (found == 0) \n print tag[:tabString]\n found = 1\n end\n end\n if found == 0 \n puts \"failed\"\n end\nend\n\n\n# the contexts.gtd file is read, and converted into $contexts\nfile = File.open($myPath+\"/contexts.gtd\", \"r\")\nfile.each do |line|\n readContexts(line)\nend \n\nmyParse tabCommand",
63
+ fallbackInput: "line",
64
+ input: "selection",
65
+ keyEquivalent: "",
66
+ name: "Execute Tab Command",
67
+ output: "insertAsSnippet",
68
+ scope: "text.html.markdown.wiki.gtd",
69
+ uuid: "1CEC5F39-6479-4C96-BD24-EF49F0A19F9B"},
70
+ {beforeRunningCommand: "saveActiveFile",
71
+ command:
72
+ "#!/usr/bin/env ruby \n\nrequire \"\#{ENV['TM_SUPPORT_PATH']}/lib/textmate\"\nrequire \"erb\"\nrequire \"pp\"\ninclude ERB::Util\nrequire \"\#{ENV['TM_BUNDLE_SUPPORT']}/gtd_functions\" \n\n$myPath = ENV['TM_DIRECTORY'] \n$tags = [] #user defined contexts\n\ndef readContexts(a)\n # processes contexts.gtd into script \n context, tabCommand, tabString, regex, color = a.split(/\\|/)\n if context != \"+ DONE\"\n $tags.push({:label => context[3..-1], :regexp => regex, :color => color, :matches => []}) \n end \nend \n\n# the contexts.gtd file is read, and converted into $contexts\nfile = File.open($myPath+\"/contexts.gtd\", \"r\")\nfile.each do |line|\n readContexts(line)\nend \n\n# new feature - exclusion of selected files\n# this allows you to select which lists are included\n# in list views\nclass ExList\n def initialize\n @values = []\n end\n def contains(test)\n found = true\n @values.each do |item|\n if test == item.chomp\n found = false\n end\n end\n return found\n end\n def add(item)\n @values.push item\n end\n def print\n puts @values\n end\nend\n\nxFile = File.open($myPath+\"/excluded.gtd\", \"r\")\n\nmyList = ExList.new\n\nxFile.each do |line|\n myList.add(line)\nend\n\n# sorting happens\ntodoList = \"\"\n$tags.each do |tag| \n context = tag[:regexp] \n matches = 0 \n myFiles = Dir.entries($myPath)\n myFiles.each do |fileName|\n if ((fileName[-3,3] == \"gtd\") and myList.contains(fileName))\n lineno = 0\n mFile = File.open(fileName) \n mFile.each do |line|\n lineno = lineno + 1\n tLine = line[3..-1]\n if tLine != nil\n re = /\\s/\n if line[0..1] == \"- \"\n ctask = re.match(tLine)\n else \n ctask = re.match(line)\n end\n if (ctask.pre_match == context) and ((line[0..2] == \"- \") or (line[0..2] == \"! \"))\n results = (fileName[0..-5] + \":\" + lineno.to_s + \": \" + ctask.post_match)\n matches += 1\n if matches == 1\n todoList += \"\\n\" + tag[:label] + \"\\n\" \n end\n todoList += results\n end \n end\n end\n end\n end\n if matches == 0\n # todoList += \"none\\n\"\n end\n todoList += \"\\n\"\nend\n \nFile.open($myPath + \"/todoList.txt\", \"w\") {|f|\n f << todoList}\n\nputs \"GeekTool Updated.\"\n",
73
+ input: "none",
74
+ keyEquivalent: "^G",
75
+ name: "Export to GeekTool",
76
+ output: "showAsTooltip",
77
+ scope: "text.html.markdown.wiki.gtd",
78
+ uuid: "4BAA7812-3BED-4A7B-8292-08C17C935BD7"},
79
+ {beforeRunningCommand: "saveActiveFile",
80
+ command:
81
+ "#!/usr/bin/env ruby \n\nrequire \"\#{ENV['TM_SUPPORT_PATH']}/lib/textmate\"\nrequire \"erb\"\nrequire \"pp\"\ninclude ERB::Util\nrequire \"\#{ENV['TM_BUNDLE_SUPPORT']}/gtd_functions\" \n\ndisplayAllTasks",
82
+ input: "none",
83
+ keyEquivalent: "^@T",
84
+ name: "GTD List View",
85
+ output: "showAsHTML",
86
+ scope: "text.html.markdown.wiki.gtd",
87
+ uuid: "4351CBE0-CE02-472E-A0A9-F9F895B2946C"},
88
+ {beforeRunningCommand: "nop",
89
+ command:
90
+ ". \"$TM_SUPPORT_PATH/lib/webpreview.sh\"\nhtml_header \"GTD Bundle Help\" \"Getting Things Done\"\nMarkdown.pl <<\"EOF\"|SmartyPants.pl\n\nThis bundle is shamelessly taken from the TODO bundle and reconfigured for GTD. [More information](http://www.davidco.com) on GTD.\n\n# Setting up the GTD Bundle\n\nThe latest version of the GTD bundle can always be found at [textmate repository]. Additionally, you'll need two files, a contexts file and an exclusions file. These files need to go into a folder where you plan to place all of your .gtd files. I keep mine in `~/Documents/ToDo`.\n\nBasically, the `contexts.gtd` file is a list of contexts, as described above. There are several data elements for each file, a couple of which I no longer use, but keep so that I don't break the system. The big things to get right are the context (first cell), the shortcut key (second cell) and the context string (third element).\n\nThe `exclusions.gtd` file is a list of gtd files that you *don't* want to see listed in the rollup of tasks. Why? Well, it allows me to create project files that I can hide until I want to deal with them. For example, I created a `bookshelf.gtd` file that lists all of the tasks associated with building shelves in my garage. However, I'm not ready for that project yet, so I hide it from my rollup. I've tried to make the GTD bundle as customizable as possible, so while you must have the `excluded.gtd` file, you are free to not use it.\n\n# Using the GTD Bundle\n\nNow that you have downloaded the bundle and the supporting files, you are ready to jump in! First, create a new project file in your ToDo folder (or whatever you call it). Then begin adding tasks by entering a shortcut and hitting the \"**Enter**\" key - not \"Return.\" This should replace the shortcut with the corresponding context string from `contexts.gtd`. Then tab to the data field(s) for that task and hit return to finish entering the task.\n\nContexts are great, but there is also a status component of the gtd list in the GTD bundle. The normal status is how the task is created. The two modified statuses are \"WAIT\" and \"DONE.\" To change the status of a task to \"WAIT\" type \"w\" and then the tab key anywhere on the tasks line (just make sure it is either the first character or there is a pace in from of the \"w\"). Then, when you want to \"unwait\" the task, do the same thing with \"u\". When a task is done, mark it as \"DONE\" using \"d\" and the tab key.\n\nLike I said in the beginning, my objective is to plan in project, execute in context. So, I have a couple of list views, \"Active GTD List View\" and \"GTD List View\". The major difference between the two is that the active list does not show completed tasks, although it does show \"WAIT\" tasks. Either way, the bundle creates a nice looking list of tasks, arranged by context.\n\nOne other subject area is additional list formatting. You can sort all of the tasks in a project by context by pressing `F5`. I personally don't like this, because my projects are generally built in a rough sequence. I have to look up a phone number before I can call it, for example. So, the feature is there, but I don't really use it. There are also a couple of cleanup commands. Cleanup (CTRL-Shift-C) moves all of the \"DONE\" tasks to the bottom of a project list. Remove (CTRL-ALT-Shift-C) does what it says; it removes completed tasks.\n\nEOF\nhtml_footer\n",
91
+ input: "none",
92
+ name: "Help",
93
+ output: "showAsHTML",
94
+ scope: "text.html.markdown.wiki.gtd",
95
+ uuid: "A6C302D1-4EB0-4CE8-AB43-F21672BFFB68"},
96
+ {beforeRunningCommand: "nop",
97
+ command:
98
+ "#!/usr/bin/env python\nimport sys, os\n\noldtask = os.environ['TM_CURRENT_LINE']\nsys.stdout.write(\"! \" + oldtask[3:])\n",
99
+ fallbackInput: "line",
100
+ input: "selection",
101
+ name: "Priority",
102
+ output: "replaceSelectedText",
103
+ scope: "text.html.markdown.wiki.gtd",
104
+ tabTrigger: "p",
105
+ uuid: "4BAAE940-7F72-4184-B165-F028FB6E99FF"},
106
+ {beforeRunningCommand: "saveActiveFile",
107
+ command:
108
+ "#!/usr/bin/env ruby\n\nmyFile = ENV['TM_SELECTED_FILE']\n\nmyText = File.open(myFile)\nre = /\\s/\nmyText.each do |line|\n myTest = re.match(line)\n if (myTest.pre_match != \"+\" and myTest.pre_match.length > 0)\n puts line\n end\nend \n",
109
+ input: "document",
110
+ keyEquivalent: "^~C",
111
+ name: "Remove Completed Tasks",
112
+ output: "replaceDocument",
113
+ scope: "text.html.markdown.wiki.gtd",
114
+ uuid: "D1E96B26-25A1-4525-873C-417598FB8814"},
115
+ {beforeRunningCommand: "nop",
116
+ command:
117
+ "#!/usr/bin/env python\nimport sys, os\n\noldtask = os.environ['TM_CURRENT_LINE']\nif (oldtask[0] != \"+\") and (oldtask[0] != \"^\"):\n\tsys.stdout.write(\"- \" + oldtask[3:])\nelse:\n sys.stdout.write(oldtask)",
118
+ fallbackInput: "line",
119
+ input: "selection",
120
+ name: "Undo State Change",
121
+ output: "replaceSelectedText",
122
+ scope: "text.html.markdown.wiki.gtd",
123
+ tabTrigger: "u",
124
+ uuid: "900C7391-7C63-4D1C-AF83-9F3E497F6A7F"},
125
+ {beforeRunningCommand: "nop",
126
+ command:
127
+ "#!/usr/bin/env python\nimport sys, os\n\noldtask = os.environ['TM_CURRENT_LINE']\nif (oldtask[0] != \"+\") and (oldtask[0] != \"^\"):\n\tsys.stdout.write(\"<- \" + oldtask[3:])\nelse:\n sys.stdout.write(oldtask)",
128
+ fallbackInput: "line",
129
+ input: "selection",
130
+ name: "Wait",
131
+ output: "replaceSelectedText",
132
+ scope: "text.html.markdown.wiki.gtd",
133
+ tabTrigger: "w",
134
+ uuid: "4C31BAAA-2182-47D7-8B10-2B17A6078FCA"}]
@@ -0,0 +1,225 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "saveActiveFile",
4
+ command:
5
+ "#!/usr/bin/env ruby\n$:<< ENV['TM_BUNDLE_SUPPORT'] << ENV['TM_SUPPORT_PATH']\nrequire \"lib/GTD.rb\"\nrequire \"lib/ui\"\ninclude GTD\nword = STDIN.read\ncase word\nwhen /^@?(\\w+)$/\n w = $1\nwhen /\\s+@(\\w+)\\s*.*/\n w = $1\nend\nif GTD.get_contexts.include?(word) then\n\tcontext = word\nelse\n context = TextMate::UI.request_item(:title => 'Listing actions for context', :prompt => 'Choose the new context', :items => GTD.contexts)\n exit unless context\nend\nactions = GTD.actions_for_context(context).map{|r| [r[0],r[1].to_s,r[2]]}\nputs prettify(actions)\n",
6
+ fallbackInput: "word",
7
+ input: "selection",
8
+ name: "Actions for Context (Text)",
9
+ output: "openAsNewDocument",
10
+ scope: "text.gtdalt",
11
+ uuid: "C78ECFD8-DABE-4E2C-B628-0DDF2A3A3B21"},
12
+ {beforeRunningCommand: "saveActiveFile",
13
+ command:
14
+ "#!/usr/bin/env ruby\nrequire ENV['TM_BUNDLE_SUPPORT'] + '/lib/GTD.rb'\ninclude GTD\nfile = ENV['TM_FILEPATH']\nobj = GTDFile.new(file)\nobj.cleanup_projects\nlog = File.open(File.join(File.dirname(file),\"GTD.gtdlog\"),\"a\")\n\tlog.write MyLogger.dump + \"\\n\"\nlog.close\nputs obj.dump_object",
15
+ fallbackInput: "document",
16
+ input: "none",
17
+ keyEquivalent: "~@/",
18
+ name: "Archive Completed",
19
+ output: "replaceDocument",
20
+ scope: "text.gtdalt",
21
+ uuid: "2803EE1A-6878-47C7-BB7F-3C1B69315209"},
22
+ {beforeRunningCommand: "nop",
23
+ command:
24
+ "#!/usr/bin/env ruby\nrequire ENV['TM_BUNDLE_SUPPORT'] + '/lib/GTDUtils.rb'\nrequire ENV['TM_SUPPORT_PATH'] + '/lib/ui.rb'\nline = STDIN.read\ncontextList = GTDContexts.contexts\nchoice = TextMate::UI.menu(contextList)\nif choice then\n print line.sub(/@(\\S+)($|\\s+)/) {|text,space| \"@\" + e_sn(contextList[choice]) + ((space.nil? or space == \"\") ? \" \" : space)+\"$0\"}\nelse\n print e_sn(line)\nend\n",
25
+ fallbackInput: "line",
26
+ input: "selection",
27
+ keyEquivalent: "@",
28
+ name: "Change Context",
29
+ output: "insertAsSnippet",
30
+ scope: "text.gtdalt meta.action",
31
+ uuid: "2B282247-5930-462F-8D6E-54ADF228EC49"},
32
+ {beforeRunningCommand: "nop",
33
+ command: "\"$TM_BUNDLE_SUPPORT/bin/KinklessToGTDConverter.rb\"\n",
34
+ fallbackInput: "line",
35
+ input: "document",
36
+ name: "Convert From Kinkless",
37
+ output: "openAsNewDocument",
38
+ uuid: "40ABCA1E-A154-47C7-8EBC-D22DC078D295"},
39
+ {beforeRunningCommand: "saveActiveFile",
40
+ command:
41
+ "#!/usr/bin/env ruby\nrequire ENV['TM_BUNDLE_SUPPORT'] + '/lib/GTD.rb'\ninclude GTD\nobjects = GTD.process_directory\nacts = objects.map{|o| o.actions}.flatten\nacts.sort! do |a,b|\n da, db = *[a.due, b.due].map {|i| i || \"\"} # convert nils to empty strings\n# puts a,b, da, db\n if a.context == b.context then\n if da == db then\n a.parent.name <=> b.parent.name\n else\n da <=> db\n end\n else\n a.context <=> b.context\n end\nend\npr = Printer.new\nb = <<HTML\n<html>\n <head>\n <link rel=\"stylesheet\" href=\"tm-file://\#{ENV['TM_SUPPORT_PATH']}/css/default.css\" type=\"text/css\" media=\"screen\" title=\"no title\" charset=\"utf-8\" />\n <link rel=\"stylesheet\" href=\"tm-file://\#{ENV['TM_BUNDLE_SUPPORT']}/css/sidebar.css\" type=\"text/css\" media=\"screen\" title=\"no title\" charset=\"utf-8\" />\n <script src=\"tm-file://\#{ENV['TM_BUNDLE_SUPPORT']}/js/sidebar.js\" type=\"text/javascript\" charset=\"utf-8\"></script>\n <script src=\"tm-file://\#{ENV['TM_BUNDLE_SUPPORT']}/js/sorttable.js\" type=\"text/javascript\" charset=\"utf-8\"></script>\n <style type=\"text/css\">\n .nobr {white-space: nowrap}\n </style>\n </head>\n <body>\n <body class=\"\">\n <ul id=\"toggles\">\n <p>Next Actions Only <input type=\"checkbox\" name=\"next-show\" value=\"\" id=\"next-show-button\"></p>\n <li class=\"collapse\" tablecolumn=\"0\">Contexts</li>\n <li class=\"collapse\" tablecolumn=\"2\">Projects</li>\n <li class=\"collapse\" tablecolumn=\"3\">Files</li>\n </ul>\nHTML\ne = <<HTML\n </body>\n</html>\nHTML\npr.raw b\npr.table do\n pr.title \"List of all Actions\"\n pr.headers([ \"Context\", \"Action\", \"Project\", \"File\" , \"Due by\",\"Completed\"])\n acts.each do |a|\n proj = a.parent.link\n due = case a.due\n when \"\",nil\n \"\"\n when DateLate\n \"<span style=\\\"color:red\\\">\#{a.due}</span>\"\n else\n a.due\n end\n note_part = (a.note != \"\") ? \" title=\\\"\#{a.note}\\\"\" : \"\"\n text = \"<a href=\\\"\#{a.txmt}\\\"\#{note_part}>\#{a.name}</a>\"\n if a.is_next_action?\n pr.row_next([a.context, text, proj, a.root.link , \"<span class=\\\"nobr\\\">\#{due}</span>\", a.mark_completed_link])\n else\n pr.row([a.context, text, proj, a.root.link , \"<span class=\\\"nobr\\\">\#{due}</span>\", a.mark_completed_link])\n end\n end\nend\npr.raw e\nputs pr.to_html",
42
+ fallbackInput: "word",
43
+ input: "none",
44
+ keyEquivalent: "^~@0",
45
+ name: "Current Actions",
46
+ output: "showAsHTML",
47
+ scope: "text.gtdalt",
48
+ uuid: "F4884C32-9046-48E8-AB57-1784AF8C264C"},
49
+ {beforeRunningCommand: "nop",
50
+ command:
51
+ "\"$TM_BUNDLE_SUPPORT/bin/fill_remind_file.rb\"\necho \"Your remind files are now filled!\"",
52
+ fallbackInput: "document",
53
+ input: "none",
54
+ keyEquivalent: "^~@+",
55
+ name: "Fill Remind Files",
56
+ output: "showAsTooltip",
57
+ scope: "text.gtdalt",
58
+ uuid: "7A8587A6-743D-4449-A0E2-BFD9A97893BC"},
59
+ {beforeRunningCommand: "saveActiveFile",
60
+ command:
61
+ "#!/usr/bin/env ruby\nrequire ENV['TM_BUNDLE_SUPPORT'] + '/lib/GTD.rb'\nrequire ENV['TM_SUPPORT_PATH'] + '/lib/ui.rb'\ninclude GTD\nfiles = GTD.process_directory\nprojects = files.map{|i| i.projects}.flatten\nsearch_string = TextMate::UI.request_string(:title => \"Finding projects\", :prompt => \"Abbreviated words to seach for:\")\nexit unless search_string && !(search_string =~ /^\\s*$/)\nsearch_terms = search_string.downcase.split(\" \")\nfor term in search_terms do\n projects = projects.find_all { |proj| proj.name.downcase.index(term) != nil }\nend\ncase projects.length\nwhen 0\n project = nil\nwhen 1\n project = projects[0]\nelse\n project = TextMate::UI.request_item(:title => \"Finding projects\",:prompt => \"Too many possible matches found! Please select one:\",:items => projects.map{|i| i.name+\" : \"+i.root.name} )\n project = projects.find{|proj| proj.name+\" : \"+proj.root.name == project} if project\nend\nif project then\n# project.root.update!\n `open \"\#{project.txmt}\"`\nend\n",
62
+ fallbackInput: "word",
63
+ input: "none",
64
+ keyEquivalent: "^F",
65
+ name: "Find",
66
+ output: "discard",
67
+ scope: "text.gtdalt",
68
+ uuid: "255E029C-7B95-49F2-B7AC-0FAB4F7FBA58"},
69
+ {beforeRunningCommand: "nop",
70
+ command:
71
+ "#!/usr/bin/env ruby\ntext = STDIN.read\nlines = text.split(\"\\n\")\nrow = ENV['TM_LINE_NUMBER'].to_i\nm = lines[row-1].scan(/^\\[\\d+\\]/)[0]\ntxt = text.slice(0..text.index(m))\nlines = txt.split(\"\\n\")\nline = lines.length\nlast_line = lines.last\ncolumn = last_line.scan(/^\\s*@[^\\s]+\\s+/)[0].length + 1\n`open \"txmt://open?line=\#{line}&column=\#{column}\"`\n",
72
+ fallbackInput: "document",
73
+ input: "document",
74
+ keyEquivalent: "^{",
75
+ name: "Go to Action",
76
+ output: "discard",
77
+ scope: "text.gtdalt meta.note",
78
+ uuid: "14CE2968-B4F4-4AB5-8A26-5F0EC156E1D0"},
79
+ {beforeRunningCommand: "nop",
80
+ command:
81
+ "#!/usr/bin/env ruby\nrequire ENV['TM_SUPPORT_PATH'] + \"/lib/exit_codes.rb\"\nrequire ENV['TM_SUPPORT_PATH'] + \"/lib/escape.rb\"\ntext = STDIN.read\nlines = text.split(\"\\n\")\nrow = ENV['TM_LINE_NUMBER'].to_i\ncol = ENV['TM_LINE_INDEX'].to_i\ncurrentLine = lines[row-1]\nfound = currentLine.scan(/\\[\\d+\\]/)[0]\nif found then\n# No need to change the file at all in this case. Just locate the proper \n# line and use the txmt scheme to take us there.\n txt = text.slice(0..text.rindex(found)+found.length)\n lines = txt.split(\"\\n\")\n line = lines.length\n column = lines.last.length + 1\n `open \"txmt://open?line=\#{line}&column=\#{column}\"`\n TextMate.exit_discard \n # print text.insert(text.rindex(found)+found.length + 1,\"$0\")\nelse\n m = text.scan(/\\[(\\d+)\\]/).map{|i| i[0].to_i}.max || 0\n before = []\n (row-1).times do before << lines.shift end\n # cl = lines.shift\n if lines[0] =~ /(?:due|at|from):/ then\n before << lines[0].slice!(/^.*(?=\\s(?:due|at|from):)/)\n else\n before << lines.shift\n lines.unshift(\"\")\n end\n print e_sn(before.join(\"\\n\") + \" [\#{m+1}]\" + lines.join(\"\\n\")) + \"\\n[\#{m+1}] $0\"\nend",
82
+ fallbackInput: "document",
83
+ input: "selection",
84
+ keyEquivalent: "^{",
85
+ name: "Go to Note",
86
+ output: "insertAsSnippet",
87
+ scope: "text.gtdalt - meta.note",
88
+ uuid: "BF20459A-D83B-4821-A68D-06F3D885309C"},
89
+ {beforeRunningCommand: "saveActiveFile",
90
+ command:
91
+ "#!/usr/bin/env ruby\nrequire ENV['TM_BUNDLE_SUPPORT'] + '/lib/GTD.rb'\nrequire ENV['TM_SUPPORT_PATH'] + '/lib/ui.rb'\ninclude GTD\nfiles = GTD.process_directory\nprojects = files.map{|i| i.projects}.flatten\nprojectNames = projects.map{|i| i.name+\" : \"+i.root.name}\nrequire 'pp'\nchoice = TextMate::UI.menu(projectNames)\nif choice then\n\tprojectName = projectNames[choice]\n project = projects.find{|i| i.name+\" : \"+i.root.name == projectName}\nputs project.txmt\n `open \"\#{project.txmt}\"`\nend",
92
+ fallbackInput: "word",
93
+ input: "none",
94
+ keyEquivalent: "^G",
95
+ name: "Go to Project",
96
+ output: "discard",
97
+ scope: "text.gtdalt",
98
+ uuid: "A54CF0C9-ECBF-4A20-B345-3EA167ABD6A0"},
99
+ {beforeRunningCommand: "nop",
100
+ bundleUUID: "30FA6EB3-2180-46F8-B2DD-EDA6B443CBB6",
101
+ command:
102
+ ". \"$TM_SUPPORT_PATH/lib/webpreview.sh\"\nhtml_header \"GTDalt Help\" \"Getting Things Done (alternative)\"\nMarkdown.pl \"$TM_BUNDLE_SUPPORT/README.txt\"\nhtml_footer",
103
+ fallbackInput: "word",
104
+ input: "none",
105
+ name: "Help",
106
+ output: "showAsHTML",
107
+ scope: "text.gtdalt",
108
+ uuid: "8E083C6C-9C1A-4AD9-AA39-3BCABF925B73"},
109
+ {beforeRunningCommand: "nop",
110
+ command:
111
+ "#!/usr/bin/env ruby\nrequire 'date'\nlines = STDIN.readlines\nfor line in lines\n if line =~ /^(#completed:)(\\[\\d{4}-\\d{2}-\\d{2}\\])(.*)/ then\n \tprint $3\n elsif line =~ /^\\s*@/\n\tprint \"#completed:[\#{Date.today}]\#{line}\"\n else\n\tprint line\n end\nend\n",
112
+ fallbackInput: "line",
113
+ input: "selection",
114
+ keyEquivalent: "@/",
115
+ name: "Mark as Complete",
116
+ output: "replaceSelectedText",
117
+ scope: "text.gtdalt",
118
+ uuid: "A9C04B17-6A04-4D4D-81ED-2F4EFCD61FA3"},
119
+ {beforeRunningCommand: "nop",
120
+ command:
121
+ "#!/usr/bin/env ruby\nrequire ENV['TM_BUNDLE_SUPPORT'] + '/lib/GTDUtils.rb'\nrequire ENV['TM_SUPPORT_PATH'] + '/lib/ui.rb'\ncontextList = GTDContexts.contexts\nchoice = TextMate::UI.menu(contextList)\nif choice then\n print \"@\#{contextList[choice]} \"\nelse\nrequire ENV['TM_SUPPORT_PATH'] + '/lib/exit_codes.rb'\n TextMate.exit_discard\nend\n",
122
+ input: "none",
123
+ keyEquivalent: "@",
124
+ name: "New",
125
+ output: "afterSelectedText",
126
+ scope: "text.gtdalt - meta.action - meta.line.project - meta.note",
127
+ uuid: "BBA04431-8960-4017-A684-7FBACB0F7FFF"},
128
+ {beforeRunningCommand: "nop",
129
+ command:
130
+ "#!/usr/bin/env ruby\nline = ENV['TM_CURRENT_LINE']\nrequire ENV['TM_SUPPORT_PATH'] + \"/lib/escape.rb\"\nmatch = line.match('(\\s*@\\S+)')\nprint \"\#{e_sn line}\\n\#{e_sn match[1]} $0\"\n",
131
+ fallbackInput: "line",
132
+ input: "selection",
133
+ keyEquivalent: "$",
134
+ name: "New With Same Context",
135
+ output: "insertAsSnippet",
136
+ scope: "text.gtdalt meta.action",
137
+ uuid: "65FAC309-42DC-4C48-AC0D-BC7AA5864C71"},
138
+ {beforeRunningCommand: "nop",
139
+ command:
140
+ "#!/usr/bin/env ruby\nlinks = STDIN.read.scan(/<([^>]*)>/)\nlinks.each do |link|\n `open \"\#{link}\"`\nend",
141
+ fallbackInput: "line",
142
+ input: "selection",
143
+ keyEquivalent: "^l",
144
+ name: "Open Links in Line",
145
+ output: "discard",
146
+ scope: "text.gtdalt",
147
+ uuid: "65E842B0-D1A6-40E7-91C0-3215930AC0EA"},
148
+ {beforeRunningCommand: "nop",
149
+ bundleUUID: "30FA6EB3-2180-46F8-B2DD-EDA6B443CBB6",
150
+ command:
151
+ "#!/usr/bin/env ruby\nrequire 'date'\n$: << ENV['TM_BUNDLE_SUPPORT']\nrequire \"lib/GTD.rb\"\ninclude GTD\n\nobjects = GTD.process_directory\ngtdacts = objects.map{|o| o.actions}.flatten\ngtdprojects = objects.map{|o| o.projects}.flatten\n\nclass LogProject\n def initialize(date,name)\n @date = date\n @name = name\n end\n def getprojects\n return @name\n end\nend\n\nclass LogAction\n def initialize(date,project,context,name)\n @date = date\n @project = project\n @context = context\n @name = name\n end\n def getcontexts\n return @context\n end\n def getprojects\n return @project\n end\nend\n\nacts = Array.new\nprojects = Array.new\n\ntoday = Date.today\nreview = today - 7\n\nlogfile = File.join(GTD.get_gtd_directory,\"GTD.gtdlog\")\nif File.exists?(logfile) then\n log = File.open(logfile)\nelse\n puts \"Log file \#{logfile} not found. Review requires this file. You should run the Clean Current File command to generate a log file.\"\n exit\nend\n\nlog.readlines.each { |line|\n if line =~ /^\\/(.*)\\/(.*)(\\/@(\\S+))?/ then\n logdate = Date.strptime($1, '%Y-%m-%d')\n if logdate >= review then\n project = $2\n if line =~ /^\\/(.*)\\/(.*)\\/@(\\S+)\\s(.*)$/\n logact = LogAction.new($1.to_s,$2.to_s,$3.to_s,$4.to_s)\n acts << logact\n else\n # logproj = LogProject.new(logdate.to_s,project)\n projects << LogProject.new(logdate.to_s,project)\n end\n end\n end\n}\n\npr = Printer.new\nb = <<HTML\n<html>\n <head>\n <link rel=\"stylesheet\" href=\"tm-file://\#{ENV['TM_SUPPORT_PATH']}/css/default.css\" type=\"text/css\" media=\"screen\" title=\"no title\" charset=\"utf-8\" />\n <style type=\"text/css\">\n .nobr {white-space: nowrap}\n </style>\n </head>\n <body>\n <h1>GTD Review (\#{review} - \#{Date.today})</h1>\nHTML\ne = <<HTML\n </body>\n</html>\nHTML\npr.raw b\n\n\npComplete = Array.new\nprojects.each {|p| pComplete << p.getprojects }\nif not pComplete.empty? then\n pComplete = pComplete.uniq.sort\n pr.raw \"<h2>Projects completed</h2><ul>\"\n pComplete.each {|p| \n pr.raw \"<li>\#{p}\"\n }\n pr.raw \"</ul>\"\nend\n\nif not acts.empty? then\n pUsed = Array.new\n acts.each {|p| pUsed << p.getprojects }\n pUsed = pUsed.uniq.sort\n diffarray = Array.new\n gtdprojects.each{|p| diffarray << p.name }\n projectsDiff = diffarray - pUsed\n projectsDiff = projectsDiff.uniq.sort\n if not projectsDiff.empty? then\n pr.raw \"<h2>Projects not acted on</h2>\"\n pr.table do\n pr.headers([ \"Project\", \"Next Action\", \"Context\", \"Due by\", \"Completed\"])\n projectsDiff.each{|p| \n project = gtdprojects.find{|i| i.name == p}\n\t if project.next_action then\n if project.next_action.note then\n text = \"\#{project.next_action.link} / \#{project.next_action.note}\"\n else\n text = project.next_action.link\n end\n due = case project.next_action.due\n when \"\",nil\n \"\"\n when DateLate\n \"<span style=\\\"color:red\\\">\#{project.next_action.due}</span>\"\n else\n project.next_action.due\n end\n pr.row([project.link, text, \"<span class=\\\"nobr\\\">\#{project.next_action.context}</span>\", \"<span class=\\\"nobr\\\">\#{due}</span>\", project.next_action.mark_completed_link])\n end\n }\n end # pr.table\n end\nelse # if acts is empty\n pr.raw \"<h2>No logged activity to report</h2>\"\nend\n \npr.raw \"<h2>Dated Actions</h2>\"\npr.table do\n pr.headers([ \"Context\", \"Action\", \"Project\", \"Due by\", \"Completed\"])\n gtdacts.delete_if {|a| a.due == nil }\n gtdacts.sort{|a,b| a.due <=> b.due}.each do |a|\n proj = if a.project != nil then a.project.link else \"none\" end\n if a.due != nil then\n due = case a.due\n when \"\",nil\n \"\"\n when DateLate\n \"<span style=\\\"color:red\\\">\#{a.due}</span>\"\n else\n a.due\n end\n text = \"<a href=\\\"\#{a.txmt}\\\">\#{a.name}</a>\"\n pr.row([a.context, text, proj , \"<span class=\\\"nobr\\\">\#{due}</span>\", a.mark_completed_link])\n end\n end\nend\n\npr.raw e\nputs pr.to_html",
152
+ input: "selection",
153
+ keyEquivalent: "^~@-",
154
+ name: "Past Activity",
155
+ output: "showAsHTML",
156
+ scope: "text.gtdalt",
157
+ uuid: "BB5DCAEF-2D31-47BC-B4D5-C221F026B2F3"},
158
+ {beforeRunningCommand: "nop",
159
+ command:
160
+ "#### NOT VERY MUCH TESTED ####\n#### USE WITH CARE ####\n\"$TM_BUNDLE_SUPPORT/bin/process_inbox.rb\"\n",
161
+ fallbackInput: "word",
162
+ input: "none",
163
+ keyEquivalent: "^~@=",
164
+ name: "Process Actions From Inbox File",
165
+ output: "openAsNewDocument",
166
+ scope: "text.gtdalt",
167
+ uuid: "FCAAFD28-1765-4618-851D-20AA52499F77"},
168
+ {beforeRunningCommand: "nop",
169
+ command:
170
+ "#!/usr/bin/env ruby\n$:<< ENV['TM_BUNDLE_SUPPORT'] << ENV['TM_SUPPORT_PATH']\nrequire \"lib/GTD.rb\"\nrequire \"lib/ui\"\ninclude GTD\nGTD.process_directory\nprojects = GTD.projects.find_all{|proj| !proj.completed?}\npr = Printer.new\nb = <<HTML\n<html>\n <head>\n <link rel=\"stylesheet\" href=\"tm-file://\#{ENV['TM_SUPPORT_PATH']}/css/default.css\" type=\"text/css\" media=\"screen\" title=\"no title\" charset=\"utf-8\" />\n </head>\n <body>\nHTML\ne = <<HTML\n </body>\n</html>\nHTML\npr.raw b\npr.table do\n pr.title \"List of all incomplete Projects\"\n pr.headers([ \"Project\", \"Items\", \"Next Action\"])\n projects.each do |project|\n pr.row([project.link,\n project.flatten.reject{|i| i.completed? }.length-1,\n project.next_action.link])\n end\nend\npr.raw e\nputs pr.to_html",
171
+ fallbackInput: "line",
172
+ input: "none",
173
+ keyEquivalent: "^~@p",
174
+ name: "Project Statistics",
175
+ output: "showAsHTML",
176
+ scope: "text.gtdalt",
177
+ uuid: "BF7C70D8-A0D9-44A3-9CB4-8D99372E68B6"},
178
+ {beforeRunningCommand: "nop",
179
+ command:
180
+ "#!/usr/bin/env ruby\ndialog = ENV['TM_SUPPORT_PATH'] + '/bin/tm_dialog'\nrequire ENV['TM_SUPPORT_PATH'] + '/lib/osx/plist'\nrequire ENV['TM_SUPPORT_PATH'] + '/lib/escape'\nrequire ENV['TM_SUPPORT_PATH'] + '/lib/exit_codes'\nrequire 'date'\nline = STDIN.read\nif line =~ / (at|due|from):\\[(\\d{4})-(\\d{2})-(\\d{2})\\]$/\nabsoluteYear, absoluteMonth, absoluteDay = $2.to_i, $3.to_i, $4.to_i\nweekdayDay = 0\ndate = Date.new(absoluteYear,absoluteMonth,absoluteDay)\nelse\n date = Date.today\n absoluteYear, absoluteMonth, absoluteDay = date.year, date.month, date.day\n weekdayDay = date.wday\nend\ntod = Date.today\ndef to_cocoa_date(date)\n ((date - Date.new(2001, 1, 1)+1)* 3600 * 24).to_i\nend\ndef from_cocoa_date(number)\n Date.new(2001,1,1)+number.to_i/(3600 * 24) - 1\nend\ndef myformat(date)\n date.strftime(\"%A, %m/%d/%Y\")\nend\nplist = { \n 'currentDeadline' => \"Current value: \" + myformat(date),\n 'daysFromToday' => \"Current value: \" + (date - tod).to_s,\n 'newDeadlineDate' => to_cocoa_date(date),\n 'newDaysFromToday' => (date - tod).to_i,\n 'today' => \"Today is \" + myformat(tod)\n}.to_plist\nstr = `\#{e_sh dialog} datePicker -mp \#{e_sh plist}`\nres=OSX::PropertyList.load(str)\nif res['returnButton'].to_s != \"OK\" then\n newDate = nil\nelse\n newDate = res['newDeadlineDate'].to_s\n if newDate =~ /^[\\d\\+\\-*]+$/\n newDate = (tod + eval(res['newDaysFromToday'].to_s).to_i)\n else\n newDate =~ /^\\w{3} (\\w{3}) (\\d{2}) \\d{2}:\\d{2}:\\d{2} \\w{3} (\\d{4})/\n newDate = Date.new($3.to_i,Date::ABBR_MONTHNAMES.index($1),$2.to_i)-1\n end\nend\n#puts res['newDeadlineDate']/(3600*24)\n#pp from_cocoa_date(res['newDeadlineDate']).to_s\nif newDate.nil?\n TextMate.exit_discard\nelse\n print e_sn(line).gsub(/ (at|due|from):\\[\\d{4}-\\d{2}-\\d{2}\\]$/,\"\") + \" \#{if $1 && $1 != \"\" then $1 else \"\\$0due\" end}:[\#{newDate}]\"\nend\n",
181
+ fallbackInput: "line",
182
+ input: "selection",
183
+ keyEquivalent: "#",
184
+ name: "Set Date",
185
+ output: "insertAsSnippet",
186
+ scope: "text.gtdalt meta.action",
187
+ uuid: "7FBD47E6-F919-45C0-956C-3996106E0C49"},
188
+ {beforeRunningCommand: "nop",
189
+ command:
190
+ "#!/usr/bin/env ruby\nlines = STDIN.readlines\nrow = ENV['TM_LINE_NUMBER'].to_i\ncurrentLine = lines[row-1]\nfound = currentLine[/\\[\\d+\\]/]\nif found then\n note = lines.find{ |line| line[/^\\[\\d+\\]/] == found }\n note.slice!(/^\\[\\d+\\]\\s+/)\n print note\nelse\n print \"This action does not have a note.\"\nend",
191
+ fallbackInput: "document",
192
+ input: "document",
193
+ keyEquivalent: "^?",
194
+ name: "Show Note as Tool Tip",
195
+ output: "showAsTooltip",
196
+ scope: "text.gtdalt meta.action",
197
+ uuid: "3BF349AD-3452-4CA4-AAA7-8836565E3A5F"},
198
+ {beforeRunningCommand: "nop",
199
+ command:
200
+ "#!/usr/bin/env ruby\nrequire ENV['TM_SUPPORT_PATH']+\"/lib/progress.rb\"\nTextMate.call_with_progress(:title=> \"Synchronizing with iCal\" , :message =>\"This may take a while...\") {\n#`osascript \"$TM_BUNDLE_SUPPORT/bin/gtdalt_ical_synchronization.applescript\"`\n\n`osascript \"$TM_BUNDLE_SUPPORT/bin/gtdalt_ical_synchronization.scpt\"`\n}",
201
+ input: "none",
202
+ keyEquivalent: "^~@i",
203
+ name: "Synchronize with iCal",
204
+ output: "discard",
205
+ scope: "text.gtdalt",
206
+ uuid: "EB99AA83-E73B-42F6-88E1-6F8AB29F9BFD"},
207
+ {beforeRunningCommand: "saveActiveFile",
208
+ command:
209
+ "#!/usr/bin/env ruby\nlines = STDIN.read.gsub(/\\$/,\"\\\\$\").split(\"\\n\")\ncurrentTab = lines[0].scan(/^\\s*/)[0]\nunless ENV['TM_SOFT_TABS'] == \"YES\" then\n\textraTab = \"\\t\"\nelse\n\textraTab = (\" \" * ENV['TM_TAB_SIZE'].to_i)\nend\nprint lines.map{|i| extraTab + i}.unshift(currentTab + \"project $0\").push(currentTab + \"end\").join(\"\\n\") + \"\\n\"",
210
+ fallbackInput: "line",
211
+ input: "selection",
212
+ keyEquivalent: "^W",
213
+ name: "With Selection",
214
+ output: "insertAsSnippet",
215
+ scope: "text.gtdalt",
216
+ uuid: "253F6CF9-0E14-48C8-8468-005018E4E301"},
217
+ {beforeRunningCommand: "saveActiveFile",
218
+ command:
219
+ "#!/usr/bin/env ruby\nrequire ENV['TM_BUNDLE_SUPPORT']+\"/lib/GTD.rb\"\ninclude GTD\nfile = ENV['TM_FILEPATH']\nobj = GTDFile.new(file)\nobj.cleanup_projects\nlog = File.open(File.join(File.dirname(file),\"GTD.gtdlog\"),\"a\")\n\tlog.write MyLogger.dump + \"\\n\"\nlog.close\nputs obj.dump_object",
220
+ input: "none",
221
+ keyEquivalent: "*",
222
+ name: "clean completed tasks",
223
+ output: "replaceDocument",
224
+ scope: "text.gtdalt",
225
+ uuid: "7118880F-C5BA-4359-87A1-480FB61E416B"}]
@@ -0,0 +1,41 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "nop",
4
+ command:
5
+ "mkdir -p ~/Library/LaunchAgents/\n\ncd ~/Library/Application\\ Support/TextMate/Support\nif [[ $? == 0 ]];\nthen\n svn up . --no-auth-cache --non-interactive\nelse\n mkdir ~/Library/Application\\ Support/TextMate/Support\n svn co http://macromates.com/svn/Bundles/trunk/Support/ ~/Library/Application\\ Support/TextMate/Support --no-auth-cache --non-interactive\nfi\n\n$(cat <<EOF > ~/Library/LaunchAgents/com.macromates.textmate.bundleupdate.plist\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN\nhttp://www.apple.com/DTDs/PropertyList-1.0.dtd >\n<plist version=\"1.0\">\n<dict>\n <key>Label</key>\n <string>com.macromates.textmate.bundleupdate</string>\n\t <key>Program</key>\n\t <string>$TM_BUNDLE_SUPPORT/bin/autoupdate.sh</string>\n\t <key>RunAtLoad</key>\n\t <true/>\n\t <key>StartCalendarInterval</key>\n\t <dict> \n\t \t<key>Hour</key>\n\t \t<integer>12</integer>\n\t \t<key>Minute</key>\n\t \t<integer>15</integer>\n\t </dict>\n</dict>\n</plist>\n)\n\n{ launchctl load ~/Library/LaunchAgents/com.macromates.textmate.bundleupdate.plist } &>/dev/console &\n",
6
+ input: "none",
7
+ name: "Install AutoUpdater",
8
+ output: "discard",
9
+ uuid: "A952F27C-2200-4C2C-ABC9-69BD36FF76DF"},
10
+ {command:
11
+ "\nPTRN=$(ruby -rtextmate -e 'print Dir.entries(TextMate.app_path + \"/Contents/SharedSupport/Bundles\").grep(/.tmbundle$/).join(\"|\")')\nINST=$(ruby -rtextmate -e 'print Dir.entries( File.expand_path(\"~/Library/Application Support/TextMate/Pristine Copy/Bundles\")).grep(/.tmbundle$/).join(\"|\")')\n\nSVN=\"${TM_BUNDLE_SUPPORT}/bin/svn\"\n\nREV=$(< \"$TM_SUPPORT_PATH/version\")\nSVN_OPTS=\"-r$REV --no-auth-cache --non-interactive\"\n\nBASE_URL=http://macromates.com/svn/Bundles/trunk/\n\nbundlelist (){ \n eval '\"$SVN\"' list \"$SVN_OPTS\" '\"${BASE_URL}/Bundles/\"' \\\n | egrep -v \"^($PTRN|$INST)/\\$\" \\\n | egrep -v \"^GetBundle\\.tmbundle\" \\\n | sed -ne 's/.tmbundle\\/$//p' \\\n | sort -f \\\n 3> >(CocoaDialog progressbar --indeterminate --title 'Getting Bundle List' --text 'This could take a while...')\n}\nIFS=$'\\n' \nbundle=$(CocoaDialog dropdown \\\n --title 'Choose a Bundle' \\\n --text 'Select from list:' \\\n --button1 Install --button2 Cancel \\\n --string-output --no-newline \\\n --items $(bundlelist))\n\nif [[ \"${bundle:0:7}\" == \"Install\" ]];\n then bu=${bundle:8}\n else exit_discard\nfi\n\nmkdir -p ~/Library/Application\\ Support/TextMate/Pristine\\ Copy/Bundles\ncd ~/Library/Application\\ Support/TextMate/Pristine\\ Copy/Bundles\n\neval '\"$SVN\"' co \"$SVN_OPTS\" '\"${BASE_URL}/Bundles/${bu}.tmbundle\"' \\\n 2> >(CocoaDialog progressbar --indeterminate --title \"Installing Bundle: ${bu}\" --text 'This could take a while...')\n\nif [[ $? == 0 ]]; then\n osascript -e 'tell app \"TextMate\" to reload bundles'\n \"${TM_RUBY:-ruby}\" -wKU \"$TM_BUNDLE_SUPPORT/notify.rb\" installed \"${bu}\"\nfi\n",
12
+ input: "none",
13
+ name: "Install Bundle",
14
+ output: "discard",
15
+ uuid: "19B3B518-4B71-4AD6-BC0B-7B5477ABD2D9"},
16
+ {beforeRunningCommand: "nop",
17
+ command:
18
+ ". \"$TM_SUPPORT_PATH/lib/webpreview.sh\"\nhtml_header \"Installed Bundles\" \"GetBundle\"\nrequire_cmd svnversion\n\ncat <<'HTML'\n <table class=\"pro_table\" cellspacing=\"0\" cellpadding=\"5\">\n <tr><th>Bundle Name</th><th>Revision</th></tr>\nHTML\n\ncd ~/Library/Application\\ Support/TextMate/Pristine\\ Copy/Bundles\nfor f in *.tmbundle; do\n echo \"<tr><td>${f%.tmbundle}</td><td>\"\n svnversion \"$f\"\n echo \"</td></tr>\"\ndone\n\ncat <<'HTML'\n </table>\nHTML\nhtml_footer\n",
19
+ input: "none",
20
+ name: "List Installed Bundles",
21
+ output: "showAsHTML",
22
+ uuid: "FBA5B6EB-2516-4940-9C8B-70645917F8BB"},
23
+ {beforeRunningCommand: "nop",
24
+ command:
25
+ "JOB=com.macromates.textmate.bundleupdate\nTASK=~/Library/LaunchAgents/$JOB.plist\n\nif [[ -f \"$TASK\" ]]; then\n launchctl stop \"$JOB\"\n launchctl unload \"$TASK\"\n rm \"$TASK\"\n echo \"Auto updater uninstalled.\"\nelse\n echo \"Nothing to uninstall.\"\nfi",
26
+ input: "none",
27
+ name: "Remove AutoUpdater",
28
+ output: "showAsTooltip",
29
+ uuid: "E11461A2-B186-4278-9CB9-95AAC8D9D7C0"},
30
+ {beforeRunningCommand: "nop",
31
+ command:
32
+ "\"${TM_RUBY:-ruby}\" -wKU \"$TM_BUNDLE_SUPPORT/show_bundles.rb\" &>/dev/null &",
33
+ input: "none",
34
+ name: "Show Bundles on Repository",
35
+ output: "showAsTooltip",
36
+ uuid: "8C7398D7-1BC2-4F4D-9BA9-AE1520D764AD"},
37
+ {command:
38
+ "\nSVN=\"${TM_BUNDLE_SUPPORT}/bin/svn\"\n\nREV=$(< \"$TM_SUPPORT_PATH/version\")\nSVN_OPTS=\"-r$REV --no-auth-cache --non-interactive\"\n\ncd ~/Library/Application\\ Support/TextMate/Pristine\\ Copy/Bundles\nif [[ $? == 0 ]]; then \n for f in *.tmbundle; do \"$SVN\" up $SVN_OPTS \"$f\"; done \\\n 2> >(CocoaDialog progressbar --indeterminate --title 'Updating all your Bundles' --text 'This could take a while...')\n\n osascript -e 'tell app \"TextMate\" to reload bundles'\n \"${TM_RUBY:-ruby}\" -wKU \"$TM_BUNDLE_SUPPORT/notify.rb\" updated\nelse\n \"${TM_RUBY:-ruby}\" -wKU \"$TM_BUNDLE_SUPPORT/notify.rb\" update_failed\nfi\n",
39
+ name: "Update Installed Bundles",
40
+ output: "discard",
41
+ uuid: "667B3ED4-CA2B-402D-9445-904798AE1AA0"}]