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,47 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "nop",
4
+ command:
5
+ "require_cmd dsss\n\n. \"$TM_SUPPORT_PATH/lib/webpreview.sh\"\nhtml_header \"${TM_FILENAME}\"\n\ncd \"$TM_PROJECT_DIRECTORY\"\n\necho '<h2>Building...</h2>'\n\ndsss build 2>&1 | grep -v 'indirect jmp without' | grep -vE 'Default prefix .+ is unwritable, using .+ instead' | pre\n\nhtml_footer\n",
6
+ input: "none",
7
+ keyEquivalent: "@b",
8
+ name: "Build",
9
+ output: "showAsHTML",
10
+ scope: "source.d",
11
+ uuid: "BB84553C-7D75-4D17-9E49-FADADC13F187"},
12
+ {beforeRunningCommand: "nop",
13
+ command:
14
+ "require_cmd dsss\ndsss build \"$TM_FILEPATH\" 2>&1 | grep -v 'indirect jmp without' | grep -vE 'Default prefix .+ is unwritable, using .+ instead' | pre",
15
+ input: "none",
16
+ keyEquivalent: "~@b",
17
+ name: "Build Current File",
18
+ output: "showAsHTML",
19
+ scope: "source.d",
20
+ uuid: "49187E65-D29E-4E5F-8DAD-2C0FDEB0AA5F"},
21
+ {beforeRunningCommand: "nop",
22
+ command: "require_cmd dsss\ndsss clean \"$TM_DIRECTORY\" | pre",
23
+ input: "none",
24
+ keyEquivalent: "^~@c",
25
+ name: "Clean",
26
+ output: "showAsHTML",
27
+ scope: "source.d",
28
+ uuid: "6CBFA0E9-56C7-4B65-9358-8B7732F1E7C5"},
29
+ {beforeRunningCommand: "saveActiveFile",
30
+ command:
31
+ ". \"$TM_SUPPORT_PATH/lib/webpreview.sh\"\nhtml_header \"${TM_FILENAME}\"\n\ncd \"$TM_DIRECTORY\"\n\necho '<h2>Compiling...</h2>'\n\nOUT=$(gdmd -debug -unittest -gc -od$TMPDIR \"$TM_FILENAME\" 2>&1)\n\nif [ $? -eq 0 ] ; then\n echo $OUT | grep -v 'indirect jmp without'\n echo '<h2>Running...</h2>'\n BIN=\"$(echo \"$TM_FILENAME\"|sed 's/\\.d$//g')\"\n ./\"$BIN\" | pre\n rm -f $BIN\nelse\n echo $OUT | grep -v 'indirect jmp without' | pre\nfi\n\nhtml_footer\n",
32
+ input: "none",
33
+ keyEquivalent: "@r",
34
+ name: "Compile & Run Single File",
35
+ output: "showAsHTML",
36
+ scope: "source.d",
37
+ uuid: "CC26BACA-2BA5-4179-A05E-DB80360440E6"},
38
+ {beforeRunningCommand: "nop",
39
+ command:
40
+ "#!/usr/bin/env ruby -wKU\n\nrequire \"\#{ENV['TM_SUPPORT_PATH']}/lib/exit_codes\"\nrequire \"\#{ENV['TM_SUPPORT_PATH']}/lib/escape\"\n\nmethod_name = ENV[\"TM_SELECTED_TEXT\"] || ENV[\"TM_CURRENT_WORD\"] or\n TextMate.exit_show_tool_tip(\n \"Please type the new function's name or use the me⇥ snippet.\"\n )\n\nprint <<END_SNIPPET\nvoid \#{e_sn method_name}(\\${1:args}) {\n\t\\$0\n}\nEND_SNIPPET\n",
41
+ fallbackInput: "word",
42
+ input: "selection",
43
+ keyEquivalent: "$\n",
44
+ name: "New Method",
45
+ output: "insertAsSnippet",
46
+ scope: "source.d",
47
+ uuid: "7EB57A38-809C-464D-8025-CE990B100488"}]
@@ -0,0 +1,72 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "nop",
4
+ command:
5
+ "cd \"$TM_DIRECTORY\"\n\nif [[ -z $TM_SELECTED_FILES ]]; then\n\tDARCSPaths=`echo \\'$TM_FILEPATH\\'`;\nelse\n\tDARCSPaths=\"$TM_SELECTED_FILES\";\nfi\nexport DARCSPaths\n\n\"${TM_RUBY:=ruby}\" <<'EOF'\nrequire 'pathname'\n\nbasedir = Pathname.new(ENV['TM_DIRECTORY']).realpath()\naddlist = Array.new()\nENV['DARCSPaths'].split(/' '/).each() { |addfile|\n addfile = addfile[/^'?(.*?)'?$/, 1]\n addlist << \"'\#{Pathname.new(addfile).realpath.relative_path_from(basedir).to_s.gsub(/(')/, \"\\\\\\1\")}'\"\n}\noutput = `darcs add -v -r \#{addlist.join(' ')}`\nputs(output)",
6
+ input: "none",
7
+ keyEquivalent: "^Z",
8
+ name: "Add File(s) to Repository",
9
+ output: "showAsTooltip",
10
+ uuid: "81229AD0-DE5C-11D9-823F-000A95A51A76"},
11
+ {beforeRunningCommand: "nop",
12
+ command:
13
+ "cd \"${TM_PROJECT_DIRECTORY:=$TM_DIRECTORY}\";\n\n\"${TM_RUBY:=ruby}\" <<'EOF'\nrequire 'rexml/document'\nrequire 'time'\n\nputs(\"<html>\")\nputs(\"<head>\")\nputs(\" <style type=\\\"text/css\\\">\")\nputs(\" html {\")\nputs(\" font-size: small;\")\nputs(\" }\")\nputs(\" body {\")\nputs(\" border: 0px;\")\nputs(\" margin: 0px;\")\nputs(\" }\")\nputs(\" .chunk {\")\nputs(\" padding: 7px;\")\nputs(\" }\")\nputs(\" </style>\")\nputs(\"</head>\")\nputs(\"<body>\")\noutput = `darcs changes --xml`\nxmldoc = REXML::Document.new(output)\ncount = 0\nxmldoc.root.each_element('patch') { |patch|\n print(\"<div class=\\\"chunk\\\" \")\n if(count % 2 == 0)\n print(\"style=\\\"background-color: white\\\"\")\n else\n print(\"style=\\\"background-color: lightblue\\\"\")\n end\n print(\"><tt style=\\\"color: gray\\\">\#{Time.parse(patch.attributes['local_date']).strftime(\"%m/%d/%y %I:%M %p\").downcase()}, \#{patch.attributes['author']}</tt><br/> \#{patch.elements['name'].text()}<br/>\")\n print(\"</div>\")\n count = count + 1\n}\nputs(\"</body>\")\nputs(\"</html>\")",
14
+ input: "none",
15
+ keyEquivalent: "^Z",
16
+ name: "Changes",
17
+ output: "showAsHTML",
18
+ uuid: "5CEA8FE0-E28A-11D9-9477-000A95A51A76"},
19
+ {beforeRunningCommand: "nop",
20
+ command:
21
+ "cd \"$TM_DIRECTORY\"\necho \"Index: changes in working copy of $TM_FILENAME\"\ndarcs whatsnew -u \"$TM_FILENAME\"\n",
22
+ input: "none",
23
+ keyEquivalent: "^Z",
24
+ name: "Diff",
25
+ output: "openAsNewDocument",
26
+ uuid: "627E8652-2B23-4E68-ADF9-103BA2B16074"},
27
+ {beforeRunningCommand: "saveModifiedFiles",
28
+ command: "cd \"${TM_PROJECT_DIRECTORY:=$TM_DIRECTORY}\"\n\ndarcs pull -a",
29
+ input: "none",
30
+ keyEquivalent: "^Z",
31
+ name: "Pull From Default Repository",
32
+ output: "showAsTooltip",
33
+ uuid: "242ECD6E-DE5D-11D9-823F-000A95A51A76"},
34
+ {beforeRunningCommand: "nop",
35
+ command: "cd \"${TM_PROJECT_DIRECTORY:=$TM_DIRECTORY}\"\n\ndarcs push -a ",
36
+ input: "none",
37
+ keyEquivalent: "^Z",
38
+ name: "Push to Default Repository",
39
+ output: "showAsTooltip",
40
+ uuid: "B2B2A814-DE60-11D9-823F-000A95A51A76"},
41
+ {beforeRunningCommand: "saveModifiedFiles",
42
+ command:
43
+ "cd \"${TM_PROJECT_DIRECTORY:=$TM_DIRECTORY}\";\n\n\"${TM_RUBY:=ruby}\" <<'RUBY'\n\nrequire \"\#{ENV['TM_SUPPORT_PATH']}/lib/exit_codes.rb\"\nrequire \"\#{ENV['TM_SUPPORT_PATH']}/lib/ui.rb\"\n\noutput = TextMate::UI.request_string(\n :title => 'Input', \n :prompt => 'Record Message',\n :button1 => 'Record'\n)\n\nTextMate.exit_discard if output.nil?\n\noutput = `darcs record -a -m '\#{output.strip.gsub(/(')/, '\\\\\\\\1')}'`\n\nputs(output)\n\nRUBY",
44
+ input: "none",
45
+ keyEquivalent: "^Z",
46
+ name: "Record All",
47
+ output: "showAsTooltip",
48
+ uuid: "1C9B5F32-759D-4B3E-BA91-A83897C48026"},
49
+ {beforeRunningCommand: "saveActiveFile",
50
+ command:
51
+ "cd \"$TM_DIRECTORY\";\n\n\"${TM_RUBY:=ruby}\" <<'RUBY'\n\nrequire \"\#{ENV['TM_SUPPORT_PATH']}/lib/exit_codes.rb\"\nrequire \"\#{ENV['TM_SUPPORT_PATH']}/lib/ui.rb\"\n\noutput = TextMate::UI.request_string(\n :title => 'Input', \n :prompt => 'Record Message',\n :button1 => 'Record'\n)\n\nTextMate.exit_discard if output.nil?\n\noutput = `darcs record -a -m '\#{output.strip.gsub(/'/, '\\\\\\\\1')}' '\#{File.basename(ENV['TM_FILEPATH']).gsub(/(')/, '\\\\\\\\1')}'`\n\nputs(output)\n\nRUBY\n",
52
+ input: "none",
53
+ keyEquivalent: "^Z",
54
+ name: "Record File",
55
+ output: "showAsTooltip",
56
+ uuid: "5E76D8C8-DE61-11D9-823F-000A95A51A76"},
57
+ {beforeRunningCommand: "nop",
58
+ command:
59
+ "cd \"$TM_DIRECTORY\"\ndarcs revert -a \"$TM_FILENAME\"\nrescan_project",
60
+ input: "none",
61
+ keyEquivalent: "^Z",
62
+ name: "Revert",
63
+ output: "showAsTooltip",
64
+ uuid: "CFAAD3D2-CD4F-4F16-AB41-770AF6E460EF"},
65
+ {beforeRunningCommand: "nop",
66
+ command:
67
+ "# Source some support functions we need.\n. \"${TM_SUPPORT_PATH}/lib/html.sh\"\ncd \"${TM_PROJECT_DIRECTORY:=$TM_DIRECTORY}\";\nhtmlHeader \"Summary of Changes\"\necho \"<h3>Summary of Changes in ${TM_PROJECT_DIRECTORY}</h3>\"\n\"${TM_PYTHON:=python}\" <<'EOF'\nimport os\nimport re\nfrom struct import *\ncl = {'a':'unknown', 'M':'modified', 'D':'deleted', 'C':'conflict', '?':'unknown', 'A':'added'}\ndef percent_escape(str):\n\treturn re.sub('[\\x80-\\xff /&]', lambda x: '%%%02X' % unpack('B', x.group(0))[0], str)\n\ndef make_link(file):\n\treturn 'txmt://open?url=file:%2F%2F' + percent_escape(file)\n\ndef removeNums(s):\n l = re.compile('^(.*?)(\\s+[-]\\d+)?(\\s+[+]\\d+\\s*)?$')\n x = l.match(s)\n if x:\n return x.group(1)\n else:\n return s\n \nres = os.popen('darcs whatsnew -s -l')\nprint '<table cellpadding=\"3\"><tr>'\nfor line in res:\n statClass = \"\"\n if cl.has_key(line[0]):\n statClass = cl[line[0]]\n print '<tr>',\n print '<td class=\"'+statClass+'\\\">', \n print line[0], '</td><td><a href=\"',\n fname = removeNums(line[1:-1])\n # FIXME we should treat fname as relative to the first\n # parent holding the _darcs directory rather than os.getcwd()\n print make_link(os.getcwd()+fname[2:]),'\">',fname, '</a></td></tr>'\n\n\n",
68
+ input: "none",
69
+ keyEquivalent: "^Z",
70
+ name: "Whats New",
71
+ output: "showAsHTML",
72
+ uuid: "F68A0A7A-75AF-4471-A9F8-3A618DD81306"}]
@@ -0,0 +1,76 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "nop",
4
+ command:
5
+ "export PATCH_GET=0\nexport __CF_USER_TEXT_ENCODING=$UID:0x8000100:0x8000100\n\nif [[ -z $TM_FILEPATH ]]\n then exit_discard\n else pbpaste | patch \"$TM_FILEPATH\" -p0\nfi\n\n# Reload patched file\nrescan_project\n",
6
+ fallbackInput: "none",
7
+ input: "selection",
8
+ keyEquivalent: "^@D",
9
+ name: "Apply Patch From Clipboard to Current Document",
10
+ output: "showAsTooltip",
11
+ uuid: "46842464-574C-477F-9DFB-BB38EA3C85BE"},
12
+ {beforeRunningCommand: "nop",
13
+ command:
14
+ "# patch may be the most brainfucked standard Unix tool ever. Make sure it doesn't try to access the network (it tends to ignore the -g option, I find) -- if you have Perforce installed, this can be a huge performance hit -- and it touches the network even for files that aren't controlled by Perforce. All files on the system get the lovely 'is this file locked'? treatment. Software tools, huh?\n\nexport PATCH_GET=0\n\npath=$(osascript<<END\ntell application \"TextMate\"\n\tset theFile to choose folder with prompt \"Where should I look for files to be patched?\"\n\tset the result to POSIX path of theFile\nend tell\nEND)\n\nif [[ -z $path ]]; then\n\texit_discard\nelse\n\tpatch -d \"$path\" -p0\nfi\n",
15
+ input: "document",
16
+ keyEquivalent: "^@D",
17
+ name: "Apply Patch to Files…",
18
+ output: "showAsTooltip",
19
+ uuid: "54D1CEF2-10AB-407B-AAB2-6AEA06B297B1"},
20
+ {beforeRunningCommand: "nop",
21
+ command:
22
+ "# set defaultCStringEncoding to UTF-8\nif diff --strip-trailing-cr --label \"${TM_FILENAME:-untitled}\" --label \"(clipboard)\" -u - <(__CF_USER_TEXT_ENCODING=$UID:0x8000100:0x8000100 pbpaste); then\n echo \"There are no differences.\"\nelse\n exit_create_new_document\nfi\n",
23
+ input: "selection",
24
+ keyEquivalent: "^@D",
25
+ name: "Document / Selection With Clipboard",
26
+ output: "showAsTooltip",
27
+ uuid: "674E54F5-065E-4224-9626-673903B7C0E0"},
28
+ {beforeRunningCommand: "nop",
29
+ command:
30
+ "file=$(osascript <<\"APPLESCRIPT\"\ntell app \"TextMate\"\n try\n set theFile to choose file\n set the result to POSIX path of theFile\n on error\n set the result to \"\"\n end try\nend tell\nAPPLESCRIPT)\n\nif [[ \"$file\" == \"\" ]]; then exit_discard; fi\n\nif diff --strip-trailing-cr --label \"$file\" --label \"${TM_FILENAME:-untitled}\" -u \"$file\" -; then\n exit_show_tool_tip \"There are no differences.\"\nfi\n",
31
+ input: "document",
32
+ keyEquivalent: "^@D",
33
+ name: "Document With Arbitrary File…",
34
+ output: "openAsNewDocument",
35
+ uuid: "4050A252-C604-4D0C-8545-E50B22E2715B"},
36
+ {beforeRunningCommand: "nop",
37
+ command:
38
+ "if [[ ! -e \"$TM_FILEPATH\" ]]; then\n exit_show_tool_tip \"There is no file on disk\"\nfi\n\nif diff --strip-trailing-cr --label \"$TM_FILENAME (saved version)\" --label \"(current document)\" -u <(cat \"$TM_FILEPATH\" | tr -d '\\r') -; then\n exit_show_tool_tip \"There are no differences.\"\nfi\n",
39
+ input: "document",
40
+ keyEquivalent: "^@D",
41
+ name: "Document With Saved Copy",
42
+ output: "openAsNewDocument",
43
+ uuid: "0979659D-126E-467F-AC07-599979A42D67"},
44
+ {beforeRunningCommand: "nop",
45
+ command:
46
+ "require_cmd opendiff \"Opendiff comes with Apple's developer tools.\"\n\n# set utf-8 as the default encoding (used by opendiff)\nexport __CF_USER_TEXT_ENCODING=$UID:0x8000100:0x8000100\n\neval arr=(\"$TM_SELECTED_FILES\")\nif [[ ${#arr[@]} == 2 ]];\n then opendiff \"${arr[0]}\" \"${arr[1]}\"; rescan_project\n else echo -e \"You need to select exactly two\\nfiles in the project drawer.\"\nfi\n",
47
+ input: "none",
48
+ keyEquivalent: "^@D",
49
+ name: "Merge Selected Files…",
50
+ output: "showAsTooltip",
51
+ uuid: "239E196A-7106-4DC9-8FAE-0A9CA7540AFA"},
52
+ {beforeRunningCommand: "nop",
53
+ command:
54
+ "eval arr=(\"$TM_SELECTED_FILES\")\nif [[ ${#arr[@]} != 2 ]]; then\n exit_show_tool_tip $'You need to select exactly two\\nfiles in the project drawer.'\nfi\n\nif eval diff -u \"$TM_SELECTED_FILES\"; then\n exit_show_tool_tip \"There are no differences.\"\nfi\n",
55
+ input: "none",
56
+ keyEquivalent: "^@D",
57
+ name: "Selected Files in Project Drawer",
58
+ output: "openAsNewDocument",
59
+ uuid: "D04AFBD3-8110-11D9-8E5B-0011242E4184"},
60
+ {beforeRunningCommand: "nop",
61
+ command:
62
+ "eval arr=(\"$TM_SELECTED_FILES\")\nif [[ ${#arr[@]} != 2 ]]; then\n echo -e \"You need to select exactly two files in the project drawer.\"\n exit_show_tool_tip\nfi\n\nperl \"$TM_BUNDLE_SUPPORT/Diff.pl\"\n",
63
+ input: "none",
64
+ keyEquivalent: "^@D",
65
+ name: "Selected Files in Project Drawer (HTML)",
66
+ output: "showAsHTML",
67
+ uuid: "6A811265-81DC-11D9-9AA2-000D9332809C"},
68
+ {beforeRunningCommand: "nop",
69
+ command:
70
+ "egrep -v '^(\\+\\+\\+|---) '|\\\n tee >(add=$(grep ^+|wc -l); echo 1>&2 \"Lines Added $add\") \\\n |{ rem=$(grep ^-|wc -l); wait; echo \"Lines Removed $rem\"; }\n",
71
+ input: "document",
72
+ keyEquivalent: "^N",
73
+ name: "Statistics (Lines Added/Removed)",
74
+ output: "showAsTooltip",
75
+ scope: "source.diff",
76
+ uuid: "B9091553-4317-415E-B381-4609BD453E01"}]
@@ -0,0 +1,9 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "saveModifiedFiles",
4
+ command:
5
+ "~/Applications/Development/Doxygen.app/Contents/Resources/doxygen $TM_PROJECT_DIRECTORY/$PATH_TO_DOXYGEN\n",
6
+ input: "none",
7
+ name: "Run Doxgen",
8
+ output: "showAsHTML",
9
+ uuid: "068FA312-303F-42E0-9BC7-EA6CA4324A7C"}]
@@ -0,0 +1,9 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "nop",
4
+ command:
5
+ "FILE=`\"$TM_BUNDLE_SUPPORT/bin/linkify.rb\" 2>/dev/console \"$TM_BUNDLE_SUPPORT/pages/intro.mdown\"`\necho \"<meta http-equiv='Refresh' content='0;URL=tm-file://$FILE'>\"\n\n",
6
+ input: "none",
7
+ name: "Show Wiki",
8
+ output: "showAsHTML",
9
+ uuid: "011517D7-AA14-46B6-9141-51411F33E6E8"}]
@@ -0,0 +1,172 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "nop",
4
+ bundleUUID: "D99E8C0C-792F-11D9-A212-000D93B3A10E",
5
+ command:
6
+ ". \"$TM_SUPPORT_PATH/lib/webpreview.sh\"\nhtml_header \"Balance Jr Help\"\nMarkdown.pl \"$TM_BUNDLE_SUPPORT/Balance Jr Help.markdown\"\nhtml_footer\n",
7
+ input: "none",
8
+ name: "Balance Jr Help",
9
+ output: "showAsHTML",
10
+ uuid: "0F1EF848-5333-4610-96FE-97C180B2653C"},
11
+ {beforeRunningCommand: "nop",
12
+ command:
13
+ "cat <<'PART_1'\n\t<html><head><title>Clock</title><script>\n\tvar myCommand = null;\n\n\tfunction start () {\n\t document.getElementById(\"start\").style.display = \"none\";\n\t document.getElementById(\"stop\").style.display = \"inline\";\n\t var cmd = \"while true; do date; sleep 1; done\"\n\t myCommand = TextMate.system(cmd, function (task) { });\n\t myCommand.onreadoutput = output;\n\t}\n\n\tfunction stop () {\n\t document.getElementById(\"start\").style.display = \"inline\";\n\t document.getElementById(\"stop\").style.display = \"none\";\n\t myCommand.cancel();\n\t}\n\n\tfunction output (str) {\n\t document.getElementById(\"date\").innerText = str;\n\t}\n\t</script></head>\n\t<body onLoad=\"window.resizeTo(400, 250); start()\" onUnload=\"stop()\">\n\t<pre><div id=\"date\">\nPART_1\n\ndate|tr -d \\\\n # to get an initial value (visually more attractive)\n\ncat <<'PART_2'\n\t</div></pre>\n\t<span id=\"start\"><a onClick=\"start()\" href=\"#\">Start</a></span>\n\t<span id=\"stop\"><a onClick=\"stop()\" href=\"#\">Stop</a></span>\n\t</body></html>\nPART_2\n",
14
+ input: "none",
15
+ keyEquivalent: "",
16
+ name: "Clock",
17
+ output: "showAsHTML",
18
+ uuid: "8FC2E9FA-A9CE-42CD-9910-4FC9A9248BF9"},
19
+ {beforeRunningCommand: "nop",
20
+ command:
21
+ "#!/usr/bin/env ruby\n\nrequire 'rexml/streamlistener'\nrequire 'rexml/parsers/baseparser'\nrequire 'rexml/parsers/streamparser'\n\n\n$noparens = ['source.ocaml']\n$nocommas = ['source.ocaml']\n\n\nclass FunctionExtractor\n\tinclude REXML::StreamListener\n\t\n\tdef initialize(findfunction)\n\t\t@findfunction = findfunction\n\t\t@functiontagregex = /^declaration\\.function|^meta\\.(method|function)/\n\t\t@functionnameregex = /^entity\\.name\\.function/\n\t\t@argumentregex = /^variable/\n\t\t@infunction = false\n\t\t@currenttag = \"\"\n\t\t@currentfunction = \"\"\n\t\t@args = []\n\tend\n\t\n\t\n\tdef tag_start(name, attrs)\n\t\tif !@infunction and @functiontagregex.match(name)\n\t\t\t@infunction = name\n\t\telsif @infunction\n\t\t\t@currenttag = name\n\t\tend\n\tend\n\t\n\t\n\tdef text(txt)\n\t\tif @infunction\n\t\t\tif @functionnameregex.match(@currenttag)\n\t\t\t\t@currentfunction = txt.strip()\n\t\t\telsif @argumentregex.match(@currenttag)\n\t\t\t\t@args << txt.strip()\n\t\t\tend\n\t\tend\n\tend\n\t\n\t\n\tdef tag_end(name)\n\t\tif @infunction\n\t\t\tif name == @infunction\n\t\t\t\tif @currentfunction == @findfunction\n\t\t\t\t\tprint \"\#{make_args()}$0\"\n\t\t\t\t\texit(0)\n\t\t\t\tend\n\t\t\t\t\n\t\t\t\t@args = []\n\t\t\t\t@infunction = false\n\t\t\telsif name == @currenttag\n\t\t\t\t@currenttag = \"\"\n\t\t\tend\n\t\tend\n\tend\n\n\t\n\tprivate\n\t\n\tdef make_args()\n\t\tscope = ENV['TM_SCOPE'].split(/ /)[0]\n\t\tjoinstr = \", \"\n\t\tif $nocommas.include?(scope)\n\t\t\tjoinstr = \" \"\n\t\tend\n\n\t\tif !$nocommas.include?(scope)\n\t\t\t@args = @args.map { |s| s.split(/,/) }.flatten.map { |s| s.strip() }\n\t\telse\n\t\t\t@args = @args.map { |s| s.split(/\\s+/) }.flatten.map { |s| s.strip() }\n\t\tend\n\t\t\n\t\tfinal = []\n\t\t@args.each_index() do |i|\n\t\t\tfinal << \"${\#{i+1}:\#{@args[i]}}\"\n\t\tend\n\n\t\tfinal = final.join(joinstr)\n\t\tif $noparens.include?(scope)\n\t\t\tfinal = \" \#{final}\"\t\t\t\n\t\telse\n\t\t\tfinal = \"(\#{final})\"\n\t\tend\n\t\t\n\t\tfinal\n\tend\n\t\nend\n\nbegin\n\tlistener = FunctionExtractor.new(ENV['TM_CURRENT_WORD'].strip())\n\tparser = REXML::Parsers::StreamParser.new($stdin, listener)\n\tparser.parse()\nrescue\n\t# if we fail for any reason, we want to fail silently to avoid cluttering up the document\nend",
22
+ input: "document",
23
+ inputFormat: "xml",
24
+ keyEquivalent: "~",
25
+ name: "Complete Local Function",
26
+ output: "insertAsSnippet",
27
+ scope: "source",
28
+ uuid: "08741F60-A1F1-4294-B9A9-FFF43253A687"},
29
+ {beforeRunningCommand: "nop",
30
+ command: "\"$TM_BUNDLE_SUPPORT/bin/convert_to_snippet.rb\"",
31
+ fallbackInput: "none",
32
+ input: "selection",
33
+ name: "Convert to Snippet",
34
+ output: "insertAsSnippet",
35
+ uuid: "99D9DBC0-E03E-46B9-9E73-13F58DCDB55B"},
36
+ {beforeRunningCommand: "nop",
37
+ bundleUUID: "AEAF4DD4-74CD-11D9-BAD4-000A95A89C98",
38
+ command:
39
+ ". \"$TM_SUPPORT_PATH/lib/webpreview.sh\"\nhtml_header \"Basic Subversion Diff\"\n\"${TM_RUBY:-ruby}\" \"$TM_BUNDLE_SUPPORT/svn_diff_html.rb\"\nhtml_footer\n",
40
+ input: "none",
41
+ name: "Diff With Working Copy as HTML (BASE)",
42
+ output: "showAsHTML",
43
+ uuid: "44AE6B57-2AD5-4D06-972B-EEFA6FC3F266"},
44
+ {beforeRunningCommand: "nop",
45
+ bundleUUID: "467B298F-6227-11D9-BFB1-000D93589AF6",
46
+ command:
47
+ "#!/usr/bin/env ruby\nrequire \"\#{ENV['TM_SUPPORT_PATH']}/lib/codecompletion\"\n\ndef letsdoit(stdin)\n choices = TextmateCompletionsText.new(`cat /usr/share/dict/web2|grep ^\#{Regexp.escape ENV['TM_CURRENT_WORD']}|head -n 500`).to_ary\n print TextmateCodeCompletion.new(choices,stdin).to_snippet\nend\n\nletsdoit(STDIN.read)\n",
48
+ fallbackInput: "line",
49
+ input: "selection",
50
+ keyEquivalent: "~",
51
+ name: "English Completion",
52
+ output: "insertAsSnippet",
53
+ scope: "text -source, string -(string source)",
54
+ uuid: "9AA55A9A-ED50-4494-B814-50FD21CDF535"},
55
+ {beforeRunningCommand: "nop",
56
+ command:
57
+ "#!/usr/bin/env ruby\n\n# short for escape_snippet - escapes special snippet characters in str\ndef es(str)\n\tstr.to_s.gsub(/([$`\\\\])/, \"\\\\\\\\\\\\1\")\nend\n\n\n# given a string, insert an open parenthesis in the first, best\n# spot starting from the end\ndef insert_open(str)\t\n\t# this needs to be done as a state machine so we can properly jump\n\t# paren groups\n\tprev = nil\n\tcur = nil\n\tclosuredepth = 0\n\t(str.length - 1).downto(0) do |i|\n\t\tprev = cur\n\t\tcur = str[i].chr()\n\t\t\n\t\tif prev != nil\n\t\t\tif prev == '('\n\t\t\t\tclosuredepth -= 1\n\t\t\telsif prev == ')'\n\t\t\t\tclosuredepth += 1\n\t\t\tend\n\t\t\t\n\t\t\t# look for the start of a token next to a boundary\n\t\t\tif closuredepth == 0 and \"\#{cur}\#{prev}\" =~ /(\\b|\\s)[a-zA-Z0-9\\(]$/\n\t\t\t\treturn str[0..i] + '(' + str[i+1..-1]\n\t\t\tend\n\t\tend\n\tend\n\t\n\t# if we bailed, check for start of str positioning\n\tif str =~ /^[a-zA-Z0-9\\(]/\n\t\treturn '(' + str\n\telse\n\t\treturn str\t\n\tend\nend\n\n\nline = $stdin.read()\nindex = ENV['TM_LINE_INDEX'].to_i()\ncurrentchar = line[index - 1].chr()\n\nif currentchar == ')'\n\t# backtrack to find the open of this paren\n\tdepth = 1\n\tsearchline = line[0..(index - 2)].reverse\n\tsearchline.split(//).each_index() do |i|\n\t\tch = searchline[i].chr()\n\t\tif ch == ')'\n\t\t\tdepth += 1\n\t\telsif ch == '('\n\t\t\tdepth -= 1\n\t\tend\n\n\t\t# at a depth of zero we should be sitting on the opening paren\n\t\tif depth == 0\n\t\t\tparenindex = [(index - 3 - i), 0].max()\n\t\t\tfirstpart = line[0].chr()\n\t\t\tif parenindex > 0\n\t\t\t\tfirstpart = insert_open(line[0..parenindex])\n\t\t\tend\n\t\t\tif firstpart == line[0..parenindex]\n\t\t\t\tline = es(line[0..(index)]) + '$0' + es(line[(index + 1)..-1])\n\t\t\t\tbreak\n\t\t\tend\n\t\t\t\n\t\t\tsecondpart = es(line[(parenindex + 2)..(index - 2)]) + ')$0' + es(line[index..-1])\n\t\t\tline = es(firstpart) + secondpart\n\t\t\tbreak\n\t\tend\n\tend\nelse\n\tline = es(insert_open(line[0..(index - 1)])) + ')$0' + es(line[index..-1])\nend\n\nprint \"\#{line}\"\n",
58
+ fallbackInput: "line",
59
+ input: "selection",
60
+ keyEquivalent: "@)",
61
+ name: "Extend Current Parens",
62
+ output: "insertAsSnippet",
63
+ scope: "source",
64
+ uuid: "775D0733-3804-463C-A0EF-65B2998F5CE1"},
65
+ {beforeRunningCommand: "nop",
66
+ bundleUUID: "AEAF4DD4-74CD-11D9-BAD4-000A95A89C98",
67
+ command:
68
+ "\"${TM_RUBY:-ruby}\" \"$TM_BUNDLE_SUPPORT/filename_completion.rb\"\n",
69
+ input: "none",
70
+ keyEquivalent: "^\t",
71
+ name: "Filename Completion",
72
+ output: "insertAsSnippet",
73
+ scope: "source.shell, string.interpolated.ruby",
74
+ uuid: "1932A8DB-9670-4CAD-8269-423AD14ADCE4"},
75
+ {beforeRunningCommand: "nop",
76
+ command: "\"${TM_RUBY:-ruby}\" \"$TM_BUNDLE_SUPPORT/invert_colors.rb\"\n",
77
+ input: "selection",
78
+ name: "Invert HEX Colors",
79
+ output: "replaceSelectedText",
80
+ uuid: "D15DAF9D-80EF-4636-885A-74F64808060A"},
81
+ {beforeRunningCommand: "nop",
82
+ command: "#!/usr/bin/env ruby \nprint \"‹\#{ENV['TM_SELECTED_TEXT']}›\"",
83
+ fallbackInput: "none",
84
+ input: "selection",
85
+ name: "Mark Snippet",
86
+ output: "replaceSelectedText",
87
+ uuid: "56B05535-1ACD-4E55-B9FC-3BC1FAA3DBE1"},
88
+ {beforeRunningCommand: "nop",
89
+ command:
90
+ "#!/usr/bin/env ruby\n\ndef doit!(str='')\n return str unless ['\"',\"'\",\"`\"].include?(str[0].chr) and str[0] == str[-1]\n \n column = (ENV['TM_INPUT_START_COLUMN'].to_i||1) - 1\n \n @quote_char = str[0].chr\n str.gsub!(/\\A\#{Regexp.escape(@quote_char)}|\#{Regexp.escape(@quote_char)}\\Z/,'')\n strs = []\n while str.length != 0\n strs << str.slice!(0..(70-column))\n column = 0\n end\n str = @quote_char + (strs.compact.join %{\#@quote_char + \\n\#@quote_char}) + @quote_char\n \n str\nend\n\n# print doit!(%{%{Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. asdjfhakldsfhkladjsfhkalsdjfh}}) #for testing\n\nprint doit!(STDIN.read())\n",
91
+ fallbackInput: "scope",
92
+ input: "selection",
93
+ keyEquivalent: "^q",
94
+ name: "Reformat Long Strings",
95
+ output: "replaceSelectedText",
96
+ scope: "string.quoted.double, string.quoted.single",
97
+ uuid: "93523AF2-7A9D-4190-A1C9-D510AAB690FB"},
98
+ {beforeRunningCommand: "nop",
99
+ command:
100
+ "{ APP_PATH=$(ps -xwwp $PPID -o command|grep -o '.*.app')\n osascript -e \"tell app \\\"$(basename \"$APP_PATH\")\\\" to quit\"\n\n for (( i = 0; i < 50 && $(echo $(ps -xp $PPID|wc -l))-1; i++ )); do\n sleep .2;\n done\n\n if [[ $(ps -xp $PPID|wc -l) -ne 2 ]]; then\n DYLD_FRAMEWORK_PATH=\"$(find_app org.webkit.nightly.WebKit)/Contents/Resources\" WEBKIT_UNSET_DYLD_FRAMEWORK_PATH=YES \"${APP_PATH}/Contents/MacOS/TextMate\" -WebKitScriptDebuggerEnabled YES -WebKitDeveloperExtras YES\n else\n echo >/dev/console \"$(date +%Y-%m-%d\\ %H:%M:%S): TextMate is still running. Relaunch aborted.\"\n fi\n\n} &>/dev/null &\n",
101
+ input: "none",
102
+ keyEquivalent: "^@q",
103
+ name: "Relaunch TextMate using WebKit",
104
+ output: "discard",
105
+ uuid: "A7B73FB6-4C26-4607-8899-9595D7BF3EB1"},
106
+ {beforeRunningCommand: "nop",
107
+ command:
108
+ ". \"$TM_SUPPORT_PATH/lib/webpreview.sh\"\nhtml_header \"Replace Colors\"\necho '<p>WARNING: Changes you make here are instantly saved to disk. The only way to undo is if you keep the document open in textmate, undo and resave.</p>'\n\"${TM_RUBY:-ruby}\" \"$TM_BUNDLE_SUPPORT/show_hex_colors_and_replace.rb\"\nhtml_footer\n\n",
109
+ input: "selection",
110
+ name: "Replace Hex Colors",
111
+ output: "showAsHTML",
112
+ uuid: "BD115447-20FA-43E3-8694-E8B4280C296B"},
113
+ {beforeRunningCommand: "nop",
114
+ command: "\"${TM_RUBY:-ruby}\" \"$TM_BUNDLE_SUPPORT/replace_colors.rb\"\n",
115
+ fallbackInput: "word",
116
+ input: "selection",
117
+ name: "Replace Selected HEX Color (Every Occurrence)",
118
+ output: "showAsTooltip",
119
+ uuid: "381FFB1B-0CAE-40AC-A228-B575C6E1C1C4"},
120
+ {beforeRunningCommand: "nop",
121
+ bundleUUID: "467B298F-6227-11D9-BFB1-000D93589AF6",
122
+ command:
123
+ "#!/usr/bin/env ruby\nrequire \"\#{ENV['TM_SUPPORT_PATH']}/lib/codecompletion\"\npreference = 'CodeCompletions Ruby'\nchoices = []\n\nparsed_choices = TextmateCompletionsParser.new(nil, :scope => :ruby).to_ary\nchoices += parsed_choices if parsed_choices\n\nchoices += ['--']\n\nplist_choices = TextmateCompletionsPlist.new( \"\#{ENV['TM_BUNDLE_PATH']}/Preferences/\#{preference}.tmPreferences\" ).to_ary\nchoices += plist_choices if plist_choices\n\nprint TextmateCodeCompletion.new(choices,STDIN.read).to_snippet\n",
124
+ fallbackInput: "line",
125
+ input: "selection",
126
+ keyEquivalent: "~$",
127
+ name: "Ruby Code Completion",
128
+ output: "insertAsSnippet",
129
+ scope: "source.ruby",
130
+ uuid: "FEFA1349-E915-4C5F-A17B-B268D15E92CB"},
131
+ {beforeRunningCommand: "nop",
132
+ command:
133
+ "#!/usr/bin/env ruby\nrequire \"\#{ENV['TM_SUPPORT_PATH']}/lib/ui\"\n\n@THEMES = []\ndef add_themes!(dir)\n themes = `ls \"\#{dir}\"`.split(\"\\n\")\n themes.each do |theme|\n @THEMES << {\n 'title' => theme.gsub('.tmTheme',''),\n 'path' => '' + dir + theme\n }\n end\n \nend\n\nadd_themes! \"\#{ENV['TM_SUPPORT_PATH']}/../Themes/\"\nadd_themes! \"$HOME/Library/Application Support/TextMate/Themes/\"\n\nselection = TextMate::UI.menu(@THEMES)\n\n`open \"\#{selection['path']}\"`\nprint \"Switched to \" + selection['title']",
134
+ input: "none",
135
+ keyEquivalent: "^~T",
136
+ name: "Select TextMate Theme",
137
+ output: "showAsTooltip",
138
+ uuid: "B98B3ADE-3EAE-4C7B-BBF4-46258CAD9E76"},
139
+ {beforeRunningCommand: "nop",
140
+ command:
141
+ ". \"$TM_SUPPORT_PATH/lib/webpreview.sh\"\nhtml_header \"Colors\"\n\"${TM_RUBY:-ruby}\" \"$TM_BUNDLE_SUPPORT/show_hex_colors.rb\"\nhtml_footer\n\n",
142
+ input: "selection",
143
+ name: "Show Hex Colors",
144
+ output: "showAsHTML",
145
+ uuid: "7CC7E11B-02BE-4F8D-9E8F-396D2CB74A98"},
146
+ {beforeRunningCommand: "nop",
147
+ command:
148
+ "#!/usr/bin/env ruby\n\nMARK = [0xFFFC].pack(\"U\").freeze\ndef snippet_escape (str); str.gsub(/[$`\\\\]/, '\\\\\\\\\\0'); end\n\ndef strip_bracket (txt)\n if idx = txt.index(/[\\[(\"']/) then\n chr_map = { ?[ => ?], ?( => ?), ?\" => ?\", ?' => ?' }\n if ridx = txt.rindex(chr_map[txt[idx]]) then\n txt[ridx, 1] = \"\"\n txt[idx, 1] = \"\"\n txt.insert idx, \" \" if txt[idx - 1, 1] =~ /[^\\[\\]\\(\\)\\{\\}\\s]/ && ENV['TM_SELECTED_TEXT'].nil?\n end\n end\n return txt\nend\n\nline = STDIN.gets\nunless ENV.has_key?('TM_SELECTED_TEXT') then\n line.insert(ENV['TM_LINE_INDEX'].to_i, MARK)\nend\nprint snippet_escape(strip_bracket(line)).sub(/\#{MARK}/, '${0}')\n",
149
+ fallbackInput: "line",
150
+ input: "selection",
151
+ keyEquivalent: "^$\x7F",
152
+ name: "Smart Delete Brackets",
153
+ output: "insertAsSnippet",
154
+ uuid: "AE00FFF1-C436-4826-808A-3AF6C2ABD18B"},
155
+ {beforeRunningCommand: "nop",
156
+ command:
157
+ "#!/usr/bin/env ruby\n\nrequire \"\#{ENV['TM_SUPPORT_PATH']}/lib/exit_codes.rb\"\nrequire \"\#{ENV['TM_SUPPORT_PATH']}/lib/ui.rb\"\n\nregex_string = TextMate::UI.request_string(\n :title => 'Strip Matching Lines', \n :prompt => 'Regular Expression',\n :button1 => 'Strip'\n)\n\nTextMate.exit_discard if regex_string.nil?\n\nre = Regexp.new(regex_string)\n$stdin.each_line() do |line|\n\tprint line if !re.match(line)\nend\n",
158
+ fallbackInput: "document",
159
+ input: "selection",
160
+ name: "Strip Matching Lines",
161
+ output: "replaceSelectedText",
162
+ uuid: "A1D725D0-E28F-491C-8776-C6FAF0A89DF7"},
163
+ {beforeRunningCommand: "nop",
164
+ command:
165
+ "cat <<\"HTML\"\n<style type=\"text/css\">\n body {\n font-family: \"Bitstream Vera Sans Mono\", \"Monaco\", monospace;\n }\n .comment {\n font-style: italic;\n color: #AAA;\n }\n .keyword {\n font-weight: bold;\n }\n .string {\n color: #00F;\n }\n .entity {\n text-decoration: underline;\n }\n .storage {\n color: #888;\n }\n .support {\n color: #0F0;\n }\n .constant, .variable {\n color: #F0F;\n }\n</style>\n<body>\n<div style=\"white-space: pre; -khtml-line-break: after-white-space;\">\nHTML\n\nperl -pe 's/<\\/[^>]+>/<\\/span>/g' \\\n| perl -pe 's/<([^\\/.>]+)[^>]*>/<span class=\"$1\">/g' \\\n| perl -pe 's/\\t/&nbsp;&nbsp;&nbsp;/g'\n",
166
+ fallbackInput: "document",
167
+ input: "selection",
168
+ inputFormat: "xml",
169
+ keyEquivalent: "",
170
+ name: "View Document as HTML",
171
+ output: "showAsHTML",
172
+ uuid: "BB66B370-D68B-4AFA-A228-C28F34E2AED2"}]
@@ -0,0 +1,13 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "nop",
4
+ bundleUUID: "93A1530E-919D-11D9-AE7A-00039369B986",
5
+ command:
6
+ "#!/usr/bin/env ruby\n\nrequire ENV['TM_SUPPORT_PATH'] + \"/lib/exit_codes\"\nrequire \"\#{ENV['TM_SUPPORT_PATH']}/lib/escape\"\n\nrequire \"\#{ENV['TM_BUNDLE_SUPPORT']}/objc_completion\"\n\ndef stripComments(line)\n line.gsub(/((['\"])(?:\\\\.|.)*?\\2)|\\/\\*.*?\\*\\/|\\/\\/[^\\n\\r]*/m) do |s| \n if $1\n s\n else\n ' ' * s.length()\n end\n end\nend\n\nclass String\n def index_of_nth_occurrence_of(n, ch)\n self.unpack(\"U*\").each_with_index do |e, i|\n return i if e == ch && (n -= 1) == 0\n end\n return -1\n end\nend\n\ndef caret_position(line)\n tmp = ENV['TM_LINE_NUMBER'].to_i - ENV['TM_INPUT_START_LINE'].to_i\n if tmp > 0\n caret_placement = line.index_of_nth_occurrence_of(tmp,?\\n) + ENV['TM_LINE_INDEX'].to_i\n else\n caret_placement =ENV['TM_LINE_INDEX'].to_i-ENV['TM_INPUT_START_LINE_INDEX'].to_i - 1\n end\nend\n\n\n\nclass FScriptCocoaCompletion < ObjCMethodCompletion\n def initialize(line, caret_position)\n @line = line\n end\n \n def match_iter(rgxp,str)\n offset = 0\n while m = str.match(rgxp)\n yield [m, m.begin(0) + offset, m[0].length]\n str = m.post_match\n offset += m.end(0)\n end\n end\n \n def methodNames(line )\n start = [0]\n \n #Count [\n pat = /\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|([\\[\\{\\(])|([\\]\\)\\]])|[a-zA-Z][a-zA-Z0-9]*:/\n match_iter(pat , line) do |mat, beg, len|\n#puts mat[1].inspect + \"<<<\"\n if mat[1]\n start << beg\n elsif mat[2]\n start.pop\n end\n end\n \n unless start[-1] == 0\n start = start[-1] + 1 \n else\n start = 0\n end\n \n list = \"\"\n up = 0\n match_iter(pat , line[start..-1]) do |mat, beg, len|\n if mat[1]\n up +=1\n elsif mat[2] && up > 0\n up -=1\n elsif up == 0 && mat[0].match(/^\\w/)\n list << mat[0]\n end\n end\n return list\n end\n \n def snippet_generator(cand, start, call)\n start = cand.match(/\#{@mn}/)[0].length\n super\n end\n \n def print \n line = @line\n if k = line.match(/[a-zA-Z_0-1\\'\\]\\)\\}]\\s+([a-zA-Z_][a-zA-Z_0-9]*)$/)\n mn = methodNames(line)\n @mn = \"(\#{mn})?\" + k[1] unless mn == \"\"\n candidates = candidates_or_exit( @mn + \"[[:alpha:]]\", nil, :methods)\n res =pop_up(candidates, k[1])\n else\n res = \"\"\n end\n end\nend\n\nline = ENV['TM_CURRENT_LINE']\ni = ENV['TM_LINE_INDEX'].to_i - 1\nTextMate.exit_discard if i == -1\nline = line[0..i]\ncaret_placement = caret_position(line)\nres = FScriptCocoaCompletion.new(stripComments(line) , caret_placement).print\n os = 0\nprint res\n",
7
+ fallbackInput: "none",
8
+ input: "selection",
9
+ keyEquivalent: "~",
10
+ name: "F-Script Completion",
11
+ output: "insertAsSnippet",
12
+ scope: "source.fscript",
13
+ uuid: "72B7DE39-A1F2-4D0E-96EF-72DF2DAF3ECA"}]
@@ -0,0 +1,11 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "saveActiveFile",
4
+ command:
5
+ "# this takes the current selection in a TextMate document and runs it in FXBuilder. Anything in the existing FXBuilder window will be overwritten.\n\n# The keystroke command-K matches FXBuilder's Run keystroke in FCP, differing from TextMate's run = command-R convention\n\n\necho \"Sending current document to FXBuilder...\"\n\n\n# create a temp file for getting the source into an AppleScript variable. This is such a hack...\n# Store the name for later cleanup:\nTEMPFILE=`date \"+preview-temp%y%m%d-%H%M%S.fxscript\"`\t\n\n# send stdin (the contents of the TextMate window) to $TEMPFILE in /tmp\ncat <&0 >/tmp/$TEMPFILE \n\n\n\n\n\n\nosascript << END\nproperty loopcount : 0\n\non FCPdismissStartupWindows()\n\tlog \"FCPdismissStartupWindows()\"\n\t--\tset loopcount to loopcount + 1\n\t-- this checks for every startup window I can find, closes one then calls itself again until it returns true\n\t-- check for window \"Offline Files\"\n\ttell application \"Final Cut Pro\" to activate -- bring FCP to front\n\t\n\ttell application \"System Events\"\n\t\ttell process \"Final Cut Pro\"\n\t\t\t\n\t\t\ttry\n\t\t\t\twith timeout of 300 seconds\n\t\t\t\t\tset windowList to name of every window\n\t\t\t\t\t(* FCP will occasionally fail to respond to System Events during launch and restoration of exising projects. I've never had a 5 minute wait, but who knows... *)\n\t\t\t\tend timeout\n\t\t\t\t\n\t\t\t\tif windowList contains \"External A/V\" then\n\t\t\t\t\t(key code 53) -- press escape\n\t\t\t\t\tmy FCPdismissStartupWindows()\n\t\t\t\tend if\n\t\t\t\t\n\t\t\t\tif windowList contains \"Offline Files\" then\n\t\t\t\t\tclick button \"Continue\" of window \"Offline Files\"\n\t\t\t\t\tmy FCPdismissStartupWindows()\n\t\t\t\tend if\n\t\t\t\t\n\t\t\ton error the error_message number the error_number\n\t\t\t\t-- i don't think is is ever getting called...\n\t\t\t\tlog \"FAILED on: \" & loopcount & \", \" & error_number & \" (\" & error_number & \") retrying...\"\n\t\t\t\t\n\t\t\t\tif loopcount < 100 then my FCPdismissStartupWindows() -- loopcount is a check to prevent runaway loops\n\t\t\t\t\n\t\t\tend try\n\t\t\t\n\t\tend tell\n\tend tell\n\treturn true\n\t\nend FCPdismissStartupWindows\n\n\non FXBuilderBringToFront() -- makes sure frontmost window is FXBuilder\n\tlog \"FXBuilderBringToFront()\"\n\ttell application \"System Events\"\n\t\tlog \"*** GETTING PROCESSES ***\"\n\t\tlog name of every process as list\n\t\tlog \"FCP EXISTS? \" & (exists process \"Final Cut Pro\")\n\t\t\n\t\tif not (exists process \"Final Cut Pro\") then\n\t\t\tlog \"Restarting FCP\"\n\t\tend if\n\tend tell\n\t\n\tFCPdismissStartupWindows()\n\t\n\ttell application \"System Events\"\n\t\ttell process \"Final Cut Pro\"\n\t\t\tset windowList to name of every window\n\t\t\tset windowList to name of every window\n\t\t\tif windowList contains \"FXBuilder\" then\n\t\t\t\tset FXBcount to 0\n\t\t\t\trepeat with theWindow from 1 to (count windowList)\n\t\t\t\t\t\n\t\t\t\t\tif name of window theWindow as string is \"FXBuilder\" then\n\t\t\t\t\t\tif scroll bar 1 of window theWindow exists then -- this is a text entry window\n\t\t\t\t\t\t\tperform action \"AXRaise\" of window theWindow -- bring window to front\n\t\t\t\t\t\t\treturn true -- end, we found a workable window\n\t\t\t\t\t\tend if\n\t\t\t\t\tend if\n\t\t\t\t\t\n\t\t\t\tend repeat\n\t\t\tend if\n\t\t\t\n\t\t\tif value of attribute \"AXEnabled\" of menu item \"FXBuilder\" of menu \"Tools\" of menu bar 1 is false then\n\t\t\t\tlog \"FXBuilder menu disabled. loopcount: \" & loopcount\n\t\t\t\tlog \"loopcount: \" & loopcount\n\t\t\t\tif loopcount < 200 then my FCPdismissStartupWindows()\n\t\t\tend if\n\t\t\tclick menu item \"FXBuilder\" of menu \"Tools\" of menu bar 1\n\t\tend tell\n\tend tell\n\t\nend FXBuilderBringToFront\n\n\non FXBuilderPasteText(sourceText) -- places sourceText into an FXBuilder window\n\t\n\tFXBuilderBringToFront()\n\tset the clipboard to sourceText as text\n\t\n\ttell application \"System Events\"\n\t\ttell process \"Final Cut Pro\"\n\t\t\ttell application \"Final Cut Pro\" to activate\n\t\t\tkeystroke \"a\" using command down -- select all\n\t\t\tkey code 51 -- (delete key) delete current selected text\n\t\t\tkeystroke \"v\" using command down -- paste and select all\t\t\t\n\t\tend tell\n\tend tell\nend FXBuilderPasteText\n\n\non FXBuilderRunScript(sourceText)\n\tFXBuilderPasteText(sourceText)\n\ttell application \"System Events\"\n\t\ttell process \"Final Cut Pro\"\n\t\t\tclick menu item \"Stop\" of menu \"FXBuilder\" of menu bar 1\n\t\t\tclick menu item \"Run\" of menu \"FXBuilder\" of menu bar 1\n\t\tend tell\n\tend tell\nend FXBuilderRunScript\n\ntell application \"System Events\" to set UI elements enabled to true -- just do this gracelessly rather than gunking up the script with dialogs etc\n\nset theSource to do shell script \"cat /tmp/$TEMPFILE\"\nFXBuilderRunScript(theSource)\n\nEND\n\n\n\nrm /tmp/$TEMPFILE #cleanup the temp file\n",
6
+ input: "document",
7
+ keyEquivalent: "@k",
8
+ name: "Run in FXBuilder",
9
+ output: "showAsTooltip",
10
+ scope: "source.fxscript",
11
+ uuid: "F23D244D-E15F-4EC8-8DC0-FA196437C8C3"}]
@@ -0,0 +1,42 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "saveActiveFile",
4
+ command:
5
+ "#\n# $Id: FileMerge%20With%20Latest%20Revision%20(HEAD).plist 949 2006-04-21 18:02:26Z aparajita $\n#\n\nrequire_cmd \"${TM_SVN:=svn}\" \"If you have installed svn, then you need to either update your <tt>PATH</tt> or set the <tt>TM_SVN</tt> shell variable (e.g. in Preferences / Advanced)\"\n\nrequire_cmd opendiff \"You must install the Apple developer tools to run FileMerge.\"\n\n# See if the current file is under svn control\nFILE=`basename \"$TM_FILEPATH\"`\nINFO_LINES=`svn info \"$FILE\" 2>&1 | grep \"^Path\\: .*\\$\" | wc -l`\n\nif [ $INFO_LINES -eq 0 ]; then\n\techo \"The current file is not under subversion control\"\n\texit_show_tool_tip\nfi\n\n\"$TM_BUNDLE_SUPPORT/bin/filemerge.sh\" HEAD -\n",
6
+ input: "none",
7
+ keyEquivalent: "^@A",
8
+ name: "Latest Revision (HEAD)",
9
+ output: "discard",
10
+ uuid: "BA930D7C-7B5E-4BFE-9293-6B8FAF962990"},
11
+ {beforeRunningCommand: "saveActiveFile",
12
+ command:
13
+ "#\n# $Id: FileMerge%20With%20Previous%20Revision%20(PREV).plist 949 2006-04-21 18:02:26Z aparajita $\n#\n\nrequire_cmd \"${TM_SVN:=svn}\" \"If you have installed svn, then you need to either update your <tt>PATH</tt> or set the <tt>TM_SVN</tt> shell variable (e.g. in Preferences / Advanced)\"\n\nrequire_cmd opendiff \"You must install the Apple developer tools to run FileMerge.\"\n\n# See if the current file is under svn control\nFILE=`basename \"$TM_FILEPATH\"`\nINFO_LINES=`svn info \"$FILE\" 2>&1 | grep \"^Path\\: .*\\$\" | wc -l`\n\nif [ $INFO_LINES -eq 0 ]; then\n\techo \"The current file is not under subversion control\"\n\texit_show_tool_tip\nfi\n\n\"$TM_BUNDLE_SUPPORT/bin/filemerge.sh\" PREV -\n",
14
+ input: "none",
15
+ keyEquivalent: "^@A",
16
+ name: "Previous Revision (PREV)",
17
+ output: "discard",
18
+ uuid: "3FA49AEC-79AA-4E3A-BFDA-FD7E4EF8D0FE"},
19
+ {beforeRunningCommand: "saveActiveFile",
20
+ command:
21
+ "#\n# $Id: FileMerge%20With%20Revision....plist 949 2006-04-21 18:02:26Z aparajita $\n#\n\nrequire_cmd \"${TM_SVN:=svn}\" \"If you have installed svn, then you need to either update your <tt>PATH</tt> or set the <tt>TM_SVN</tt> shell variable (e.g. in Preferences / Advanced)\"\n\nrequire_cmd opendiff \"You must install the Apple developer tools to run FileMerge.\"\n\n# See if the current file is under svn control\nFILE=`basename \"$TM_FILEPATH\"`\nINFO_LINES=`svn info \"$FILE\" 2>&1 | grep \"^Path\\: .*\\$\" | wc -l`\n\nif [ $INFO_LINES -eq 0 ]; then\n\techo \"The current file is not under subversion control\"\n\texit_show_tool_tip\nfi\n\nrevs=$(\"$TM_SVN\" log -q \"$TM_FILEPATH\"|grep -v '^-*$' \\\n\t2> >(CocoaDialog progressbar --indeterminate \\\n\t\t--title \"Diff Revision…\" \\\n\t\t--text \"Retrieving List of Revisions…\" \\\n\t))\n\nrevs=`osascript<<END\n\tset AppleScript's text item delimiters to {\"\\n\",\"\\r\"}\n\ttell app \"SystemUIServer\"\n\t\tactivate\n\t\tset ourList to (every text item of \"$revs\")\n\t\tif the count of items in ourList is 0 then\n\t\t\tdisplay dialog \"No older revisions of file '$(basename \"$TM_FILEPATH\")' found\" buttons (\"OK\")\n\t\t\tset the result to false\n\t\telse\n\t\t\tchoose from list ourList with prompt \"Diff '$(basename \"$TM_FILEPATH\")' with older revision:\"\n\t\tend if\n\tend tell\nEND`\n\n# exit if user canceled\nif [[ $revs = \"false\" ]]; then\n\tosascript -e 'tell app \"TextMate\" to activate' &>/dev/null &\texit_discard\nfi\n\nREV=`echo \"$revs\" | tr '\\r' '\\n' | awk -F '|' '{ print substr($1, 2) }'`\n\"$TM_BUNDLE_SUPPORT/bin/filemerge.sh\" $REV -",
22
+ input: "none",
23
+ keyEquivalent: "^@A",
24
+ name: "Revision...",
25
+ output: "discard",
26
+ uuid: "F0B1A94F-3FC5-47B8-8771-FFF4EF230156"},
27
+ {beforeRunningCommand: "saveActiveFile",
28
+ command:
29
+ "#\n# $Id: FileMerge%20Revisions....plist 949 2006-04-21 18:02:26Z aparajita $\n#\n\nrequire_cmd \"${TM_SVN:=svn}\" \"If you have installed svn, then you need to either update your <tt>PATH</tt> or set the <tt>TM_SVN</tt> shell variable (e.g. in Preferences / Advanced)\"\n\nrequire_cmd opendiff \"You must install the Apple developer tools to run FileMerge.\"\n\n# See if the current file is under svn control\nFILE=`basename \"$TM_FILEPATH\"`\nINFO_LINES=`svn info \"$FILE\" 2>&1 | grep \"^Path\\: .*\\$\" | wc -l`\n\nif [ $INFO_LINES -eq 0 ]; then\n\techo \"The current file is not under subversion control\"\n\texit_show_tool_tip\nfi\n\nrevs=$(\"$TM_SVN\" log -q \"$TM_FILEPATH\"|grep -v '^-*$' \\\n\t2> >(CocoaDialog progressbar --indeterminate \\\n\t\t--title \"Diff Revisions…\" \\\n\t\t--text \"Retrieving List of Revisions…\" \\\n\t))\n\nrevs=`osascript <<END\n\tset theResult to false\n\tset AppleScript's text item delimiters to {\"\\n\",\"\\r\"}\n\ttell app \"SystemUIServer\"\n\t\tactivate\n\t\tset ourList to (every text item of \"$revs\")\n\t\tif the count of items in ourList is 0 then\n\t\t\tdisplay dialog \"No revisions of file '$TM_FILENAME' found\" buttons (\"Continue\") default button 1\n\t\telse\n\t\t\ttell app \"SystemUIServer\" to choose from list (every text item of \"$revs\") with prompt \"Please choose two revisions of '$TM_FILENAME':\" with multiple selections allowed\n\n\t\t\tset theitems to the result\n\t\t\tif theitems is not false then\n\t\t\t\tif the count of items in the theitems is not 2 then\n\t\t\t\t\tdisplay dialog \"Please select exactly two revisions (hold down the Apple key to select multiple revisions).\" buttons (\"Continue\") default button 1\n\t\t\t\telse\n\t\t\t\t\tset theResult to (item 1 of theitems) & return & (item 2 of theitems)\n\t\t\t\tend if\n\t\t\tend if \n\t\tend if\n\t\tset the result to theResult\n\tend tell\nEND`\n\n# exit if user canceled\nif [[ $revs = \"false\" ]]; then\n\tosascript -e 'tell app \"TextMate\" to activate' &>/dev/null &\texit_discard\nfi\n\nrevs=`echo -n \"$revs\" | awk -F '|' 'BEGIN { RS=\"\\r\"} { print substr($1, 2) }'`\nrevs=( $revs )\n\"$TM_BUNDLE_SUPPORT/bin/filemerge.sh\" ${revs[1]} ${revs[0]}\n",
30
+ input: "none",
31
+ keyEquivalent: "^@A",
32
+ name: "Revisions...",
33
+ output: "discard",
34
+ uuid: "9029E141-4526-4ED8-95B2-2A4E19BAD402"},
35
+ {beforeRunningCommand: "saveActiveFile",
36
+ command:
37
+ "#\n# $Id: FileMerge%20With%20Working%20Copy%20(BASE).plist 949 2006-04-21 18:02:26Z aparajita $\n#\n\nrequire_cmd \"${TM_SVN:=svn}\" \"If you have installed svn, then you need to either update your <tt>PATH</tt> or set the <tt>TM_SVN</tt> shell variable (e.g. in Preferences / Advanced)\"\n\nrequire_cmd opendiff \"You must install the Apple developer tools to run FileMerge.\"\n\n# See if the current file is under svn control\nFILE=`basename \"$TM_FILEPATH\"`\nINFO_LINES=`svn info \"$FILE\" 2>&1 | grep \"^Path\\: .*\\$\" | wc -l`\n\nif [ $INFO_LINES -eq 0 ]; then\n\techo \"The current file is not under subversion control\"\n\texit_show_tool_tip\nfi\n\n\"$TM_BUNDLE_SUPPORT/bin/filemerge.sh\" BASE -\n",
38
+ input: "none",
39
+ keyEquivalent: "^@A",
40
+ name: "Working Copy (BASE)",
41
+ output: "discard",
42
+ uuid: "9F8B60D0-0535-4B92-8A02-A5AF47BE5306"}]