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,45 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "saveActiveFile",
4
+ command: "javamate_bootstrap.sh",
5
+ input: "document",
6
+ keyEquivalent: "@r",
7
+ name: "Compile & Run",
8
+ output: "showAsHTML",
9
+ scope: "source.java",
10
+ uuid: "752A2A98-EB02-4A4D-A3D4-522485DBF491"},
11
+ {beforeRunningCommand: "saveActiveFile",
12
+ command: "TM_JAVAMATE_GET_ARGS=1 javamate_bootstrap.sh",
13
+ input: "document",
14
+ keyEquivalent: "~@r",
15
+ name: "Compile & Run (with args)",
16
+ output: "showAsHTML",
17
+ scope: "source.java",
18
+ uuid: "4BC99514-9BF7-4F4F-BD84-7AD07EB81AC3"},
19
+ {beforeRunningCommand: "nop",
20
+ command:
21
+ "#!/usr/bin/env ruby -w\n# Copies the fully qualified class name to the paste/clip board.\n# Used to add the class as an import.\n#\n\npackage, class_name = nil, nil\nSTDIN.each do |line|\n if line =~ /\\s*package ([^;]+);/\n package = $1\n elsif !(line =~ /^\\s*\\/\\*/) && line =~ /\\b(?:class|interface)\\b ([A-Z][^ ]+) /\n class_name = $1\n end\n \n break if package && class_name\nend\n\nif package && class_name\n name = \"\#{package}.\#{class_name}\"\n IO.popen(\"pbcopy\", \"w\") { |pb| pb.print name}\n puts \"Copied '\#{name}'\"\nelse\n puts 'Package and class name not found. Aborting.'\nend\n",
22
+ input: "document",
23
+ keyEquivalent: "@C",
24
+ name: "Copy Fully Qualified Class Name",
25
+ output: "showAsTooltip",
26
+ scope: "source.java",
27
+ uuid: "BED53D9E-7A4D-42A7-8A3F-E633973A6D14"},
28
+ {beforeRunningCommand: "nop",
29
+ command:
30
+ "echo \"<!-- gotAPI.com search widget v2 begin -->\n<body onload=\\\"init();\\\">\n<DIV>\n<STYLE>\n.gaMenu{border:1px solid #505050;background-color:#FAFAFA;padding:0px 5px 0px 5px;}\n.gaHeaderRow{font:bold 8pt Arial;color:#359155;border-top:1px solid #C0C0C0;width:250px;}\n.gaRegularRow,.gaFooterRow{font:8pt Arial;cursor:pointer;}\n.gaSelectedRow{font:8pt Arial;background-color:#c1e0e6;cursor:pointer;}\n</STYLE>\n<SCRIPT><!--\ngaMod='module_java15noui.js';gaTitle='J2SE v1.5 less UI';updateWhenLoaded=false;\nvar gaL=false;function gaInit(){if(gaL)return;gaL=true;var s=document.createElement('script');\ns.type='text/javascript';s.src='http://www.gotapi.com/widgets/compiled/c1_module_java15noui.js.jsz';s.defer='defer';s.defered='yes';\ndocument.getElementById('gaInfo').parentNode.appendChild(s)}function gaSearching(){\ndocument.getElementById('gaWait').style.display='';updateWhenLoaded=true;\ndocument.getElementById('gaInfo').style.display='none'}\n//-->\n</SCRIPT>\n<DIV style='font:bold 10pt Arial'>Quick J2SE v1.5 less UI lookup</DIV>\n<INPUT id=gaSearch size=20 onfocus=\\\"gaInit()\\\" onkeydown=\\\"gaSearching()\\\">\n<DIV id=gaInfo style='font:7pt Arial'>powered by <A href='http://www.gotapi.com' style='padding:0px'>gotAPI.com</A></DIV>\n<DIV id=gaWait style='font:7pt Arial;display:none'>Searching...</DIV>\n</DIV>\n</body>\n<!-- gotAPI.com search widget v2 end -->\"\n\nif [ $TM_CURRENT_WORD ] \nthen\n\techo \"<script>function init() { document.getElementById('gaSearch').value = '$TM_CURRENT_WORD'; document.getElementById('gaSearch').focus(); gaSearching(); }</script>\"\nfi",
31
+ input: "none",
32
+ keyEquivalent: "^h",
33
+ name: "Documentation For Word",
34
+ output: "showAsHTML",
35
+ scope: "source.java",
36
+ uuid: "CE007C8C-9A0B-43B8-AEAF-45613BCD3DF7"},
37
+ {beforeRunningCommand: "saveActiveFile",
38
+ command:
39
+ "#!/usr/bin/env ruby -w\n#\n# WARNING: This script modifies the source of your file!!! No one but\n# yourself is responsible for it losing code.\n#\n# Provides an Eclipse like Organize Imports except it can't\n# add imports. It cleans up the list by filtering out unused\n# imports and alphabetizing the used.\n#\n# * alphabetizes imports placing java.* and javax.* before others.\n# * removes unused imports.\n# * maintains any \"package.*;\" imports and static imports\n# * supports class names starting with lowercase characters (legacy code)\n#\n\nrequire 'pp'\n\nbefore, imports, after, all = [], [], [], []\n\nSTDIN.each do |line|\n all << line\n \n if line =~ /\\s*^import /\n imports << line.strip\n elsif imports.empty? && (before.empty? || !before.last.strip.empty?)\n before << line\n elsif !imports.empty? && after.empty?\n # remove empty lines after the imports and before anything else\n after << line unless line.strip.empty?\n elsif\n after << line\n end\nend\n\nif imports.empty?\n # if there are no imports just output the original lines and exit\n all.each { |line| puts line }\n exit 0\nend\n\nclasses = {}\nimports.each do |import|\n import.scan(/\\s*import\\s+([A-Za-z0-9.]+)\\.([a-zA-Z0-9]+);/) do |package, name|\n classes[name] = { :package => package }\n end\nend\n\nafter.each do |line|\n next if line =~ %r{^\\s*(//|/\\*|\\*)} #comments\n \n # Attempt to find all classes in the file. This is loose in that it\n # accepts words with lowercase letters and identifies them as classes. This is OK\n # since it won't add imports, it's only used to determine if an existing import\n # is valid.\n line.scan(/\\b([A-Za-z]\\w*)(\\b|\\.)/) do |name, boundary|\n classes[name][:used] = 1 if classes[name]\n end\nend\n\n# Based upon the classes found in the file determine the used imports\njava_imports, other_imports = [], []\nclasses.each_pair do |name, info|\n if info[:used]\n array = (info[:package] =~ /^java[x]?\\./) ? java_imports : other_imports\n array << \"import \#{info[:package]}.\#{name};\"\n end\nend\n\n# Include any .* imports and static imports since they can't be validated\nimports.each do |import|\n if import =~ /\\.\\*\\s*;/ || import =~ /^import static /\n array = (import =~ / java[x]?\\./) ? java_imports : other_imports\n array << import\n end\nend\n\n# create section comprised of the import lines attempting to remove duplicate empty lines\nlast_was_empty, import_lines = before.last.strip.empty?, []\n[[\"\"], java_imports.sort, [\"\"], other_imports.sort, [\"\"]].flatten.each do |line|\n # prevent multiple empty lines\n next if last_was_empty && line.strip.empty? \n\n last_was_empty = line.strip.empty? \n import_lines << line\nend\n\n[before, import_lines, after].flatten.each do |line|\n puts line\nend\n",
40
+ input: "selection",
41
+ keyEquivalent: "@O",
42
+ name: "Organize Imports",
43
+ output: "replaceSelectedText",
44
+ scope: "source.java",
45
+ uuid: "E330E2EF-0057-4920-9364-01604C67E664"}]
@@ -0,0 +1,12 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "nop",
4
+ command:
5
+ "echo \"<meta http-equiv='Refresh' content='0;URL=http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/javadoc.html#javadoctags'>\"\n",
6
+ input: "selection",
7
+ keyEquivalent: "^h",
8
+ name: "JavaDoc Tag Reference",
9
+ output: "showAsHTML",
10
+ scope:
11
+ "comment.block.documentation.javadoc, comment.block.documentation.javadoc text.html",
12
+ uuid: "40D7541F-9454-434A-B0CC-A2876FE0DA7F"}]
@@ -0,0 +1,51 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "nop",
4
+ command:
5
+ "#!/usr/bin/env ruby\njs = STDIN.read\nputs <<-HTML\n<!-- howdy -->\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <title>Basic Javascript Test</title>\n <script src=\"file://\#{ENV['TM_SUPPORT_PATH']}/script/prototype.js\" type=\"text/javascript\"></script>\n</head>\n<body>\n<script type=\"text/javascript\" charset=\"utf-8\">\ntry{\n//YOUR STUFF//\n//YOUR STUFF//\n//YOUR STUFF//\n\n\#{js}\n\n//YOUR STUFF//\n//YOUR STUFF//\n//YOUR STUFF//\n}catch(e){ document.write(e); throw(e) };\n</script>\n</body>\n</html>\nHTML\n",
6
+ input: "selection",
7
+ keyEquivalent: "@r",
8
+ name: "Basic Prototype Javascript Test",
9
+ output: "showAsHTML",
10
+ scope: "source.js.prototype",
11
+ uuid: "71838529-2441-4B3C-B9BD-B0CD115DD06C"},
12
+ {beforeRunningCommand: "nop",
13
+ bundleUUID: "467B298F-6227-11D9-BFB1-000D93589AF6",
14
+ command:
15
+ "#!/usr/bin/env ruby\nrequire \"\#{ENV['TM_SUPPORT_PATH']}/lib/codecompletion\"\nTextmateCodeCompletion.simple('Prototype Completions')\n",
16
+ fallbackInput: "line",
17
+ input: "selection",
18
+ keyEquivalent: "~",
19
+ name: "CodeCompletion Javascript Prototype",
20
+ output: "insertAsSnippet",
21
+ scope: "source.js.prototype",
22
+ uuid: "51D8677D-0D57-41A9-8C95-DC909C9F049B"},
23
+ {beforeRunningCommand: "nop",
24
+ command:
25
+ ". \"$TM_SUPPORT_PATH/lib/html.sh\"\n\nredirect \"http://prototypejs.org/api/\"\n",
26
+ input: "none",
27
+ keyEquivalent: "^h",
28
+ name: "Prototype Documentation",
29
+ output: "showAsHTML",
30
+ scope: "source.js.prototype",
31
+ uuid: "8DCA2782-E6DE-4E86-A7F0-C4DA2B93A655"},
32
+ {beforeRunningCommand: "nop",
33
+ command:
34
+ "echo \"<meta http-equiv='Refresh'\n content='0;URL=http://prototypejs.org/api/`echo ${TM_SELECTED_TEXT:-$TM_CURRENT_WORD}|sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`'>\"\n",
35
+ fallbackInput: "word",
36
+ input: "none",
37
+ keyEquivalent: "^h",
38
+ name: "Prototype Documentation for Class",
39
+ output: "showAsHTML",
40
+ scope: "source.js.prototype support.class.prototype",
41
+ uuid: "F9F5D55E-6D17-46C8-8F3E-3A6E610F04FE"},
42
+ {beforeRunningCommand: "nop",
43
+ command:
44
+ "read sel\nif grep <<<${sel:-!} -Esq '[a-zA-Z0-9_\\.]+'\n\tthen exit_show_html \"<meta http-equiv='Refresh' content='0;URLhttp://wiki.script.aculo.us/scriptaculous/search/?page%5Bname%5D=$sel'>\"\n\telse echo \"Nothing to lookup (hint: place the caret on a function name)\"\nfi",
45
+ fallbackInput: "scope",
46
+ input: "selection",
47
+ keyEquivalent: "^H",
48
+ name: "Scriptaculous Documentation for Word",
49
+ output: "showAsHTML",
50
+ scope: "source.js.prototype",
51
+ uuid: "D84F2D85-BE10-416A-BD9D-076AE6FDB436"}]
@@ -0,0 +1,12 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "nop",
4
+ command:
5
+ "#!/usr/bin/php\n<?php\n\n$func = preg_replace('/[\\(\\) ;]/', '', $_ENV['TM_CURRENT_WORD']);\n$scope = trim(preg_replace('/source\\.js\\.yui support\\.function\\.(.*?)\\.js\\.yui/', '$1', $_ENV['TM_SCOPE']));\n$anchor = '#' . $func;\n\nif(preg_match('|support\\.class\\.js\\.yui|', $scope)) {\n\t$scope = $func;\n\t$anchor = '';\n}\n\nswitch($scope) {\n\tcase 'YAHOO':\n\t\t$page = 'YAHOO.html'; break;\n\tcase 'YAHOO_config':\n\t\t$page = 'YAHOO_config.html'; break;\n\tcase 'lang':\n\t\t$page = 'YAHOO.lang.html'; break;\n\tcase 'DataSource':\n\tcase 'Column':\n\tcase 'ColumnEditor':\n\tcase 'ColumnSet':\n\tcase 'DataTable':\n\tcase 'Record':\n\tcase 'RecordSet':\n\tcase 'Sort':\n\tcase 'WidthResizer':\n\t\t$page = $scope . '.html'; break;\n\tcase 'Dom':\n\tcase 'Point':\n\tcase 'Region':\n\tcase 'Event':\n\tcase 'CustomEvent':\n\tcase 'EventProvider':\n\tcase 'Subscriber':\n\tcase 'Connect':\n\tcase 'Anim':\n\tcase 'AnimMgr':\n\tcase 'Bezier':\n\tcase 'ColorAnim':\n\tcase 'Easing':\n\tcase 'Motion':\n\tcase 'Scroll':\n\tcase 'DD':\n\tcase 'DDProxy':\n\tcase 'DDTarget':\n\tcase 'DragDrop':\n\tcase 'DragDropMgr':\n\tcase 'History':\n\tcase 'Config':\n\tcase 'KeyListener':\n\tcase 'Attribute':\n\tcase 'AttributeProvider':\n\tcase 'Element':\n\tcase 'Cookie':\n\tcase 'Get':\n\tcase 'ImageLoader':\n\tcase 'Resize':\n\tcase 'Selector':\n\tcase 'Storage':\n\tcase 'StorageEngineGears':\n\tcase 'StorageEngineHTML5':\n\tcase 'StorageEngineKeyed':\n\tcase 'StorageEngineSWF':\n\tcase 'StorageEvent':\n\tcase 'StorageManager':\n\tcase 'SWFStore':\n\tcase 'StyleSheet':\n\tcase 'YUILoader':\n\t\t$page = 'YAHOO.util.' . $scope . '.html'; break;\n\tcase 'AutoComplete':\n\tcase 'DS_JSArray':\n\tcase 'DS_JSFunction':\n\tcase 'DS_XHR':\n\tcase 'Calendar':\n\tcase 'Calendar2up':\n\tcase 'Calendar_Core':\n\tcase 'CalendarGroup':\n\tcase 'DateMath':\n\tcase 'Module':\n\tcase 'Overlay':\n\tcase 'OverlayManager':\n\tcase 'Tooltip':\n\tcase 'Panel':\n\tcase 'Dialog':\n\tcase 'SimpleDialog':\n\tcase 'ContainerEffect':\n\tcase 'Logger':\n\tcase 'LogMsg':\n\tcase 'LogReader':\n\tcase 'LogWriter':\n\tcase 'Menu':\n\tcase 'MenuItem':\n\tcase 'Menubar':\n\tcase 'MenuBarItem':\n\tcase 'MenuManager':\n\tcase 'MenuModule':\n\tcase 'MenuModuleItem':\n\tcase 'ContextMenu':\n\tcase 'ContextMenuItem':\n\tcase 'Slider':\n\tcase 'SliderThumb':\n\tcase 'Tab':\n\tcase 'TabView':\n\tcase 'Element':\n\tcase 'TreeView':\n\tcase 'Node':\n\tcase 'HTMLNode':\n\tcase 'MenuNode':\n\tcase 'TextNode':\n\tcase 'RootNode':\n\tcase 'TVAnim':\n\tcase 'TVFadeIn':\n\tcase 'TVFadeOut':\n\tcase 'Button':\n\tcase 'ButtonGroup':\n\tcase 'Column':\n\tcase 'ColumnEditor':\n\tcase 'ColumnSet':\n\tcase 'DataTable':\n\tcase 'Record':\n\tcase 'RecordSet':\n\tcase 'Sort':\n\tcase 'WidthResizer':\n\tcase 'SWF':\n\tcase 'DateCellEditor':\n\tcase 'DropdownCellEditor':\n\tcase 'RadioCellEditor':\n\tcase 'ScrollingDataTable':\n\tcase 'TextareaCellEditor':\n\tcase 'TextboxCellEditor':\n\t\t$page = 'YAHOO.widget.' . $scope . '.html'; break;\n\tdefault:\n\t\t$page = ''; $anchor = '';\n}\n\n$url = 'http://developer.yahoo.com/yui/docs/' . $page . $anchor;\necho '<meta http-equiv=\"Refresh\" content=\"0;URL' . $url . '\">';\n\n?>",
6
+ fallbackInput: "word",
7
+ input: "selection",
8
+ keyEquivalent: "^h",
9
+ name: "Documentation for Word / Selection",
10
+ output: "showAsHTML",
11
+ scope: "source.js.yui",
12
+ uuid: "E43BD9CC-90BB-49A0-9644-15300E2A097F"}]
@@ -0,0 +1,12 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "nop",
4
+ command:
5
+ "ref=${TM_SELECTED_TEXT:-$TM_CURRENT_WORD}\nprefix=\n\ncase \"$ref\" in\n\njQuery|each|size|length|get|index)\n\tsection=Core\n\t;;\nextend|noConflict)\n\tprefix=jQuery.\n\tsection=Core\n\t;;\nattr|removeAttr|addClass|removeClass|toggleClass|html|text|val)\n\tsection=Attributes\n\t;;\neq|hasClass|filter|is|map|not|slice|add|children|contents|find|next|nextAll|parent|parents|prev|prevAll|siblings|andSelf|end)\n\tsection=Traversing\n\t;;\nappend|appendTo|prepend|prependTo|after|before|insertAfter|insertBefore|wrap|wrapAll|wrapInner|replaceWith|replaceAll|empty|remove|clone)\n\tsection=Manipulation\n\t;;\ncss|offset|height|width)\n\tsection=CSS\n\t;;\nready|bind|one|trigger|triggerHandler|unbind|hover|toggle|blur|change|click|dblclick|error|focus|keydown|keypress|keyup|load|mousedown|mousemove|mouseout|mouseover|mouseup|resize|scroll|select|submit|unload)\n\tsection=Events\n\t;;\nshow|hide|toggle|slideDown|slideUp|slideToggle|fadeIn|fadeOut|fadeTo|animate|stop|queue|dequeue)\n\tsection=Effects\n\t;;\nload|ajaxComplete|ajaxError|ajaxSend|ajaxStart|ajaxStop|ajaxSuccess|serialize|serializeArray)\n\tsection=Ajax\n\t;;\najax|get|getJSON|getScript|post|ajaxSetup)\n\tprefix=jQuery.\n\tsection=Ajax\n\t;;\ncss|offset|height|width)\n\tsection=Utilities\n\t;;\nesac\n\n[[ -n \"$section\" ]] && exit_show_html \"<meta http-equiv='Refresh' content='0;URL=http://docs.jquery.com/$section/$prefix$ref'>\"\n\necho \"No documentation found.\"",
6
+ fallbackInput: "word",
7
+ input: "selection",
8
+ keyEquivalent: "^h",
9
+ name: "Documentation for Word / Selection",
10
+ output: "showAsTooltip",
11
+ scope: "source.js.jquery support.function.js.jquery",
12
+ uuid: "690646D5-AC38-4EB9-8C41-776E4F55CB59"}]
@@ -0,0 +1,50 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "nop",
4
+ command:
5
+ "#!/usr/bin/env perl\n#\n# Written by John Gruber, taken with permission from:\n# http://daringfireball.net/2007/03/javascript_bookmarklet_builder\n\nuse strict;\nuse warnings;\nuse URI::Escape qw(uri_escape_utf8);\nuse open IO => \":utf8\", # UTF8 by default\n \":std\"; # Apply to STDIN/STDOUT/STDERR\n\nmy $src = do { local $/; <> };\n\n# Zap the first line if there's already a bookmarklet comment:\n$src =~ s{^// ?javascript:.+\\n}{};\nmy $bookmarklet = $src;\n\n$bookmarklet =~ s{^\\s*//.+\\n}{}gm; # Kill comments.\n$bookmarklet =~ s{\\t}{ }gm; # Tabs to spaces\n$bookmarklet =~ s{ +}{ }gm; # Space runs to one space\n$bookmarklet =~ s{^\\s+}{}gm; # Kill line-leading whitespace\n$bookmarklet =~ s{\\s+$}{}gm; # Kill line-ending whitespace\n$bookmarklet =~ s{\\n}{}gm; # Kill newlines\n\n# Escape single- and double-quotes, spaces, control chars, unicode:\n$bookmarklet = \"javascript:\" .\n uri_escape_utf8($bookmarklet, qq('\" \\x00-\\x1f\\x7f-\\xff));\n\nprint \"// $bookmarklet\\n\" . $src;\n\n# Put bookmarklet on clipboard:\n`/bin/echo -n '$bookmarklet' | /usr/bin/pbcopy`;\n",
6
+ input: "selection",
7
+ keyEquivalent: "^H",
8
+ name: "Copy as Bookmarklet to Clipboard",
9
+ output: "replaceSelectedText",
10
+ scope: "source.js",
11
+ uuid: "20E61C43-B81F-4FB9-9362-BFFE668EB9C9"},
12
+ {beforeRunningCommand: "nop",
13
+ command:
14
+ "# index created using: curl -s 'http://devguru.com/technologies/javascript/index.asp'|grep -o '<a href=\"[0-9]*.asp\">[a-z][a-zA-Z]*</a>'|perl -pe 's/<a href=\"([^\"]*)\">([^<]*)<\\/a>/$2\\t$1/'|sort|uniq|gzip >dev_guru_index.gz\n\nref=$(zgrep -w \"^${TM_SELECTED_TEXT:-$TM_CURRENT_WORD}\" \"$TM_BUNDLE_SUPPORT/dev_guru_index.gz\"|cut -f2)\n\n[[ -n \"$ref\" ]] && exit_show_html \"<meta http-equiv='Refresh' content='0;URL=http://devguru.com/technologies/javascript/$ref'>\"\n\necho \"No documentation found.\"",
15
+ fallbackInput: "word",
16
+ input: "selection",
17
+ keyEquivalent: "^h",
18
+ name: "Documentation for Word / Selection",
19
+ output: "showAsTooltip",
20
+ scope: "source.js",
21
+ uuid: "B4874A14-2491-465A-A349-61E4EBCF4700"},
22
+ {beforeRunningCommand: "nop",
23
+ command:
24
+ "cat <<SNIPPET\nfunction ${TM_SELECTED_TEXT:-$TM_CURRENT_WORD}(\\${1:args}) {\n\t\\$0\n}\nSNIPPET",
25
+ fallbackInput: "word",
26
+ input: "selection",
27
+ keyEquivalent: "$\n",
28
+ name: "New Function",
29
+ output: "insertAsSnippet",
30
+ scope: "source.js",
31
+ uuid: "73951799-AC15-40A6-81DB-EC051AB4A033"},
32
+ {beforeRunningCommand: "nop",
33
+ command:
34
+ "cat <<SNIPPET\n${TM_SELECTED_TEXT:-$TM_CURRENT_WORD}: function(\\${1:args}) {\n\t\\$0\n}\\${2:,}\nSNIPPET",
35
+ fallbackInput: "word",
36
+ input: "selection",
37
+ keyEquivalent: "~$\n",
38
+ name: "New Method",
39
+ output: "insertAsSnippet",
40
+ scope: "source.js",
41
+ uuid: "1717B5AE-209B-4548-9155-9E88A7230C1C"},
42
+ {beforeRunningCommand: "nop",
43
+ command:
44
+ "#!/usr/bin/env php\n<?php\n/*\n\nJS Beautifier\n\n(c) 2007, Einars \"elfz\" Lielmanis\n\nhttp://elfz.laacz.lv/beautify/\n\nYou are free to use this in any way you want, in case you find this useful or working for you.\n\nPorted with permission to TextMate by Ale Muñoz.\n\n(Based on v42 of JS Beautifier)\n\n*/\n\nrequire($_ENV['TM_BUNDLE_SUPPORT'] . '/lib/beautify.php'); \n\nif (isset($_ENV['TM_SELECTED_TEXT'])) {\n $input = get_magic_quotes_gpc() ? stripslashes($_ENV['TM_SELECTED_TEXT']) : $_ENV['TM_SELECTED_TEXT'];\n} else {\n $input = file_get_contents('php://stdin');\n}\n\nprint js_beautify($input);\n\n?>",
45
+ input: "selection",
46
+ keyEquivalent: "^H",
47
+ name: "Reformat Document / Selection",
48
+ output: "replaceSelectedText",
49
+ scope: "source.js",
50
+ uuid: "36EC03E9-EFF4-479A-AB90-8DFA16800642"}]
@@ -0,0 +1,423 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "nop",
4
+ command:
5
+ "#!/usr/bin/env ruby\nrequire 'pp'\nrequire ENV[\"TM_SUPPORT_PATH\"] + \"/lib/escape.rb\"\ndata=STDIN.readlines\nl,c = ENV['TM_LINE_NUMBER'].to_i-ENV['TM_INPUT_START_LINE'].to_i, ENV['TM_LINE_INDEX'].to_i\n# pp [l,c]\ncol_no = data[l].slice(/^.{\#{c}}/).scan(\"&\").length\nif col_no == 0 then\n data.each do |line|\n if line =~ /&/ then\n print \" & \" + line\n else\n print line\n end\n end\nelse\n data.each do |line|\n if line =~ /^(?:[^&]*&){\#{col_no}}/ then\n print $& + \" &\" + $'\n else\n print line\n end\n end\nend",
6
+ fallbackInput: "scope",
7
+ input: "selection",
8
+ keyEquivalent: "^~",
9
+ name: "Add Column",
10
+ output: "replaceSelectedText",
11
+ scope: "text.tex.latex meta.data.environment.tabular.latex",
12
+ uuid: "E70BB4A8-2654-4ED3-A187-9BFD024870E7"},
13
+ {beforeRunningCommand: "nop",
14
+ command:
15
+ "if [[ -z $TM_SELECTED_TEXT ]]\n then \n# If the cursor is inside empty braces {}, then offer\n# a list of all bibliography items. In that case, \n# the variable $phrase is not being set.\n\tprev_ch=${TM_CURRENT_LINE:$TM_LINE_INDEX-1:1}\n\tif [[ $prev_ch != '{' ]]\n\t\tthen phrase=$TM_CURRENT_WORD\n\tfi\n else phrase=$TM_SELECTED_TEXT\nfi\nif [[ -z $phrase ]]\n\tthen \n# Case where $phrase is not defined\n\nres=`osascript <<EOF\ntell application \"Bibdesk\"\n\tset publist to get displayed publications of the first item of documents\n\tset candidates to {}\n\t\trepeat with anItem in publist\n\t\tset candidates to candidates & ((cite key of anItem) & \" % \" & (last name of author of anItem) & \", \" & (title of anItem))\n\t\tend repeat\n\tend tell\n\ttell application \"System Events\"\n\t\tactivate\n\t\tchoose from list candidates\n\tend tell\nEOF`\n\telse \n# Case where $phrase is defined\n\nres=`osascript <<EOF\n\ttell application \"Bibdesk\" to set candidates to search for \"$phrase\" with for completion\n\ttell application \"System Events\"\n\t\tactivate\n\t\tchoose from list candidates\n\tend tell\nEOF`\nfi\n# If an error occurs, $? stores the return code.\nerrorcode=$?\n# return control to TextMate\nosascript -e 'tell app \"TextMate\" to activate' &>/dev/null &\n# If user presses Cancel, then applescript returns false. \nif [[ (${res:0:5} == false) || ($errorcode != 0) ]]\n\tthen exit_discard\nfi\n\nres=`perl -pe <<<$res 's/^(.*?)(\\s*)%.*/$1/'` # strip comment\nres=\"${res//\\\\\\\\/\\\\\\\\}\" # \\ -> \\\\\nres=\"${res//$/\\\\$}\" # $ -> \\$\n\necho -n $res\n#if [[ -z $TM_SELECTED_TEXT ]] && [[ -n $phrase ]]\n# then echo -n ${res:${#TM_CURRENT_WORD}}\n# else echo -n ${res}\n#fi\n#",
16
+ fallbackInput: "word",
17
+ input: "selection",
18
+ name: "BibDesk Completion",
19
+ output: "replaceSelectedText",
20
+ scope: "meta.citation.latex",
21
+ uuid: "F80F9C22-ABB8-11D9-957A-000D93589AF6"},
22
+ {beforeRunningCommand: "nop",
23
+ command: "toggle_style.rb -style=textbf",
24
+ fallbackInput: "word",
25
+ input: "selection",
26
+ keyEquivalent: "@b",
27
+ name: "Bold",
28
+ output: "insertAsSnippet",
29
+ scope: "text.tex.latex",
30
+ uuid: "5F0E6093-660C-4018-B664-4264FFA4BDE1"},
31
+ {beforeRunningCommand: "nop",
32
+ command:
33
+ "#!/usr/bin/env ruby\nrequire ENV['TM_SUPPORT_PATH'] + \"/lib/escape.rb\"\nlines = STDIN.readlines\nfi = lines.shift\nla = lines.pop\nlines.map!{|l| e_sn(l)}\n[fi,la].each do |l| l.sub!(/(\\\\(?:begin|end)\\{)\\w+\\*?\\}/) do |m|\n \"\#{$1}$1\\}\"\n end\nend\nl,c = ENV['TM_LINE_NUMBER'].to_i-ENV['TM_INPUT_START_LINE'].to_i, ENV['TM_LINE_INDEX'].to_i-ENV['TM_INPUT_START_LINE_INDEX'].to_i\nlines[l-1].sub!(/^(.{\#{c}})/,\"\\\\1$0\")\nprint [fi,*lines].join(\"\")\nprint la\n",
34
+ fallbackInput: "scope",
35
+ input: "selection",
36
+ keyEquivalent: "^~e",
37
+ name: "Change Current",
38
+ output: "insertAsSnippet",
39
+ scope: "text.tex meta.function.environment",
40
+ uuid: "06BAABEC-B819-4778-94FF-C744CF5DD7CD"},
41
+ {beforeRunningCommand: "nop",
42
+ command:
43
+ "# Source some support functions we need.\n. \"${TM_SUPPORT_PATH}/lib/html.sh\"\n. \"${TM_SUPPORT_PATH}/lib/webpreview.sh\"\n\n# Prepare output window.\nhtml_header 'ChkTeX' \"$FILE\"\n\ntexMate.py chktex 1\n\nhtml_footer\n",
44
+ input: "none",
45
+ keyEquivalent: "^V",
46
+ name: "Check LaTeX (chktex)",
47
+ output: "showAsHTML",
48
+ scope: "text.tex.latex",
49
+ uuid: "B345876F-1B84-4FF5-A19C-A62ADF121EC8"},
50
+ {beforeRunningCommand: "nop",
51
+ command:
52
+ "#!/usr/bin/env ruby\n\n# A reftex-style citation command\n\nrequire ENV[\"TM_SUPPORT_PATH\"] + \"/lib/exit_codes.rb\"\nrequire ENV[\"TM_SUPPORT_PATH\"] + \"/lib/ui.rb\"\nrequire ENV[\"TM_BUNDLE_SUPPORT\"] + \"/lib/LaTeXUtils.rb\"\ninclude LaTeX\nphrase = STDIN.read\nscope = String.new(ENV[\"TM_SCOPE\"])\n\nif !(scope.include? \"meta.citation.latex\")\nitems = [\"c: \\\\cite\",\n\t\t\"t: \\\\citet\",\n\t\t\" \\\\citet*\",\n\t\t\"p: \\\\citep\",\n\t\t\" \\\\citep*\",\n\t\t\"e: \\\\citep[e.g.]\",\n\t\t\"s: \\\\citep[see]\",\n\t\t\"a: \\\\citeauthor\",\n\t\t\" \\\\citeauthor*\",\n\t\t\"y: \\\\citeyear\",\n\t\t\"r: \\\\citeyearpar\",\n\t\t\"f: \\\\footcite\"]\n\nif items.length > 1\n\tchoice = TextMate::UI.menu(items)\n\tTextMate.exit_discard if choice.nil?\n\tchoice = items[choice]\nend\ncphrase = choice.slice(/^[^%]+/).strip\n#cphrase = cphrase[4..-1]\ncphrase.gsub! %r{.*\\\\}, \"\"\nend\n\nbegin\n items = LaTeX.get_citations.map{|i| i.citekey + \" % \"+i.description}\n items = items.grep(/\#{phrase}/i) if phrase != \"\"\n TextMate.exit_discard if items.empty?\n if items.length > 1\n \tchoice = TextMate::UI.menu(items)\n \tTextMate.exit_discard if choice.nil?\n \tchoice = items[choice]\n else\n choice = items[0]\n end\n selection = choice.slice(/^[^%]+/).strip\n if ENV['TM_SCOPE'].match(/citation/) then\n TextMate.exit_insert_snippet(\"\#{selection}$0\")\n else\n TextMate.exit_insert_snippet(\"\\\\\#{cphrase}${1:[$2]}\\{\#{selection}$3\\}$0\")\n end\nrescue RuntimeError => e\n TextMate.exit_insert_text(e.message)\nend\n\n",
53
+ fallbackInput: "word",
54
+ input: "selection",
55
+ keyEquivalent: "^{",
56
+ name: "Citation (Ref-TeX Style)",
57
+ output: "insertAsSnippet",
58
+ scope: "text.tex.latex",
59
+ uuid: "0E51AD42-17AD-4507-950B-AB114408B58D"},
60
+ {beforeRunningCommand: "nop",
61
+ command:
62
+ "#!/usr/bin/env ruby\nrequire ENV[\"TM_SUPPORT_PATH\"] + \"/lib/exit_codes.rb\"\nrequire ENV[\"TM_SUPPORT_PATH\"] + \"/lib/ui.rb\"\nrequire ENV[\"TM_BUNDLE_SUPPORT\"] + \"/lib/LaTeXUtils.rb\"\nphrase = STDIN.read.chomp\ninclude LaTeX\nbegin\n\titems = LaTeX.get_citations.map{|i| i.citekey + \" % \"+i.description}\n items = items.grep(/\#{phrase}/) if phrase != \"\"\n TextMate.exit_discard if items.empty?\n if items.length > 1\n \tchoice = TextMate::UI.menu(items)\n \tTextMate.exit_discard if choice.nil?\n \tchoice = items[choice]\n else\n choice = items[0]\n end\n selection = choice.slice(/^[^%]+/).strip\n if ENV['TM_SCOPE'].match(/citation/) then\n print selection\n else\n TextMate.exit_insert_snippet(\"\\\\\\\\${1:cite}\\{\#{selection}\\}\")\n end\nrescue RuntimeError => e\n TextMate.exit_show_tool_tip(e.message)\nend\n",
63
+ fallbackInput: "word",
64
+ input: "selection",
65
+ keyEquivalent: "~",
66
+ name: "Citation Based on Current Word / Selection…",
67
+ output: "replaceSelectedText",
68
+ scope: "text.tex.latex, meta.citation.latex",
69
+ uuid: "65E2109C-4309-4079-BD25-17D8B31F03CD"},
70
+ {beforeRunningCommand: "nop",
71
+ command:
72
+ "#!/usr/bin/env ruby\nrequire \"\#{ENV['TM_BUNDLE_SUPPORT']}/lib/config_helper.rb\"\n@plist = Config.load\nshortcuts = @plist['commands']\nif ENV['TM_SCOPE'].match('beamer') then\n shortcuts.update(@plist['commands_beamer'])\nend\nname = STDIN.read\nif (shortcuts.has_key?(name)) then\n print shortcuts[name]\nelsif name.nil?\n print \"\\\\${1:cmd}{$2} \"\nelse\n print \"\\\\\" + name + \"{$1} \"\nend\n",
73
+ fallbackInput: "word",
74
+ input: "selection",
75
+ keyEquivalent: "@}",
76
+ name: "Command Based on Current Word / Selection",
77
+ output: "insertAsSnippet",
78
+ scope: "text.tex.latex",
79
+ uuid: "79EBE164-2318-4563-83E5-F337588AAC73"},
80
+ {beforeRunningCommand: "nop",
81
+ captureFormatString: "$3",
82
+ capturePattern: "^([^:]*):([^:]*):(.*)$",
83
+ command:
84
+ "#!/usr/bin/env ruby\nrequire ENV[\"TM_SUPPORT_PATH\"] + \"/lib/exit_codes.rb\"\nrequire ENV[\"TM_SUPPORT_PATH\"] + \"/lib/ui.rb\"\n# require ENV[\"TM_BUNDLE_SUPPORT\"] + \"/lib/LaTeXUtils.rb\"\nphrase = STDIN.read.chomp\n# include LaTeX\nbegin\n items = `\"\#{ENV['TM_SUPPORT_PATH']}\"/bin/LaTeXCommandCompletions.rb`.split(\"\\n\")\n TextMate.exit_discard if items.empty?\n if items.length > 1 then\n choice = TextMate::UI.menu(items)\n TextMate.exit_discard if choice.nil?\n choice = items[choice]\n else\n choice = items[0]\n end\n print choice\nrescue RuntimeError => e\n TextMate.exit_show_tool_tip(e.message)\nend\n",
85
+ fallbackInput: "word",
86
+ fileCaptureRegister: "1",
87
+ input: "selection",
88
+ keyEquivalent: "~",
89
+ lineCaptureRegister: "2",
90
+ name: "Command Completion",
91
+ output: "replaceSelectedText",
92
+ scope:
93
+ "text.tex.latex meta.space-after-command.latex, text.tex.latex support.function.general.tex",
94
+ uuid: "97FDB90C-2CEE-439E-8B01-F892B4ED5E5D"},
95
+ {beforeRunningCommand: "nop",
96
+ command:
97
+ "#!/usr/bin/env ruby\nrequire ENV['TM_SUPPORT_PATH'] +'/lib/escape.rb'\nprint \"\\\\\\\\${1:emph}{\#{if s = ENV['TM_SELECTED_TEXT'] then e_sn(s) else '$2' end}}\"",
98
+ fallbackInput: "word",
99
+ input: "none",
100
+ keyEquivalent: "^W",
101
+ name: "Command — \\command{…}",
102
+ output: "insertAsSnippet",
103
+ scope: "text.tex.latex",
104
+ uuid: "C3C8F3A3-C90E-4DA3-8AB3-DB7BDA73355C"},
105
+ {beforeRunningCommand: "nop",
106
+ command:
107
+ "#!/usr/bin/env ruby\ndef escape(str)\n esc_str = str.gsub(/\\t/,\" & \") + \"\\\\\\\\\"\n esc_str.gsub(/(\\d)E([+-]?)(\\d{1,2})/) do |m|\n \"\#{$1} $\\\\times 10^{\#{$2 ==\"-\" ? \"-\" : \"\"}\#{$3.to_i}}$\"\n end\nend\n# First we change all space sequences of length $TM_TAB_SIZE to tabs.\ndata=STDIN.read.strip.gsub(/ {\#{ENV['TM_TAB_SIZE'].to_i}}/,\"\\t\").split(\"\\n\")\nfirst_line = data.shift\ncount=first_line.scan(/\\t/).length+1;\nresult=[\"\\\\begin{tabular}{\#{\"c\" * count}}\"];\nhl = \"\\\\hline\"\nresult << hl << escape(first_line) << hl \nresult += data.map{|line| escape(line.strip)}\nresult << hl << \"\\\\end{tabular}\"\nputs result.join(\"\\n\")",
108
+ input: "selection",
109
+ keyEquivalent: "^@T",
110
+ name: "Convert Selection to Table",
111
+ output: "replaceSelectedText",
112
+ scope: "text.tex.latex",
113
+ uuid: "0D4F5C42-210C-4C03-8378-D92FB5D323AF"},
114
+ {beforeRunningCommand: "nop",
115
+ command:
116
+ "#!/usr/bin/env ruby\n\nrequire \"\#{ENV['TM_SUPPORT_PATH']}/lib/exit_codes.rb\"\nrequire \"\#{ENV['TM_SUPPORT_PATH']}/lib/ui.rb\"\n\nif ENV.has_key?('TM_SELECTED_TEXT') then\n result=ENV['TM_SELECTED_TEXT']\nelse\n result = TextMate::UI.request_string(\n :title => 'LaTeX Array Creation', \n :prompt => 'Number of rows and columns:',\n :default => '6 4',\n :button1 => 'Create'\n )\n TextMate.exit_discard if result.nil?\nend\n# print \"Result: \#{result}\"\nm = /(\\d+)\\D+(\\d+)/.match(result.to_s)\nexit if m.nil?\nrows, columns = m[1].to_i, m[2].to_i\n# print \"Rows: \#{rows}\"\n# print \"Columns: \#{columns}\"\nprint \"\\\\begin{tabular}{\"\ncolumns.times {print(\"c\")}\nputs \"}\"\nputs \"\\\\hline\\n\"\nn=0\nrows.times do |r|\n (columns-1).times do |c|\n n+=1\n print \"${\#{n}:r\#{r+1}c\#{c+1}} & \"\n end\n n+=1\n print \"${\#{n}:r\#{r+1}c\#{columns}}\\\\\\\\\\\\\\\\\\n\"\n puts \"\\\\hline\\n\"\nend\nputs \"\\\\end{tabular}\"\n",
117
+ input: "none",
118
+ keyEquivalent: "^@T",
119
+ name: "Create Table",
120
+ output: "insertAsSnippet",
121
+ scope: "text.tex.latex",
122
+ uuid: "7190DABA-FE8B-4DC7-9D31-3A727A8647CD"},
123
+ {beforeRunningCommand: "nop",
124
+ command:
125
+ "# View documentation for Latex package\n# take advantage of the texdoctk index as well as the texdoc catalog directory.\n. \"${TM_SUPPORT_PATH}/lib/html.sh\"\n. \"${TM_SUPPORT_PATH}/lib/webpreview.sh\"\n\nM=${TM_LATEX_MASTER:=$TM_FILEPATH}\nDIR=`dirname \"$M\"`\nFILE=`basename \"$M\"`\n\nTEXDOCTKDB=`kpsewhich --progname=texdoctk --format='other text files' texdoctk.dat`\nexport TEXDOCTKDB\n\nTMTEXMAIN=`kpsewhich --expand-path '$TEXMFMAIN'`\nexport TMTEXMAIN\n\n# May need to add more lines to accomodate different tex distros.\n[ -z $TM_LATEX_DOCBASE ] && TM_LATEX_DOCBASE=`kpsewhich --expand-path '$TEXMFTE'` # teTeX\n[ -z $TM_LATEX_DOCBASE ] && TM_LATEX_DOCBASE=`kpsewhich --expand-path '$TEXMFTL'` # gwTeX \n[ -z $TM_LATEX_DOCBASE ] && TM_LATEX_DOCBASE=`kpsewhich --expand-path '$TEXMFDOCDIR'` # TeXLive\nexport TM_LATEX_DOCBASE\n\nTM_LATEX_HELP_CATALOG=`find $TMTEXMAIN/../ -name entries -print`\nexport TM_LATEX_HELP_CATALOG\n\nTMTEXDOCDIRS=`kpsewhich --expand-path '$TEXDOCS'`\nexport TMTEXDOCDIRS\n\n# Switch to the right directory.\ncd \"$TM_PROJECT_DIRECTORY\"\ncd \"$DIR\"\n\nhtml_header 'Package Documentation'\necho '<p><small>Hint: Cursor on package name shows doc for package. Otherwise show package doc browser.</small></p>'\nPyTeXdoc.py",
126
+ input: "none",
127
+ keyEquivalent: "^h",
128
+ name: "Documentation for Package",
129
+ output: "showAsHTML",
130
+ scope: "text.tex.latex",
131
+ uuid: "1A12B844-4074-4655-A45C-18AC8D943267"},
132
+ {beforeRunningCommand: "nop",
133
+ command:
134
+ "AccountFile=\"$HOME/Library/Preferences/com.macromates.textmate.latex_config.plist\"\nif [[ ! -e \"$AccountFile\" ]]; then\n cat \"$TM_BUNDLE_SUPPORT/latex.config\" > \"$AccountFile\"\nfi\nopen txmt://open?url=file://$AccountFile",
135
+ input: "none",
136
+ name: "Edit Configuration File",
137
+ output: "discard",
138
+ scope: "text.tex.latex",
139
+ uuid: "D10F1CAC-BF1D-456D-B1E5-6AA5E3DD40ED"},
140
+ {beforeRunningCommand: "nop",
141
+ command:
142
+ "#!/usr/bin/env ruby\nSUPPORT = ENV['TM_BUNDLE_SUPPORT']\nrequire ENV['TM_SUPPORT_PATH'] + '/lib/ui'\nrequire ENV['TM_SUPPORT_PATH'] + '/lib/exit_codes'\nrequire SUPPORT + '/lib/config_helper.rb'\n@plist = Config.load\nshortcuts = @plist['environments']\nlshortcuts = @plist['labeled_environments']\nif ENV['TM_SCOPE'].match('beamer') then\n shortcuts.update(@plist['environments_beamer'])\n lshortcuts.update(@plist['labeled_environments_beamer'])\nend\nname = STDIN.read\ncmd = nil\nif name == \"\" then\n arr = [\"custom…\",nil] + (shortcuts.keys+lshortcuts.keys).sort\n ind = TextMate::UI.menu(arr)\n TextMate.exit_discard if ind.nil?\n if ind == 0 then\n\tname = \"\"\n else\n name = arr[ind]\n end\nend\noptions = Array.new\nfor key in shortcuts.keys do\n if shortcuts[key]['triggers'].index(name) then\n options << {:cmd => key, :setting => :no_label, :content => shortcuts[key]['content']}\n end\nend\nfor key in lshortcuts.keys do\n if lshortcuts[key]['triggers'].index(name) then\n options << {:cmd => key, :setting => :label, :content => lshortcuts[key]['content']}\n end\nend\nopt = case options.length\nwhen 0\n nil\nwhen 1\n options[0]\nelse\n ind = TextMate::UI.menu(options.map { |opt| opt[:cmd] })\n ind.nil? ? nil : options[ind]\nend\nif !opt.nil? then\n print \"\\\\begin{\#{opt[:cmd]}}\"\n print \"\\n\" if opt[:setting] == :no_label\n print opt[:content] || \"\\t$0\"\n print \"\\n\\\\end{\#{opt[:cmd]}}\"\nelsif name == \"\"\n print \"\\\\begin{${1:env}}\\n\\t$0\\n\\\\end{${1:env}}\"\nelse\n print \"\\\\begin{\#{name}}\\n\\t$0\\n\\\\end{\#{name}}\"\nend\n",
143
+ fallbackInput: "word",
144
+ input: "selection",
145
+ keyEquivalent: "@{",
146
+ name: "Environment Based on Current Word / Selection",
147
+ output: "insertAsSnippet",
148
+ scope: "text.tex.latex",
149
+ uuid: "521C9FC0-0B61-48C8-A76B-60A4AE8DF449"},
150
+ {beforeRunningCommand: "nop",
151
+ command:
152
+ "# This command inserts any missing \\end{environment} at the caret position\n# It is analogous with Insert Closing Tag for HTML.\n\nruby -- \"$TM_SUPPORT_PATH/bin/checknest.rb\" '\\\\begin(?>\\{(.+?)\\})' '\\\\end(?>\\{(.+?)\\})' '\\end{$1}' -n$TM_LINE_NUMBER",
153
+ input: "document",
154
+ keyEquivalent: "~@.",
155
+ name: "Environment Closer — \\end{…}",
156
+ output: "afterSelectedText",
157
+ scope: "text.tex.latex",
158
+ uuid: "D52CA669-A6DA-4CF1-BDF5-522D591D7E7D"},
159
+ {beforeRunningCommand: "nop",
160
+ command:
161
+ ". \"$TM_SUPPORT_PATH/lib/webpreview.sh\"\nhtml_header \"LaTeX Bundle Help\" \"LaTeX\"\n\"$TM_SUPPORT_PATH/lib/markdown_to_help.rb\" \"$TM_BUNDLE_SUPPORT/help.markdown\"\nhtml_footer\n",
162
+ dontFollowNewOutput: true,
163
+ input: "none",
164
+ name: "Help",
165
+ output: "showAsHTML",
166
+ scope: "text.tex.latex",
167
+ uuid: "37B43A9E-AD5E-11D9-97B0-000D93B6E43C"},
168
+ {beforeRunningCommand: "nop",
169
+ command: "toggle_style.rb -style=emph",
170
+ fallbackInput: "word",
171
+ input: "selection",
172
+ keyEquivalent: "@i",
173
+ name: "Italic",
174
+ output: "insertAsSnippet",
175
+ scope: "text.tex.latex",
176
+ uuid: "4F91DE78-EA89-48A0-98E4-7A1CB64C7D87"},
177
+ {beforeRunningCommand: "nop",
178
+ command: "texMate.py sync 1",
179
+ input: "none",
180
+ keyEquivalent: "^~@o",
181
+ name: "Jump to Current Line in Viewer",
182
+ output: "discard",
183
+ scope: "text.tex.latex",
184
+ uuid: "D8B2D295-AD3C-11D9-BD97-000D93B6E43C"},
185
+ {beforeRunningCommand: "nop",
186
+ command:
187
+ "#!/usr/bin/env ruby\nrequire \"\#{ENV['TM_SUPPORT_PATH']}/lib/exit_codes\"\nrequire \"\#{ENV['TM_BUNDLE_SUPPORT']}/lib/config_helper.rb\"\n@plist = Config.load\nshortcutHash = @plist['symbols']\ncurrentWord = STDIN.read\nif (shortcutHash.has_key?(currentWord)) then\n print shortcutHash[currentWord]\nelse\n TextMate.exit_discard\nend",
188
+ fallbackInput: "word",
189
+ input: "selection",
190
+ keyEquivalent: "@\\",
191
+ name: "LaTeX Symbol Based on Current Word / Selection",
192
+ output: "replaceSelectedText",
193
+ scope: "text.tex.latex, text.bibtex",
194
+ uuid: "A7D549C1-055E-4181-84F2-BA713EB66341"},
195
+ {beforeRunningCommand: "nop",
196
+ command:
197
+ "#!/usr/bin/ruby\n# This command is meant to be used for quick insertion of your LaTeX template files. They should be placed\n# in the directory ~/Library/Application Support/LaTeX/Templates. A pop-up is provided, letting you pick\n# the template file you want inserted, and then it gets inserted as a snippet. See\n# http://macromates.com/textmate/manual/snippets#snippets for what this implies.\nrequire ENV['TM_SUPPORT_PATH'] + '/lib/osx/plist'\nrequire ENV['TM_SUPPORT_PATH'] + '/lib/exit_codes.rb'\nrequire ENV['TM_SUPPORT_PATH'] + '/lib/ui.rb'\nrequire ENV['TM_SUPPORT_PATH'] + '/lib/escape.rb'\npath = ENV['HOME'] + '/Library/Application Support/LaTeX/Templates/'\n[{\"a\" => \"2\", \"b\" => \"5\"}, {\"a\" => \"1\", \"b\" => \"4\"}].to_plist\nunless FileTest.directory?(path) then\n TextMate.exit_show_tool_tip \"You need to create the directory \#{path} first and\\n populate it with your favorite LaTeX template files before using this command.\"\nelse\n files = `ls \"\#{path}\"`.split(\"\\n\")\n TextMate.exit_show_tool_tip \"You need to populate the template directory with some template files!\" if files.empty?\n entries = files.map do |file|\n content = File.read(path + file)\n { \"filename\" => file, \"content\" => content}\n end\nparams = { \"entries\" => entries }\n dialog = ENV['DIALOG']\n return_plist = `\"\#{dialog}\" -cmp \#{e_sh params.to_plist} \#{e_sh(ENV['TM_BUNDLE_SUPPORT'] + '/nibs/LaTeXTemplate.nib')}`\n return_hash = OSX::PropertyList::load(return_plist)['result']\n\tTextMate.exit_discard if return_hash.nil?\n\ttext = return_hash['returnArgument'][0].scan(/\\n|.+\\n?/)\n first_line = text[0]\n# The user can force the template to be interpreted as a snippet, by\n# adding this line: #!TEX style=snippet\n if first_line.match(/^%!TEX\\s+style\\s*=\\s*snippet\\s*/) then\n TextMate.exit_insert_snippet(text[1..-1])\n else\n print(text.join(\"\"))\n end\nend\n",
198
+ input: "none",
199
+ name: "LaTeX Template",
200
+ output: "afterSelectedText",
201
+ scope: "text.tex.latex",
202
+ tabTrigger: "temp",
203
+ uuid: "0E901597-FFB6-4D81-A57D-821A9B5089A5"},
204
+ {beforeRunningCommand: "nop",
205
+ captureFormatString: "$3",
206
+ capturePattern: "^([^:]*):([^:]*):(.*)$",
207
+ command:
208
+ "#!/usr/bin/env ruby\nrequire ENV[\"TM_SUPPORT_PATH\"] + \"/lib/exit_codes.rb\"\nrequire ENV[\"TM_SUPPORT_PATH\"] + \"/lib/ui.rb\"\nrequire ENV[\"TM_BUNDLE_SUPPORT\"] + \"/lib/LaTeXUtils.rb\"\nphrase = STDIN.read.chomp\ninclude LaTeX\nbegin\n items = LaTeX.get_labels\n items = items.grep(/\#{phrase}/) if phrase != \"\"\n TextMate.exit_discard if items.empty?\n if items.length > 1 then\n choice = TextMate::UI.menu(items)\n TextMate.exit_discard if choice.nil?\n choice = items[choice]\n else\n choice = items[0]\n end\n selection = choice.slice(/^[^%]+/).strip\n if ENV['TM_SCOPE'].match(/label/) then\n print selection\n elsif selection.match(/^eq(n)?:/)\n TextMate.exit_insert_snippet \"\\\\\\\\${1:eqref}\\{\#{selection}\\}\"\n else\n TextMate.exit_insert_snippet(\"\\\\\\\\${1:ref}\\{\#{selection}\\}\")\n end\nrescue RuntimeError => e\n TextMate.exit_show_tool_tip(e.message)\nend\n",
209
+ fallbackInput: "word",
210
+ fileCaptureRegister: "1",
211
+ input: "selection",
212
+ keyEquivalent: "~",
213
+ lineCaptureRegister: "2",
214
+ name: "Label Based on Current Word / Selection…",
215
+ output: "replaceSelectedText",
216
+ scope: "text.tex.latex, meta.reference.label.latex",
217
+ uuid: "9A3FE182-40AB-4980-AB6C-32DDA22DE41D"},
218
+ {beforeRunningCommand: "nop",
219
+ command:
220
+ "#!/usr/bin/env ruby\n#\n# Produces the right enumeration command for each environment.\n# For instance in a itemize environment, will produce \\item\n# while in a questions environment will produce \\question\n#\nlinesbefore = ENV['TM_LINE_NUMBER'].to_i-1\ncolumns = ENV['TM_COLUMN_NUMBER'].to_i-1\ntextArray = STDIN.readlines\nmyStr = textArray[0..linesbefore-1].join\nmyStr << textArray[linesbefore].slice(0..columns-1)\ntheArray = Array.new\ntheRegexp = Regexp.new('(\\\\\\begin\\{|\\\\\\end\\{)(\\w+[*]?)(\\})')\ntoInsertNoBeamer = { \"itemize\" => \"\\\\item $1\", \"enumerate\" => \"\\\\item $1\", \"description\" => \"\\\\item[${1:label}] ${2:description}\", \"parts\" => \"\\\\part $1\", \"questions\" => \"\\\\question $1\" }\ntoInsertBeamer = { \"itemize\" => \"\\\\item<${1:+-}> $2\", \"enumerate\" => \"\\\\item<${1:+-}> $2\", \"description\" => \"\\\\item<+->[${1:label}] ${2:description}\", \"overprint\" => \"\\\\onslide<${1:+}>\\n\\t$2\", \"overlayarea\" => \"\\\\only<${1:+}> $2\" }\ntoInsert = /beamer/.match(ENV['TM_SCOPE'].to_s) ? toInsertBeamer : toInsertNoBeamer\nresults = myStr.scan(theRegexp)\nif (results)\n results.each{|e|\n if (e[0] == \"\\\\begin\\{\")\n theArray << e[1]\n elsif (e[0] == \"\\\\end\\{\")\n if (theArray.last == e[1])\n theArray.pop\n else\n puts(\"Badly nested begin-end blocks\")\n exit 1\n end\n else\n puts(\"Problem:\",e[0])\n exit 1\n end\n }\n envName = theArray.pop\n str_to_add = \"\\n\"\n if (/\\\\begin\\{/.match(textArray[linesbefore]))\n str_to_add << \"\\t\"\n end\n if (toInsert.has_key?(envName))\n str_to_add << toInsert[envName]\n elsif [\"cases\",\"align\",\"aligned\",\"gather\",\"gathered\",\"split\"].include?(envName)\n str_to_add = \"\\\\\\\\\\\\\\\\\" + str_to_add\n else\n str_to_add << \"\\\\item \"\n end\n print str_to_add\nelse\n print(\"\\n\")\nend",
221
+ input: "document",
222
+ keyEquivalent: "",
223
+ name: "New Item",
224
+ output: "insertAsSnippet",
225
+ scope: "text.tex.latex meta.function.environment",
226
+ uuid: "948DDCF2-0EB5-46A3-B970-09597D268BAF"},
227
+ {beforeRunningCommand: "nop",
228
+ command:
229
+ "${TM_RUBY:-ruby} <<\"RUBY\"\nrequire \"\#{ENV['TM_SUPPORT_PATH']}/lib/escape.rb\"\nrequire \"\#{ENV['TM_BUNDLE_SUPPORT']}/lib/LaTeXUtils.rb\"\n\nmaster = LaTeX.master(ENV['TM_LATEX_MASTER'] || ENV['TM_FILEPATH'])\n\nDir.chdir(File.dirname(master)) unless master.nil?\n\ninput = ENV['TM_SELECTED_TEXT'] || ENV['TM_CURRENT_LINE']\noptions = input.scan(/\\\\(?:include|input|includegraphics|lstinputlisting)(?:%.*\\n[ \\t]*)?(?>\\[.*?\\])?(?:%.*\\n[ \\t]*)?(?>\\{(.*?)\\})/m)\nif options.empty?\n\tprint \"Did not find any appropriate item to open in \#{ENV['TM_SELECTED_TEXT'] ? \"selection\" : \"current line\" }\"\nelse\n options[0].each{|el| el.gsub!(/(^\\\")?(\\\"$)?/, '')} \n filepath = `kpsewhich \#{e_sh options[0]}`.chomp\n if filepath.empty?\n print \"Could not locate file for path `\#{options[0]}'\"\n else\n `open \#{e_sh filepath}`\n end\nend\nRUBY\n",
230
+ fallbackInput: "line",
231
+ input: "selection",
232
+ keyEquivalent: "",
233
+ name: "Open Included Item",
234
+ output: "showAsTooltip",
235
+ scope: "text.tex.latex meta.include",
236
+ uuid: "B3E6DCF7-6323-4229-94D7-59996BDF07EC"},
237
+ {beforeRunningCommand: "nop",
238
+ command:
239
+ "${TM_RUBY:-ruby} <<\"RUBY\"\nrequire \"\#{ENV['TM_SUPPORT_PATH']}/lib/escape.rb\"\nrequire \"\#{ENV['TM_BUNDLE_SUPPORT']}/lib/LaTeXUtils.rb\"\n\nmaster = LaTeX.master(ENV['TM_LATEX_MASTER'] || ENV['TM_FILEPATH'])\n\nif master\n `open -a TextMate \#{e_sh master}`\nelse\n echo 'No master file was defined.'\nend\nRUBY\n",
240
+ fallbackInput: "line",
241
+ input: "selection",
242
+ keyEquivalent: "^@l",
243
+ name: "Open Master File",
244
+ output: "showAsTooltip",
245
+ scope: "text.tex.latex",
246
+ uuid: "BC36A3C7-F9B2-47D4-83FB-2BEB93F14889"},
247
+ {beforeRunningCommand: "nop",
248
+ command:
249
+ "# just to remind you of some useful environment variables\n# see Help / Environment Variables for the full list\nconfigure.py",
250
+ input: "none",
251
+ keyEquivalent: "~@,",
252
+ name: "Preferences…",
253
+ output: "showAsTooltip",
254
+ scope: "text.tex.latex",
255
+ uuid: "8F41368E-4E01-41A9-8FCF-19D4A4032AE2"},
256
+ {beforeRunningCommand: "nop",
257
+ command:
258
+ "#!/usr/bin/env ruby\nrequire 'pp'\nlines = STDIN.read\ns = lines.slice!(/^.*?\\}\\s*\\n/)\n# Place any \\hline's not on a line of their own in their own line\nlines.gsub!(/(\\\\hline\\s*)(?!\\n)/,\"\\\\hline\\\\\\\\\\\\\\\\\")\nlines = lines.split(/\\\\\\\\/)\ndata = lines.map do |line|\n line.split(/&/).map{|i| i.strip}\nend\ncols = data.map{|i| i.length}.max\nwidths = []\ncols.times do |i|\n widths << data.inject(0) do |maximum,line| if line.length <= i then maximum else [maximum,line[i].length].max end end\nend\npattern = widths.map{|i| \"%\#{i}s\"}.join(\" & \")\nprint s.chomp\nprev=false\nfor line in data do\n print(prev ? \"\\\\\\\\\\n\" : \"\\n\")\n if line.length <= 1 then\n print line\n prev=false\n else\n line.fill(\"\",(line.length+1)..cols)\n printf(pattern,*line)\n prev=true\n end\nend\nprint \"\\n\"\n",
259
+ fallbackInput: "scope",
260
+ input: "selection",
261
+ keyEquivalent: "^&",
262
+ name: "Reformat",
263
+ output: "replaceSelectedText",
264
+ scope: "text.tex.latex meta.data.environment.tabular.latex",
265
+ uuid: "FB412036-2D62-41A3-BDFA-F897933132AA"},
266
+ {beforeRunningCommand: "nop",
267
+ command:
268
+ "#!/usr/bin/env ruby\nrequire 'pp'\nrequire ENV[\"TM_SUPPORT_PATH\"] + \"/lib/escape.rb\"\ndata=STDIN.readlines\nl,c = ENV['TM_LINE_NUMBER'].to_i-ENV['TM_INPUT_START_LINE'].to_i, ENV['TM_LINE_INDEX'].to_i\ncol_no = data[l].slice(/^.{\#{c}}/).scan(\"&\").length\nif col_no == 0 then\n data.each do |line|\n if line =~ /^[^&]*&(.*)/ then\n print $1\n else\n print line\n end\n end\nelse\n data.each do |line|\n if line =~ /^([^&]*&){\#{col_no}}(?:[^&]*&)(.*\\n?)/ then\n print $1 + $2\n else\n print line\n end\n end\nend",
269
+ fallbackInput: "scope",
270
+ input: "selection",
271
+ keyEquivalent: "^~",
272
+ name: "Remove Column",
273
+ output: "replaceSelectedText",
274
+ scope: "text.tex.latex meta.data.environment.tabular.latex",
275
+ uuid: "6E70284B-1694-46F5-BA99-FC3CC22705C6"},
276
+ {beforeRunningCommand: "nop",
277
+ command:
278
+ "# just to remind you of some useful environment variables\n# see Help / Shell Variables for the full list\n. \"${TM_SUPPORT_PATH}/lib/html.sh\"\n. \"${TM_SUPPORT_PATH}/lib/webpreview.sh\"\n\n# Prepare output window.\nhtml_header 'Run BibTeX'\n\ntexMate.py bibtex 1",
279
+ input: "none",
280
+ name: "Run BibTeX",
281
+ output: "showAsHTML",
282
+ scope: "text.tex.latex",
283
+ uuid: "4C05FB6C-AA32-4217-8788-D840D49E82CD"},
284
+ {beforeRunningCommand: "nop",
285
+ command:
286
+ "# just to remind you of some useful environment variables\n# see Help / Shell Variables for the full list\n. \"${TM_SUPPORT_PATH}/lib/html.sh\"\n. \"${TM_SUPPORT_PATH}/lib/webpreview.sh\"\n\n# Prepare output window.\nhtml_header 'Run MakeIndex'\n\ntexMate.py index 1\n",
287
+ input: "none",
288
+ name: "Run Makeindex",
289
+ output: "showAsHTML",
290
+ scope: "text.tex.latex",
291
+ uuid: "0A27EDBA-2C7C-44CF-B2B0-1B3B7BF8D7D6"},
292
+ {beforeRunningCommand: "nop",
293
+ command:
294
+ "#!/usr/bin/env ruby\nrequire ENV['TM_SUPPORT_PATH'] + '/lib/textmate.rb';\nrequire ENV['TM_SUPPORT_PATH'] + '/lib/ui.rb';\n\nmodule TextMate\n module UI\n class << self\n\n def request_file2(options = Hash.new,&block)\n\t options[\"string-output\"] = \"\"\n options['button1'] ||= \"OK\"\n options['button2'] ||= \"Cancel\"\n options[\"title\"] = options[:title] || \"Select File\"\n options[\"informative-text\"] = options[:prompt] || \"\"\n options[\"text\"] = options[:default] || \"\"\n return cocoa_dialog(\"fileselect\", options,&block)\n end\n\n end\n end\nend\n\nstartDir = ENV['TM_DIRECTORY'];\n\ndoc = STDIN.read();\nmaster = TextMate::UI.request_file2(\"with-directory\" => startDir, \"with-extensions\" => \".tex\");\n\nif master != nil then\n puts '%!TEX root = ' + master[0]\nend\nputs doc",
295
+ input: "document",
296
+ name: "Set Master File",
297
+ output: "replaceDocument",
298
+ scope: "text.tex.latex",
299
+ uuid: "B5E78339-A4E5-4D61-9E4A-B7D725ABA10A"},
300
+ {beforeRunningCommand: "nop",
301
+ command:
302
+ "#!/usr/bin/env ruby\nrequire ENV['TM_SUPPORT_PATH'] + '/lib/textmate.rb'\nrequire ENV['TM_SUPPORT_PATH'] + '/lib/ui.rb'\n\ndoc = STDIN.read();\nengine = TextMate::UI.request_string :prompt => \"Enter the typesetting command you want to use \\n(without parameters)\"\n\nif engine != nil then\n puts '%!TEX TS-program = ' + engine\nend\nputs doc",
303
+ input: "document",
304
+ name: "Set Typesetting Engine",
305
+ output: "replaceDocument",
306
+ scope: "text.tex.latex",
307
+ uuid: "87D82153-769C-45B9-A33C-F29C9121B67E"},
308
+ {beforeRunningCommand: "nop",
309
+ command:
310
+ "#!/usr/bin/env ruby\nrequire ENV['TM_SUPPORT_PATH'] + '/lib/textmate.rb'\nrequire ENV['TM_SUPPORT_PATH'] + '/lib/ui.rb'\n\ndoc = STDIN.read();\n\nparms = TextMate::UI.request_string :prompt => \"Enter the parameters for the typesetting engine\"\n\nif parms != nil then\n puts '%!TEX TS-options = ' + parms\nend\nputs doc",
311
+ input: "document",
312
+ name: "Set Typesetting Parameters",
313
+ output: "replaceDocument",
314
+ scope: "text.tex.latex",
315
+ uuid: "85A5D4B0-1657-40E8-881A-8DA0381D2977"},
316
+ {beforeRunningCommand: "nop",
317
+ captureFormatString: "$3",
318
+ capturePattern: "^([^:]*):([^:]*):(.*)$",
319
+ command:
320
+ "#!/usr/bin/env ruby\nrequire ENV[\"TM_SUPPORT_PATH\"] + \"/lib/exit_codes.rb\"\nrequire ENV[\"TM_SUPPORT_PATH\"] + \"/lib/ui.rb\"\nrequire ENV[\"TM_BUNDLE_SUPPORT\"] + \"/lib/LaTeXUtils.rb\"\nphrase = STDIN.read.chomp\nTextMate.exit_show_tool_tip(\"No current ref found\") if phrase == \"\"\ninclude LaTeX\nbegin\n items = FileScanner.label_scan(ENV[\"TM_LATEX_MASTER\"] || ENV[\"TM_FILEPATH\"]).find_all{|i| i.label.match(/\#{phrase}/)}\n print items[0].context(10, true)\nrescue Exception => e\n TextMate.exit_insert_text(e.message)\nend\n",
321
+ fallbackInput: "word",
322
+ fileCaptureRegister: "1",
323
+ input: "selection",
324
+ keyEquivalent: "^@l",
325
+ lineCaptureRegister: "2",
326
+ name: "Show Label as Tool Tip",
327
+ output: "showAsTooltip",
328
+ scope: "meta.reference.label.latex",
329
+ uuid: "EA8D1116-805A-4583-A028-F5328DDE4B75"},
330
+ {beforeRunningCommand: "nop",
331
+ command:
332
+ "#!/usr/bin/env ruby\nrequire ENV['TM_SUPPORT_PATH'] + '/lib/exit_codes.rb'\nrequire ENV['TM_SUPPORT_PATH'] + '/lib/escape.rb'\nrequire ENV['TM_SUPPORT_PATH'] + '/lib/web_preview.rb'\nrequire \"\#{ENV['TM_BUNDLE_SUPPORT']}/lib/LaTeXUtils.rb\"\nhtml_header \"LaTeX Document Outline\", \"LaTeX\"\nREGEX = /\\\\(part|chapter|section|subsection|subsubsection|paragraph|subparagraph)\\*?(?:%.*\\n[ \\t]*)?(?:(?>\\[(.*?)\\])|\\{([^{}]*(?:\\{[^}]*\\}[^}]*?)*)\\})/\nINCLUDE_REGEX = /\\\\(?:input|include)(?:%.*\\n[ \\t]*)?(?>\\{(.*?)\\})/\nNON_COMMENT_REGEX = /^([^%]+$|(?:[^%]|\\\\%)*)(?=%|$)/\nclass String\n def adjust_end(new_piece)\n new_form = self.sub(/[^\\/]*$/,new_piece)\n new_form += \".tex\" unless new_form.match(/\\.tex$/)\n new_form\n end\nend\nclass Section < String\n def <=>(other_part)\n parts = [\"root\",\"part\",\"chapter\",\"section\",\"subsection\",\"subsubsection\",\"paragraph\",\"subparagraph\"]\n return parts.index(self) <=> parts.index(other_part)\n end\n def <(other_part)\n (self<=>other_part) == -1\n end\nend\ndef outline_points(filename)\n points = []\n if filename.is_a?(String) then\n data = File.read(filename)\n name = \"url=file://\" + e_url(filename) + \"&\"\n else\n data = filename.read\n name = \"\"\n end\n data.split(\"\\n\").each_with_index do |line, i|\n line.match(NON_COMMENT_REGEX)\n line = $1 || \"\"\n points << [name,i+1,$1,$2 || $3] if line.match(REGEX)\n points += outline_points(filename.adjust_end($1)) if line.match(INCLUDE_REGEX)\n end\n points\nend\nfile = LaTeX.master(ENV['TM_LATEX_MASTER'] || ENV['TM_FILEPATH'])\nif file.nil?\n file = STDIN\nelse\n file = File.expand_path(file, File.dirname(ENV['TM_FILEPATH']))\nend\nrequire 'pp'\npoints = outline_points(file)\n# sec = Section.new(\"section\")\ncurrent = [Section.new(\"root\")]\nstring = []\npoints.each do |file,line,part,title|\n # pp [part,sec <=> part]\n case current.last <=> part\n when 1\n(current.pop; string << \"\\t\" * current.length + \"</ol>\") while current.last > part\n when -1\n string << \"\\t\" * current.length + \"<ol>\"\n current << Section.new(part)\n end\n string << \"\\t\" * current.length + \"<li><a href=\\\"txmt://open?\#{file}line=\#{line}\\\">\#{title}</a></li>\"\nend\n(current.pop; string << \"\\t\" * current.length + \"</ol>\") while current.last != \"root\"\nputs string.join(\"\\n\")\nhtml_footer",
333
+ fallbackInput: "word",
334
+ input: "document",
335
+ keyEquivalent: "@O",
336
+ name: "Show Outline",
337
+ output: "showAsHTML",
338
+ scope: "text.tex.latex",
339
+ uuid: "5AED5DFA-F084-4F12-8A06-D51C78E91D05"},
340
+ {beforeRunningCommand: "nop",
341
+ command: "toggle_style.rb -style=textsc",
342
+ fallbackInput: "word",
343
+ input: "selection",
344
+ keyEquivalent: "@K",
345
+ name: "Small Caps",
346
+ output: "insertAsSnippet",
347
+ scope: "text.tex.latex",
348
+ uuid: "9B3C2535-5CB7-43B8-9A8E-BCAB1085A245"},
349
+ {beforeRunningCommand: "nop",
350
+ command: "LaTeXTidy.pl",
351
+ input: "document",
352
+ keyEquivalent: "^H",
353
+ name: "Tidy",
354
+ output: "replaceDocument",
355
+ scope: "text.tex.latex",
356
+ uuid: "DF9F9DF7-5F85-11D9-97D0-000D9332809C"},
357
+ {beforeRunningCommand: "nop",
358
+ command:
359
+ "#!/usr/bin/env ruby\nrequire ENV['TM_SUPPORT_PATH'] + \"/lib/escape.rb\"\ndata = STDIN.read\nlocation = [[ENV['TM_LINE_NUMBER'].to_i,ENV['TM_LINE_INDEX'].to_i]]\n# location = [[8,10],[6,10],[5,4]]\nclass String\n def split_after_row(row)\n lines = self.scan(/.*\\n?/)\n before = lines[0..row-1].join(\"\")\n after = lines[row..-1].join(\"\")\n return [before,after]\n end\n def fix_back\n stack = []\n before_lines = self.scan(/.*\\n?/)\n processed = []\n until before_lines.empty?\n line = before_lines.pop\n case line\n when /^(.*\\\\begin\\{)([^\\}\\*]*)(\\*?)(\\}.*\\n?)$/\n if stack.empty? then\n replace = $1 + $2 + ($3==\"\" ? \"*\" : \"\") + $4\n return [:begin, before_lines.join(\"\") + replace + processed.reverse.join(\"\")]\n else\n stack.pop\n processed << line\n end\n when /^(.*\\\\end\\{)([^\\}\\*]*)(\\*?)(\\}.*\\n?)$/\n stack.push \"\"\n processed << line\n when /^(.*\\\\(?:chapter|part|(?:sub){0,2}section|(?:sub)?paragraph))(\\*?)(\\{.*\\n?)$/\n replace = $1 + ($2==\"\" ? \"*\" : \"\") + $3\n return [:section, before_lines.join(\"\") + replace + processed.reverse.join(\"\")]\n else\n processed << line\n end\n end\n raise \"Unexpected!\"\n end\n def fix_forward\n stack = []\n after_lines = self.scan(/.*\\n?/)\n processed = []\n until after_lines.empty?\n line = after_lines.shift\n case line\n when /^(.*\\\\begin\\{)([^\\}\\*]*)(\\*?)(\\}.*\\n?)$/\n stack.push \"\"\n processed << line\n when /^(.*\\\\end\\{)([^\\}\\*]*)(\\*?)(\\}.*\\n?)$/\n if stack.empty? then\n replace = $1 + $2 + ($3==\"\" ? \"*\" : \"\") + $4\n return [:end, processed.join(\"\") + replace + after_lines.join(\"\")]\n else\n stack.pop\n processed << line\n end\n else\n processed << line\n end\n end\n raise \"Unexpected!\"\n end\nend\n\nlocation.each do |row,col|\n before, after = data.split_after_row(row)\n status, before = before.fix_back\n unless status == :section then\n status, after = after.fix_forward\n end\n if col == 0 then\n before_lines = before.scan(/.*\\n?/)\n before_lines.pop\n after = before_lines.pop + after\n before = before_lines.join(\"\")\n else\n before_lines = before.scan(/.*\\n?/)\n\tbefore_lines.pop\n line = before_lines.pop\n before = before_lines.push(line[0..col-1]).join(\"\")\n after = line[col..-1] + after\n end\n print e_sn(before) + \"\\$0\" + e_sn(after)\nend\n",
360
+ fallbackInput: "document",
361
+ input: "selection",
362
+ keyEquivalent: "^*",
363
+ name: "Toggle Starred",
364
+ output: "insertAsSnippet",
365
+ scope: "text.tex.latex",
366
+ uuid: "37C520F9-A379-4BBC-AF62-22F7C0B63955"},
367
+ {beforeRunningCommand: "nop",
368
+ command:
369
+ ". \"${TM_SUPPORT_PATH}/lib/html.sh\"\n. \"${TM_SUPPORT_PATH}/lib/webpreview.sh\"\n\n# Prepare output window.\nhtml_header 'Clean Auxiliary files'\n\ntexMate.py clean 1",
370
+ input: "none",
371
+ keyEquivalent: "^~\x7F",
372
+ name: "Trash aux Files",
373
+ output: "showAsHTML",
374
+ scope: "text.tex.latex",
375
+ uuid: "F330276E-C4B2-11D9-B15D-000D93B6E43C"},
376
+ {beforeRunningCommand: "saveActiveFile",
377
+ bundleUUID: "46788DCE-6227-11D9-BFB1-000D93589AF6",
378
+ command:
379
+ "#!/usr/bin/env ruby\n# coding: utf-8\n\nrequire ENV[\"TM_SUPPORT_PATH\"] + \"/lib/tm/process\"\nrequire ENV[\"TM_SUPPORT_PATH\"] + \"/lib/tm/htmloutput\"\nrequire ENV[\"TM_SUPPORT_PATH\"] + \"/lib/tm/save_current_document\"\nrequire ENV[\"TM_SUPPORT_PATH\"] + \"/lib/tm/require_cmd\"\n\n# To enable the typesetting of unsaved documents, you must change the “Save” setting of\n# this command to “Current File” and add the variable TM_LATEX_AUTOSAVE to TextMate's\n# Shell Variables preferences. Be warned that your document must be encoded as UTF-8 if\n# you excercise this option — becauseTextMate.save_current_document cannot know the file\n# encoding you prefer.\n\nTextMate.save_current_document unless ENV[\"TM_LATEX_AUTOSAVE\"].nil?\n\nTextMate.require_cmd(\"kpsewhich\")\n\ntexMate = ENV[\"TM_BUNDLE_SUPPORT\"] + \"/bin/texMate.py\"\nengine_version = TextMate::Process.run(texMate, \"version\")\nTextMate::HTMLOutput.show(:title => \"Typesetting “\#{ENV[\"TM_DISPLAYNAME\"] || File.basename(ENV[\"TM_FILEPATH\"])}”…\", :sub_title => engine_version) do |io|\n TextMate::Process.run(texMate, 'latex', '1', :interactive_input => false) do |line|\n\tio << line\n end\nend\n::Process.exit($?.exitstatus)\n",
380
+ dontFollowNewOutput: false,
381
+ input: "document",
382
+ keyEquivalent: "@r",
383
+ name: "Typeset & View (PDF)",
384
+ output: "showAsHTML",
385
+ scope: "text.tex",
386
+ uuid: "6177C3DA-C580-11D9-B649-000393D4B5C8"},
387
+ {beforeRunningCommand: "nop",
388
+ command: "toggle_style.rb -style=texttt",
389
+ fallbackInput: "word",
390
+ input: "selection",
391
+ keyEquivalent: "@k",
392
+ name: "Typewriter",
393
+ output: "insertAsSnippet",
394
+ scope: "text.tex.latex",
395
+ uuid: "17A74DB2-7B65-4083-A091-AD51023DA8D7"},
396
+ {beforeRunningCommand: "nop",
397
+ command: "toggle_style.rb -style=underline",
398
+ fallbackInput: "word",
399
+ input: "selection",
400
+ keyEquivalent: "@u",
401
+ name: "Underline",
402
+ output: "insertAsSnippet",
403
+ scope: "text.tex.latex",
404
+ uuid: "4473F4D4-A7A1-4EA5-B418-0A194A7A3DE1"},
405
+ {beforeRunningCommand: "nop",
406
+ command: "toggle_style.rb -style=verb",
407
+ fallbackInput: "word",
408
+ input: "selection",
409
+ keyEquivalent: "~@k",
410
+ name: "Verb",
411
+ output: "insertAsSnippet",
412
+ scope: "text.tex.latex",
413
+ uuid: "6B5C138A-1951-4AD2-BE95-52E498661029"},
414
+ {beforeRunningCommand: "saveActiveFile",
415
+ bundleUUID: "46788DCE-6227-11D9-BFB1-000D93589AF6",
416
+ command:
417
+ "# See the end of $watch_script (defined below) for changelog and version information.\n\nwatch_script=\"$TM_BUNDLE_SUPPORT\"/bin/latex_watch.pl\n\nfile=\"${TM_LATEX_MASTER:-$TM_FILEPATH}\"\ndirname=\"$(dirname \"$file\")\"\nbasename=\"$(basename \"$file\" .tex)\"\n\n# Check whether file is already being watched\npid_file=\"$dirname/.$basename.watcher_pid\"\nif [ -f \"$pid_file\" ]; then\n\tif [ 2 -eq $(/bin/ps -p $(cat \"$pid_file\") | /usr/bin/wc -l) ]\n\tthen\n\t\tok=$(CocoaDialog ok-msgbox \\\n\t\t\t--title \"LaTeX Watch: File already watched\" \\\n\t\t\t--text \"Stop watching?\" \\\n\t\t\t--informative-text \"The file '$file' is already being watched. Shall I stop watching it?\")\n\t\tif [ \"$ok\" -eq 1 ]; then\n\t\t\tkill $(cat \"$pid_file\")\n\t\tfi\n\t\texit\n\tfi\nfi\n\n# Make sure we can find the watch script...\nif [ \\! -f \"$watch_script\" ]; then\n\tCocoaDialog msgbox \\\n\t\t--button1 Cancel \\\n\t\t--title \"LaTeX Watch error\" \\\n\t\t--text \"Could not find script\" \\\n\t\t--informative-text \"The file '$watch_script' could not be found. Make sure you have installed it in the right place.\"\n\texit 1\nfi\n\n# ... and the Perl interpreter\nif [ -x \"/usr/bin/perl\" ]; then\n\t# We prefer /usr/bin/perl, because we want to use Foundation.pm\n\tperl=\"/usr/bin/perl\"\nelse\n\ttype perl || {\n\t\tCocoaDialog msgbox \\\n\t\t\t--button1 Cancel \\\n\t\t\t--title \"LaTeX Watch error\" \\\n\t\t\t--text \"Could not find Perl\" \\\n\t\t\t--informative-text \"I could not locate the perl executable! Make sure it's in your PATH ($PATH).\"\n\t\texit 1\n\t}\n\tperl=perl\nfi\n\n# Spawn progress bar. Ironically it's quite a CPU hog, so give it a low\n# scheduling priority.\nnice -n 20 CocoaDialog progressbar --indeterminate --title 'LaTeX Watch' --text 'LaTeX Watch: Compiling document' </dev/console &>/dev/null &\nprogressbar_pid=$(jobs -p %%)\ndisown %%\n\nwatch_script_opts=\"--textmate-pid $PPID --progressbar-pid $progressbar_pid\"\nif [ -n \"$TM_LATEX_WATCH_DEBUG\" ]; then\n\twatch_script_opts=\"$watch_script_opts --debug\"\nfi\n\n\"$perl\" \"$watch_script\" $watch_script_opts \"$file\" &>/dev/console &\njobs -p %% > \"$pid_file\"\n",
418
+ input: "none",
419
+ keyEquivalent: "^@w",
420
+ name: "Watch document",
421
+ output: "discard",
422
+ scope: "text.tex.latex",
423
+ uuid: "4BB11B68-A0F5-4670-A0B9-B3982D10A54B"}]