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,206 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "nop",
4
+ command:
5
+ "#!/usr/bin/env ruby\nrequire \"\#{ENV['TM_BUNDLE_SUPPORT']}/tminclude.rb\"\nTextMate::Includes.instance.include_command\n",
6
+ input: "none",
7
+ keyEquivalent: "^@i",
8
+ name: "Add Persistent Include",
9
+ output: "afterSelectedText",
10
+ scope: "text.html",
11
+ uuid: "0D814247-7A00-46EE-A2A4-45FBBF4B1181"},
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.go!",
16
+ fallbackInput: "line",
17
+ input: "selection",
18
+ keyEquivalent: "~",
19
+ name: "CodeCompletion HTML Attributes",
20
+ output: "insertAsSnippet",
21
+ scope:
22
+ "text.html punctuation.definition.tag -source, text.html meta.tag -entity.other.attribute-name -source",
23
+ uuid: "CBD82CF3-74E9-4E7A-B3F6-9348754EB5AA"},
24
+ {beforeRunningCommand: "nop",
25
+ bundleUUID: "467B298F-6227-11D9-BFB1-000D93589AF6",
26
+ command:
27
+ "#!/usr/bin/env ruby\nrequire \"\#{ENV['TM_SUPPORT_PATH']}/lib/codecompletion\"\nTextmateCodeCompletion.go!\n",
28
+ fallbackInput: "line",
29
+ input: "selection",
30
+ keyEquivalent: "~",
31
+ name: "CodeCompletion HTML Tags",
32
+ output: "insertAsSnippet",
33
+ scope:
34
+ "text.html -entity.other.attribute-name -string.quoted, invalid.illegal.incomplete.html",
35
+ uuid: "3463E85F-F500-49A0-8631-D78ED85F9D60"},
36
+ {beforeRunningCommand: "nop",
37
+ command:
38
+ "#!/usr/bin/env ruby\n$KCODE = 'U'\n\n$char_to_entity = { }\nFile.open(\"\#{ENV['TM_BUNDLE_SUPPORT']}/entities.txt\").read.scan(/^(\\d+)\\t(.+)$/) do |key, value|\n $char_to_entity[[key.to_i].pack('U')] = value\nend\n\ndef encode (text)\n text.gsub(/[^\\x00-\\x7F]|[\"'<>&]/) do |ch|\n ent = $char_to_entity[ch]\n ent ? \"&\#{ent};\" : sprintf(\"&#x%02X;\", ch.unpack(\"U\")[0])\n end\nend\n\nprint encode(STDIN.read)\n",
39
+ fallbackInput: "character",
40
+ input: "selection",
41
+ keyEquivalent: "@&",
42
+ name: "Convert Character / Selection to Entities",
43
+ output: "replaceSelectedText",
44
+ scope: "text.html",
45
+ uuid: "3DD8406C-A116-11D9-A5A2-000D93C8BE28"},
46
+ {beforeRunningCommand: "nop",
47
+ command:
48
+ "#!/usr/bin/env ruby\n$KCODE = 'U'\n\n$char_to_entity = { }\nFile.open(\"\#{ENV['TM_BUNDLE_SUPPORT']}/entities.txt\").read.scan(/^(\\d+)\\t(.+)$/) do |key, value|\n $char_to_entity[[key.to_i].pack('U')] = value\nend\n\ndef encode (text)\n text.gsub(/[^\\x00-\\x7F]|[\"'<>&]/) do |ch|\n ent = $char_to_entity[ch]\n ent ? \"&\#{ent};\" : sprintf(\"&#x%02X;\", ch.unpack(\"U\")[0])\n end\nend\n\nSTDIN.read.scan(/(?x)\n\n ( <\\?(?:[^?]*|\\?(?!>))*\\?>\n | <!-- (?m:.*?) -->\n | <\\/? (?i:a|abbr|acronym|address|applet|area|b|base|basefont|bdo|big|blockquote|body|br|button|caption|center|cite|code|col|colgroup|dd|del|dfn|dir|div|dl|dt|em|fieldset|font|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|hr|html|i|iframe|img|input|ins|isindex|kbd|label|legend|li|link|map|menu|meta|noframes|noscript|object|ol|optgroup|option|p|param|pre|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|ul|var)\\b\n (?:[^>\"']|\"[^\"]*\"|'[^']*')*\n >\n | &(?:[a-zA-Z0-9]+|\\#[0-9]+|\\#x[0-9a-fA-F]+);\n )\n |([^<&]+|[<&])\n\n /x) do |tag, text|\n print tag.to_s, encode(text.to_s)\nend\n",
49
+ fallbackInput: "character",
50
+ input: "selection",
51
+ keyEquivalent: "@&",
52
+ name: "Convert Character / Selection to Entities Excl. Tags",
53
+ output: "replaceSelectedText",
54
+ scope: "text.html",
55
+ uuid: "43C9E8AE-3E53-4B82-A1AF-56697BB3EF09"},
56
+ {beforeRunningCommand: "nop",
57
+ command:
58
+ "#!/usr/bin/env ruby\n$KCODE = 'U'\n\n$entity_to_char = { }\nFile.open(\"\#{ENV['TM_BUNDLE_SUPPORT']}/entities.txt\").read.scan(/^(\\d+)\\t(.+)$/) do |key, value|\n $entity_to_char[value] = [key.to_i].pack('U')\nend\n\nres = STDIN.read.gsub(/&(?:([a-z0-9]+)|#([0-9]+)|#x([0-9A-F]+));/i) do |m|\n if $1 then\n $entity_to_char[$1] || m\n else\n [$2 ? $2.to_i : $3.hex].pack(\"U\")\n end\nend\n\nprint res\n",
59
+ fallbackInput: "line",
60
+ input: "selection",
61
+ keyEquivalent: "@&",
62
+ name: "Decode Entities in Line / Selection",
63
+ output: "replaceSelectedText",
64
+ scope: "text.html",
65
+ uuid: "C183920D-A126-11D9-A5A2-000D93C8BE28"},
66
+ {beforeRunningCommand: "nop",
67
+ command:
68
+ "#!/usr/bin/env ruby\n#\n# Lookup current word as a tag name on w3c.org\n#\n# The mapping below was generated using:\n# ruby -e 'STDOUT << \"$tags = {\\n\" << `curl -s http://www.w3.org/TR/html4/index/elements.html`.scan(%r{<td title=\"Name\"><a href=\"(.*?)\">\\n?(.*?)</a></td>}).map { |e| \" \\\"\#{e[1]}\\\"\".ljust(14) + \" => \\\"\#{e[0]}\\\"\" }.join(\",\\n\") << \"\\n}\\n\"'\n\n$tags = {\n \"A\" => \"../struct/links.html#edef-A\",\n \"ABBR\" => \"../struct/text.html#edef-ABBR\",\n \"ACRONYM\" => \"../struct/text.html#edef-ACRONYM\",\n \"ADDRESS\" => \"../struct/global.html#edef-ADDRESS\",\n \"APPLET\" => \"../struct/objects.html#edef-APPLET\",\n \"AREA\" => \"../struct/objects.html#edef-AREA\",\n \"B\" => \"../present/graphics.html#edef-B\",\n \"BASE\" => \"../struct/links.html#edef-BASE\",\n \"BASEFONT\" => \"../present/graphics.html#edef-BASEFONT\",\n \"BDO\" => \"../struct/dirlang.html#edef-BDO\",\n \"BIG\" => \"../present/graphics.html#edef-BIG\",\n \"BLOCKQUOTE\" => \"../struct/text.html#edef-BLOCKQUOTE\",\n \"BODY\" => \"../struct/global.html#edef-BODY\",\n \"BR\" => \"../struct/text.html#edef-BR\",\n \"BUTTON\" => \"../interact/forms.html#edef-BUTTON\",\n \"CAPTION\" => \"../struct/tables.html#edef-CAPTION\",\n \"CENTER\" => \"../present/graphics.html#edef-CENTER\",\n \"CITE\" => \"../struct/text.html#edef-CITE\",\n \"CODE\" => \"../struct/text.html#edef-CODE\",\n \"COL\" => \"../struct/tables.html#edef-COL\",\n \"COLGROUP\" => \"../struct/tables.html#edef-COLGROUP\",\n \"DD\" => \"../struct/lists.html#edef-DD\",\n \"DEL\" => \"../struct/text.html#edef-del\",\n \"DFN\" => \"../struct/text.html#edef-DFN\",\n \"DIR\" => \"../struct/lists.html#edef-DIR\",\n \"DIV\" => \"../struct/global.html#edef-DIV\",\n \"DL\" => \"../struct/lists.html#edef-DL\",\n \"DT\" => \"../struct/lists.html#edef-DT\",\n \"EM\" => \"../struct/text.html#edef-EM\",\n \"FIELDSET\" => \"../interact/forms.html#edef-FIELDSET\",\n \"FONT\" => \"../present/graphics.html#edef-FONT\",\n \"FORM\" => \"../interact/forms.html#edef-FORM\",\n \"FRAME\" => \"../present/frames.html#edef-FRAME\",\n \"FRAMESET\" => \"../present/frames.html#edef-FRAMESET\",\n \"H1\" => \"../struct/global.html#edef-H1\",\n \"H2\" => \"../struct/global.html#edef-H2\",\n \"H3\" => \"../struct/global.html#edef-H3\",\n \"H4\" => \"../struct/global.html#edef-H4\",\n \"H5\" => \"../struct/global.html#edef-H5\",\n \"H6\" => \"../struct/global.html#edef-H6\",\n \"HEAD\" => \"../struct/global.html#edef-HEAD\",\n \"HR\" => \"../present/graphics.html#edef-HR\",\n \"HTML\" => \"../struct/global.html#edef-HTML\",\n \"I\" => \"../present/graphics.html#edef-I\",\n \"IFRAME\" => \"../present/frames.html#edef-IFRAME\",\n \"IMG\" => \"../struct/objects.html#edef-IMG\",\n \"INPUT\" => \"../interact/forms.html#edef-INPUT\",\n \"INS\" => \"../struct/text.html#edef-ins\",\n \"ISINDEX\" => \"../interact/forms.html#edef-ISINDEX\",\n \"KBD\" => \"../struct/text.html#edef-KBD\",\n \"LABEL\" => \"../interact/forms.html#edef-LABEL\",\n \"LEGEND\" => \"../interact/forms.html#edef-LEGEND\",\n \"LI\" => \"../struct/lists.html#edef-LI\",\n \"LINK\" => \"../struct/links.html#edef-LINK\",\n \"MAP\" => \"../struct/objects.html#edef-MAP\",\n \"MENU\" => \"../struct/lists.html#edef-MENU\",\n \"META\" => \"../struct/global.html#edef-META\",\n \"NOFRAMES\" => \"../present/frames.html#edef-NOFRAMES\",\n \"NOSCRIPT\" => \"../interact/scripts.html#edef-NOSCRIPT\",\n \"OBJECT\" => \"../struct/objects.html#edef-OBJECT\",\n \"OL\" => \"../struct/lists.html#edef-OL\",\n \"OPTGROUP\" => \"../interact/forms.html#edef-OPTGROUP\",\n \"OPTION\" => \"../interact/forms.html#edef-OPTION\",\n \"P\" => \"../struct/text.html#edef-P\",\n \"PARAM\" => \"../struct/objects.html#edef-PARAM\",\n \"PRE\" => \"../struct/text.html#edef-PRE\",\n \"Q\" => \"../struct/text.html#edef-Q\",\n \"S\" => \"../present/graphics.html#edef-S\",\n \"SAMP\" => \"../struct/text.html#edef-SAMP\",\n \"SCRIPT\" => \"../interact/scripts.html#edef-SCRIPT\",\n \"SELECT\" => \"../interact/forms.html#edef-SELECT\",\n \"SMALL\" => \"../present/graphics.html#edef-SMALL\",\n \"SPAN\" => \"../struct/global.html#edef-SPAN\",\n \"STRIKE\" => \"../present/graphics.html#edef-STRIKE\",\n \"STRONG\" => \"../struct/text.html#edef-STRONG\",\n \"STYLE\" => \"../present/styles.html#edef-STYLE\",\n \"SUB\" => \"../struct/text.html#edef-SUB\",\n \"SUP\" => \"../struct/text.html#edef-SUP\",\n \"TABLE\" => \"../struct/tables.html#edef-TABLE\",\n \"TBODY\" => \"../struct/tables.html#edef-TBODY\",\n \"TD\" => \"../struct/tables.html#edef-TD\",\n \"TEXTAREA\" => \"../interact/forms.html#edef-TEXTAREA\",\n \"TFOOT\" => \"../struct/tables.html#edef-TFOOT\",\n \"TH\" => \"../struct/tables.html#edef-TH\",\n \"THEAD\" => \"../struct/tables.html#edef-THEAD\",\n \"TITLE\" => \"../struct/global.html#edef-TITLE\",\n \"TR\" => \"../struct/tables.html#edef-TR\",\n \"TT\" => \"../present/graphics.html#edef-TT\",\n \"U\" => \"../present/graphics.html#edef-U\",\n \"UL\" => \"../struct/lists.html#edef-UL\",\n \"VAR\" => \"../struct/text.html#edef-VAR\"\n}\n\ndef request_tag_name (default_tag = \"body\")\n res, tag = %x{ \"$TM_SUPPORT_PATH/bin/CocoaDialog.app/Contents/MacOS/CocoaDialog\" \\\n inputbox --float --title 'Documentation for Tag' \\\n --informative-text 'What tag would you like to lookup?' \\\n --text '\#{default_tag}' --button1 'Lookup' --button2 'Cancel' \\\n --button3 'Show All Tags'\n }.split(\"\\n\")\n case res.to_i\n when 1 then $tags[tag.to_s.upcase] || \"elements.html\"\n when 2 then abort \"<script>window.close()</script>\"\n when 3 then \"elements.html\"\n end\nend\n\nline, col = ENV[\"TM_CURRENT_LINE\"].to_s, ENV[\"TM_LINE_INDEX\"].to_i\ntag = line =~ /\\A.{0,\#{col}}<\\s*(\\w+)/ ? $1 : ENV[\"TM_CURRENT_WORD\"].to_s\n\npath = $tags[tag.upcase] || request_tag_name(tag)\nurl = \"http://www.w3.org/TR/html4/index/\" + path\nputs \"<meta http-equiv='Refresh' content='0;URL=\#{url}'>\"\n",
69
+ input: "none",
70
+ keyEquivalent: "^h",
71
+ name: "Documentation for Tag",
72
+ output: "showAsHTML",
73
+ scope: "text.html, text.html entity.name.tag",
74
+ uuid: "637CEA2B-578C-429C-BB74-30E8D42BFA22"},
75
+ {beforeRunningCommand: "nop",
76
+ command:
77
+ "#!/usr/bin/env ruby\n\ndef e_js(str)\n str.gsub(/(?=[\\\\\"])/, '\\\\').gsub(/\\n/, '\\n').gsub(/[@.\\/]/) { |ch| sprintf('\\\\%03o', ch[0]) }\nend\n\ndef rot_13(str)\n str.tr('A-Za-z', 'N-ZA-Mn-za-m')\nend\n\nprint %{<script type=\"text/javascript\">document.write(\n\"\#{e_js(rot_13(STDIN.read))}\".replace(/[a-zA-Z]/g, function(c){return String.fromCharCode((c<=\"Z\"?90:122)>=(c=c.charCodeAt(0)+13)?c:c-26);}));\n</script>}\n",
78
+ fallbackInput: "line",
79
+ input: "selection",
80
+ keyEquivalent: "@&",
81
+ name: "Encrypt Line / Selection (ROT 13)",
82
+ output: "replaceSelectedText",
83
+ scope: "text.html",
84
+ uuid: "9B13543F-8356-443C-B6E7-D9259B604927"},
85
+ {beforeRunningCommand: "nop",
86
+ command:
87
+ ". \"$TM_SUPPORT_PATH/lib/webpreview.sh\"\nhtml_header \"About Persistent Includes\" \"HTML\"\nMarkdown.pl <<'EOF'|SmartyPants.pl\nThe \"Add Persistent Include\" command allows you to embed an external file inside your HTML document. This inclusion is handled by TextMate itself. Once you've added the include statement, use the \"Update Document\" command to refresh any included files.\n\nIncluding Files\n---------------\n\nAn inclusion is done using a special HTML comment:\n\n <!-- #tminclude \"footer.html\" -->\n <!-- end tminclude -->\n\nOnce you've updated the document, the contents are pulled inside the inclusion markup:\n\n <!-- #tminclude \"footer.html\" -->\n <div class=\"footer\">Copyright (c) 2006, WebDesignCorp.</div>\n <!-- end tminclude -->\n\nNote: Included documents are also processed for additional inclusions and placeholders.\n\nInclude Parameters\n------------------\n\nYou can optionally specify parameters for the included file. Parameters are provided following the filename.\n\n <!-- #tminclude \"header.html\" #title#=\"Home Page\" -->\n <!-- end tminclude -->\n\nWith a header.html file that looks like this:\n\n\t<h1 class=\"header\">#title#</h1>\n\nProducing:\n\n <!-- #tminclude \"header.html\" #title#=\"Home Page\" -->\n\t<h1 class=\"header\">Home Page</h1>\n <!-- end tminclude -->\n\nPlaceholders\n------------\n\nThe update command also processes document \"placeholders\". Placeholders are written in this format:\n\n\t#variable#\n\nThe following placeholders are available:\n\n<table class=\"pro_table\" border=\"0\" width=\"100%\" cellpadding=\"5\" cellspacing=\"0\">\n<tr><th>Placeholder</th><th>Example Result</th></tr>\n<tr><td><tt>#abbrevdate# </tt></td><td>Abbreviated date: Sun, Aug 15, 2006</td></tr>\n<tr><td><tt>#basename# </tt></td><td>Filename without extension.</td></tr>\n<tr><td><tt>#compdate# </tt></td><td>Compact date: 15-Aug-06</td></tr>\n<tr><td><tt>#creationdate# </tt></td><td>Creation date: 15-Aug-06</td></tr>\n<tr><td><tt>#creationtime# </tt></td><td>Creation time: 1:20 PM</td></tr>\n<tr><td><tt>#docsize# </tt></td><td>Resulting document length in bytes</td></tr>\n<tr><td><tt>#dont_update# </tt></td><td>Special: presence will prevent document updating</td></tr>\n<tr><td><tt>#filename# </tt></td><td>Document filename</td></tr>\n<tr><td><tt>#file_extension#</tt></td><td>Document file extension</td></tr>\n<tr><td><tt>#generator# </tt></td><td>TextMate</td></tr>\n<tr><td><tt>#gmtime# </tt></td><td>GMT time</td></tr>\n<tr><td><tt>#localpath# </tt></td><td>Full path to current file</td></tr>\n<tr><td><tt>#localtime# </tt></td><td>Local computer time</td></tr>\n<tr><td><tt>#longdate# </tt></td><td>Long Date: Tuesday, August 15, 2006</td></tr>\n<tr><td><tt>#modifieddate# </tt></td><td>Modified date: 15-Aug-06</td></tr>\n<tr><td><tt>#modifiedtime# </tt></td><td>Modified time: 1:20 PM</td></tr>\n<tr><td><tt>#monthdaynum# </tt></td><td>Day of Month: 15</td></tr>\n<tr><td><tt>#monthnum# </tt></td><td>Month Number: 08</td></tr>\n<tr><td><tt>#shortdate# </tt></td><td>Short Date: 08/15/06</td></tr>\n<tr><td><tt>#shortusername# </tt></td><td>Login name of current user</td></tr>\n<tr><td><tt>#username# </tt></td><td>Name of current user</td></tr>\n<tr><td><tt>#yearnum# </tt></td><td>Current Year: 2006</td></tr>\n</table>\n\nIn addition to these, all of the TextMate environment variables (those starting with a \"TM_\" prefix) are available as placeholders. For example:\n\n #organization_name#\n\nWill populate using the `TM_ORGANIZATION_NAME` environment variable.\n\nFormatting Time\n---------------\n\nThe date-based placeholders may also specify a format that can be used to customize the date output. For example:\n\n #gmtime %b %e, %Y# (Aug 15, 2006)\n\nPlaceholder Example\n-------------------\n\nIf you want to make that footer.html include more useful, you can use placeholders. For example:\n\n <div class=\"footer\">Copyright (c) #yearnum#, #oragnization_name#.</div>\n\nThis would then produce the following, when included and processed:\n\n <!-- #tminclude \"footer.html\" -->\n <div class=\"footer\">Copyright (c) 2006, WebDesignCorp.</div>\n <!-- end tminclude -->\n\nScripted Includes\n-----------------\n\nIt is also possible to produce included content using scripts. If the included file is a script, it is run and the output is placed inside the include block.\n\n\t<!-- #tminclude \"scripts/header.pl\" #class#=\"huge\" -->\n\t<!-- end tminclude -->\n\n.pl (Perl), .py (Python) and .rb (Ruby) scripts are currently recognized. For the above example, the \"header.pl\" script is run with the following parameters:\n\n\theader.pl (source_filename) class huge\n\nThe Perl script in this case can process the parameters like this.\n\n\t#!/usr/bin/perl\n\tmy ($filename, %args) = @ARGV;\n\tprint \"<h1 class='$args{class}'>Header for $filename</h1>\"\n\nThat would end up producing this:\n\n\t<!-- #tminclude \"scripts/header.pl\" #class#=\"huge\" -->\n\t<h1 class='huge'>Header for /path/to/example.html</h1>\n\t<!-- end tminclude -->\n\nEOF\nhtml_footer",
88
+ input: "none",
89
+ name: "Help: Persistent Includes",
90
+ output: "showAsHTML",
91
+ scope: "text.html",
92
+ uuid: "9AFDEB2C-D9F0-423E-8211-EBB089F51F0C"},
93
+ {beforeRunningCommand: "nop",
94
+ command:
95
+ "#!/usr/bin/env ruby\n\ndoc = STDIN.read\nline = ENV['TM_LINE_NUMBER'].to_i\nline_index = ENV['TM_LINE_INDEX'].to_i\n\nif ENV.has_key? 'TM_INPUT_START_LINE' then\n line = ENV['TM_INPUT_START_LINE'].to_i\n line_index = ENV['TM_INPUT_START_LINE_INDEX'].to_i\nend\n\nbefore = /(.*\\n){\#{line-1}}.{\#{line_index}}/.match(doc)[0]\n\nbefore.gsub!(/<[^>]+\\/\\s*>/i, '')\n\n# remove all self-closing tags\nif ENV.has_key?('TM_HTML_EMPTY_TAGS') then\n empty_tags = ENV['TM_HTML_EMPTY_TAGS']\n before.gsub!(/<(\#{empty_tags})\\b[^>]*>/i, '')\nend\n\n# remove all comments\nbefore.gsub!(/<!--.*?-->/m, '')\n\nstack = [ ]\nbefore.scan(/<\\s*(\\/)?\\s*(\\w[\\w:-]*)[^>]*>/) do |m|\n if m[0].nil? then\n stack << m[1]\n else\n until stack.empty? do\n close_tag = stack.pop\n break if close_tag == m[1]\n end\n end\nend\n\nif stack.empty? then\n %x{ osascript -e beep &>/dev/null & }\nelse\n print \"</\#{stack.pop}>\"\nend",
96
+ input: "document",
97
+ keyEquivalent: "~@.",
98
+ name: "Insert Close Tag",
99
+ output: "afterSelectedText",
100
+ uuid: "0658019F-3635-462E-AAC2-74E4FE508A9B"},
101
+ {beforeRunningCommand: "nop",
102
+ command:
103
+ "#!/usr/bin/env ruby -w\nSUPPORT = ENV['TM_SUPPORT_PATH']\nDIALOG = SUPPORT + '/bin/tm_dialog'\n\nrequire \"\#{SUPPORT}/lib/osx/plist\"\nrequire \"\#{SUPPORT}/lib/escape\"\n\nentities = [ ]\nFile.read(\"\#{ENV['TM_BUNDLE_SUPPORT']}/entities.txt\").scan(/^(\\d+)\\t(.+)$/) do |key, value|\n char = [key.to_i].pack('U')\n entities << { 'display' => \"\#{value} (\#{char})\", 'char' => char, 'entity' => value }\nend\n\nplist = { 'entities' => entities, 'insertAsEntity' => true }.to_plist\nopen(\"|\#{e_sh DIALOG} -cm 'Insert Entity'\", 'w+') do |io|\n io << plist; io.close_write\n\n res = OSX::PropertyList.load(io.read)['result']\n abort if res.nil?\n\n if res['asEntity'].to_i == 1\n print '&' + res['returnArgument'].first['entity'] + ';'\n else\n print res['returnArgument'].first['char']\n end\nend\n",
104
+ input: "none",
105
+ keyEquivalent: "@&",
106
+ name: "Insert Entity…",
107
+ output: "afterSelectedText",
108
+ scope: "text.html",
109
+ uuid: "89E5CC0A-3EFF-4DEF-A299-2E9651DE6529"},
110
+ {beforeRunningCommand: "nop",
111
+ command:
112
+ "#!/usr/bin/env ruby\n#\n# This script will expand the current word into: <word></word>\n# It will recognize HTML 4.0 tags that need no close tag.\n#\n# With no current word, it will insert: <p></p> and allows you\n# to overwrite the tag name and add potential arguments.\n#\n# The result is inserted as a snippet, so it's\n# possible to tab through the place holders.\n\n# single tags\nsingle_no_arg = /^(?:br|hr)$/i\nsingle = /^(?:img|meta|link|input|base|area|col|frame|param)$/i\n\n# we are not in HTML mode, so let’s scrap the above hardcoded tag lists\nunless ENV.has_key? 'TM_HTML_EMPTY_TAGS' then\n single_no_arg = /(?=not)possible/\n single = /(?=not)possible/\nend\n\n# handle the case where caret is in the middle of a word, assume only the left part is the tag\nindex = ENV['TM_LINE_INDEX'].to_i - ENV['TM_INPUT_START_LINE_INDEX'].to_i\ntag, suffix = STDIN.read, ''\nif index < tag.length && !ENV['TM_SELECTED_TEXT']\n tag, suffix = tag[0...index], tag[index..-1]\nend\n\nxhtml = ENV['TM_XHTML'].to_s\n\nprint case tag\n when single_no_arg then \"<\#{tag}\#{xhtml}>\"\n when single then \"<\#{tag} $1\#{xhtml}>\"\n when '' then \"<${1:\#{ENV['TM_DEFAULT_TAG'] || 'p'}}>$2</${1/\\\\s.*//}>\"\n else \"<\#{tag}>$1</\#{tag.strip[/^\\S+/]}>\"\nend\n\nprint suffix\n",
113
+ fallbackInput: "word",
114
+ input: "selection",
115
+ keyEquivalent: "^<",
116
+ name: "Insert Open/Close Tag (With Current Word)",
117
+ output: "insertAsSnippet",
118
+ uuid: "2ED44A32-C353-447F-BAE4-E3522DB6944D"},
119
+ {beforeRunningCommand: "saveActiveFile",
120
+ command:
121
+ "#!/usr/bin/env ruby -wKU\n# \n# Open Document in Running Browser(s)\n# \n# Now supports multiple running versions of a single browser along\n# with a range of new/old browsers. Bring back support for Firefox.\n# \n# Options: Set TM_PROJECT_SITEURL in your TM Project Window Info Button\n# in the following form: \"http://example.com/\"\n\nrequire \"\#{ENV['TM_SUPPORT_PATH']}/lib/escape.rb\"\n\nif ENV['TM_PROJECT_SITEURL']\n url = \"\#{ENV['TM_PROJECT_SITEURL']}\" + ENV['TM_FILEPATH'].sub(/^\#{Regexp.escape(ENV['TM_PROJECT_DIRECTORY'])}\\//, '') \nelse\n url = \"file://\#{ENV['TM_FILEPATH']}\"\nend\n\nproclist = `ps -x -o command`\nactive = []\nos = `defaults read /System/Library/CoreServices/SystemVersion ProductVersion`\n\nbrowsers = %w[ Safari OmniWeb Camino Shiira firefox-bin Xyle\\ scope Opera Internet\\ Explorer flock-bin iCab Sunrise seamonkey-bin navigator-bin ].join('|')\n\n# Build paths to each active browser\n#\n# Notes:\n# - 'WebKit' look ahead is to rule it out so we can use the working\n# rule below.\n# - 'LaunchCFMApp' portion is so iCab works.\nactive = proclist.scan(%r{^(?:/.*LaunchCFMApp )?(/.*\\.app)(?=/Contents/MacOS/(?:\#{browsers})\\b(?!.*WebKit))})\n\n# Special check for WebKit as it appears as Safari\n# Note: Only supports one running instance of WebKit, picked at random.\nif proclist =~ %r{/Contents/MacOS/Safari.*WebKit}\n active << \"WebKit\"\nend\n\n# TODO: Change when Leopard Only\n# On Leopard use the -g option to open in background.\nif os =~ /^10\\.(5|6)/\n active.each {|p| `open -g -a \#{e_sh(p)} \#{e_sh(url)}` }\nelse\n active.each {|p| `open -a \#{e_sh(p)} \#{e_sh(url)}` }\nend",
122
+ input: "none",
123
+ name: "Open Document in Running Browser(s)",
124
+ output: "discard",
125
+ scope: "text.html",
126
+ uuid: "970EE6B4-A091-11D9-A5A2-000D93C8BE28"},
127
+ {beforeRunningCommand: "saveActiveFile",
128
+ command:
129
+ "###\tRefresh All Active Browsers - OmniWeb, Safari, Firefox & IE\n### v1.0. 2005-03-29\n###\n\n# Check if Internet Explorer is running, if so refresh\nps -xc|grep -sq \"Internet Explorer\" && osascript -e 'tell app \"Internet Explorer\"' -e 'activate' -e 'OpenURL \"JavaScript:window.location.reload();\" toWindow -1' -e 'end tell'\n\n# Check if OmniWeb is running, if so refresh\nps -xc|grep -sq OmniWeb && osascript -e 'tell app \"OmniWeb\"' -e 'activate' -e 'reload first browser' -e 'end tell'\n\n# Check if Firefox is running, if so refresh\nps -xc|grep -sqi firefox && osascript <<'APPLESCRIPT'\n tell app \"Firefox\" to activate\n tell app \"System Events\"\n if UI elements enabled then\n keystroke \"r\" using command down\n -- Fails if System Preferences > Universal access > \"Enable access for assistive devices\" is not on \n else\n -- Comment out until Firefox regains Applescript support\n -- tell app \"Firefox\" to Get URL \"JavaScript:window.location.reload();\" inside window 1\n -- Fails if Firefox is set to open URLs from external apps in new tabs.\n end if\n end tell\nAPPLESCRIPT\n\n# Check if Safari is running, if so refresh\nps -xc|grep -sq Safari && osascript -e 'tell app \"Safari\"' -e 'activate' -e 'do JavaScript \"window.location.reload();\" in first document' -e 'end tell'\n\n# Check if Camino is running, if so refresh \nps -xc|grep -sq Camino && osascript -e 'tell app \"Camino\"' -e 'activate' -e 'tell app \"System Events\" to keystroke \"r\" using {command down}' -e 'end tell'\n",
130
+ input: "none",
131
+ keyEquivalent: "@r",
132
+ name: "Refresh Running Browser(s)",
133
+ output: "discard",
134
+ scope: "text.html, source.css",
135
+ uuid: "B8651C6E-A05E-11D9-86AC-000D93C8BE28"},
136
+ {beforeRunningCommand: "nop",
137
+ command:
138
+ "## Strip HTML and PHP tags from the selected text\nphp -r 'echo strip_tags( file_get_contents(\"/dev/stdin\") );'\n\n### If you want to keep a particular tag, such as <p> comment the above line and uncomment the next line\n# php -r 'echo strip_tags( file_get_contents(\"/dev/stdin\"), \"<p>\" );'\n### end",
139
+ fallbackInput: "document",
140
+ input: "selection",
141
+ keyEquivalent: "",
142
+ name: "Strip HTML Tags from Document / Selection",
143
+ output: "replaceSelectedText",
144
+ scope: "text.html",
145
+ uuid: "20D760B5-A127-11D9-A5A2-000D93C8BE28"},
146
+ {beforeRunningCommand: "nop",
147
+ captureFormatString: "$3",
148
+ capturePattern: "line (\\d+) column (\\d+) - (.*?)$",
149
+ command:
150
+ "#!/usr/bin/env ruby -wKU\n\nrequire ENV['TM_SUPPORT_PATH'] + '/lib/ui.rb'\nrequire ENV['TM_SUPPORT_PATH'] + '/lib/exit_codes.rb'\n\nresult = `\"${TM_TIDY:-tidy}\" -f /tmp/tm_tidy_errors -iq -utf8 \\\n -wrap 0 --tab-size $TM_TAB_SIZE --indent-spaces $TM_TAB_SIZE \\\n\t\t--indent yes \\\n ${TM_XHTML:+-asxhtml --output-xhtml yes} \\\n ${TM_SELECTED_TEXT:+--show-body-only yes} \\\n --enclose-text yes \\\n --doctype strict \\\n\t\t--wrap-php no \\\n --tidy-mark no`\nstatus = $?.exitstatus\n\nat_exit { File.unlink('/tmp/tm_tidy_errors') } # Clean up error log\n\nif status == 2 # Errors\n\n msg = \"Errors: \" + File.read('/tmp/tm_tidy_errors')\n TextMate.exit_show_tool_tip msg\n\nelsif status == 1 # Warnings - use output but also display notification with warnings\n \n log = File.read('/tmp/tm_tidy_errors').to_a.select do |line|\n ! (ENV['TM_SELECTED_TEXT'] and (line.include?('Warning: missing <!DOCTYPE> declaration') or line.include?(\"Warning: inserting missing 'title' element\")))\n end.join rescue nil\n \n unless log.empty?\n options = {\n :title => \"Tidy Warnings\",\n :summary => \"Warnings for tidying your document (press escape to close):\",\n :log => log\n }\n TextMate::UI.simple_notification(options)\n end\n\nend\n\nif ENV['TM_SOFT_TABS'] == \"YES\"\n print result\nelse\n in_pre = false\n result.each_line do |line|\n unless in_pre\n tab_size = ENV[\"TM_TAB_SIZE\"].to_i\n space, text = /( *)(.*)/m.match(line)[1..2]\n line = \"\\t\" * (space.length / tab_size).floor + \" \" * (space.length % tab_size) + text\n end\n \n print line\n \n in_pre = true if line.include?(\"<pre>\")\n in_pre = false if line.include?(\"</pre>\")\n end\nend",
151
+ input: "selection",
152
+ keyEquivalent: "^H",
153
+ lineCaptureRegister: "1",
154
+ name: "Tidy",
155
+ output: "replaceSelectedText",
156
+ scope: "text.html",
157
+ uuid: "45F92B81-6F0E-11D9-A1E4-000D9332809C"},
158
+ {beforeRunningCommand: "nop",
159
+ command:
160
+ "#!/usr/bin/env ruby\n\nprint STDIN.read.gsub(/([^a-zA-Z0-9_.-]+)/n) {\n '%' + $1.unpack('H2' * $1.size).join('%').upcase\n}\n",
161
+ fallbackInput: "line",
162
+ input: "selection",
163
+ keyEquivalent: "@&",
164
+ name: "URL Escape Line / Selection",
165
+ output: "replaceSelectedText",
166
+ scope: "text.html",
167
+ uuid: "6B024865-6095-4CE3-8EDD-DC6F2230C2FF"},
168
+ {beforeRunningCommand: "nop",
169
+ command:
170
+ "#!/usr/bin/env ruby\nrequire 'cgi'\nprint CGI.unescape(STDIN.read)\n",
171
+ fallbackInput: "line",
172
+ input: "selection",
173
+ keyEquivalent: "@&",
174
+ name: "URL Unescape Line / Selection",
175
+ output: "replaceSelectedText",
176
+ scope: "text.html",
177
+ uuid: "2C4C9673-B166-432A-8938-75A5CA622481"},
178
+ {beforeRunningCommand: "nop",
179
+ command:
180
+ "#!/usr/bin/env ruby\nrequire \"\#{ENV['TM_BUNDLE_SUPPORT']}/tminclude.rb\"\nTextMate::Includes.instance.process_persistent_includes\n",
181
+ input: "document",
182
+ keyEquivalent: "^@u",
183
+ name: "Update Document",
184
+ output: "replaceDocument",
185
+ scope: "text.html",
186
+ uuid: "4400BCE9-20E3-426E-B1D7-2C0BCA53BCF8"},
187
+ {beforeRunningCommand: "nop",
188
+ command:
189
+ "#!/usr/bin/env ruby -wKU\nSTDOUT.sync = true\n\npage = STDIN.read\npage.gsub!(/<\\?(php|=).*?\\?>|<%.*?%>/m, '')\n\nopen('|curl -sF uploaded_file=@-\\;type=text/html http://validator.w3.org/check', 'r+') do |io|\n io << page; io.close_write\n while line = io.gets\n line.gsub!(/<\\/title>/, '\\&<base href=\"http://validator.w3.org/\">')\n line.gsub!(/Line (\\d+),? Column (\\d+)/i) do\n \"<a href='txmt://open?line=\#$1&column=\#{$2.to_i + 1}'>\#$&</a>\"\n end\n puts line\n end\nend\n",
190
+ dontFollowNewOutput: true,
191
+ input: "document",
192
+ keyEquivalent: "^V",
193
+ name: "Validate Syntax (W3C)",
194
+ output: "showAsHTML",
195
+ scope: "text.html",
196
+ uuid: "3F26240E-6E4A-11D9-B411-000D93589AF6"},
197
+ {beforeRunningCommand: "nop",
198
+ command:
199
+ "perl -pe 's/[\\$`\\\\]/\\\\$&/g; s/([ \\t]*)(.+)/$1<\\${1:li}>$2<\\/\\${1\\/\\\\s.*\\/\\/}>/'",
200
+ fallbackInput: "line",
201
+ input: "selection",
202
+ keyEquivalent: "^@W",
203
+ name: "Wrap Each Selected Line in Open/Close Tag",
204
+ output: "insertAsSnippet",
205
+ scope: "text.html",
206
+ uuid: "991E7EBD-F3F5-469A-BA01-DC30E04AD472"}]
@@ -0,0 +1,48 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "nop",
4
+ command:
5
+ "#!/usr/bin/env python\n\nimport sys\nx = sys.stdin.read().strip()\nif x:\n\tsys.stdout.write(\"\\`%s\\`$0\" % x)\nelse:\n\tsys.stdout.write(\"\\`$1\\`$0\")\n",
6
+ fallbackInput: "word",
7
+ input: "selection",
8
+ keyEquivalent: "^'",
9
+ name: "Infix Function Call From Word / Selection",
10
+ output: "insertAsSnippet",
11
+ scope: "source.haskell",
12
+ uuid: "FA4AA254-EB7D-4B43-AC67-066AA9E8E8D9"},
13
+ {beforeRunningCommand: "nop",
14
+ command:
15
+ "#!/bin/bash\n\nTHASKELL=${TM_HASKELL:-ghci}\n\nesc () {\nSTR=\"$1\" ruby <<\"RUBY\"\n str = ENV['STR']\n str = str.gsub(/'/, \"'\\\\\\\\''\")\n str = str.gsub(/[\\\\\"]/, '\\\\\\\\\\\\0')\n print \"'\#{str}'\"\nRUBY\n}\n\nosascript <<- APPLESCRIPT\ntell app \"Terminal\"\n\tlaunch\n\tactivate\n\tdo script \"clear; cd $(esc \"${TM_DIRECTORY}\"); ${THASKELL} $(esc \"${TM_FILEPATH}\")\"\n\tset position of first window to {100, 100}\nend tell\nAPPLESCRIPT\n",
16
+ input: "none",
17
+ keyEquivalent: "@R",
18
+ name: "Load in GHCi",
19
+ output: "showAsTooltip",
20
+ scope: "source.haskell",
21
+ uuid: "2242C46C-153E-4EEB-B80B-A5398559D759"},
22
+ {beforeRunningCommand: "nop",
23
+ command:
24
+ "echo \"<meta http-equiv=\\\"refresh\\\" content=\\\"0; http://haskell.org/hoogle/?q=${TM_SELECTED_TEXT:=$TM_CURRENT_WORD}\\\">\"",
25
+ fallbackInput: "word",
26
+ input: "none",
27
+ keyEquivalent: "^H",
28
+ name: "Lookup on Hoogle",
29
+ output: "showAsHTML",
30
+ scope: "source.haskell",
31
+ uuid: "50D814AE-D850-4C97-AF3E-1FDE4366C6A3"},
32
+ {beforeRunningCommand: "saveActiveFile",
33
+ command:
34
+ ": ${TM_HASKELL:=runhaskell}\nrequire_cmd \"$TM_HASKELL\"\n\n\"$TM_HASKELL\" \"$TM_FILEPATH\" 2>&1 | haskellmate\n\n",
35
+ input: "none",
36
+ keyEquivalent: "@r",
37
+ name: "Run",
38
+ output: "showAsHTML",
39
+ scope: "source.haskell",
40
+ uuid: "3B083BE7-9812-4F06-A758-CCAD9514E797"},
41
+ {beforeRunningCommand: "nop",
42
+ command: "haskelltype \"${TM_SELECTED_TEXT:-$TM_CURRENT_WORD}\"",
43
+ input: "none",
44
+ keyEquivalent: "^h",
45
+ name: "Show Type",
46
+ output: "showAsTooltip",
47
+ scope: "source.haskell",
48
+ uuid: "6B723007-D4EE-476B-8282-76230C559D5A"}]
@@ -0,0 +1,50 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "nop",
4
+ bundleUUID: "5AE8DC40-A7BB-4E63-AE9B-D7E24C2E339C",
5
+ command:
6
+ ". \"$TM_SUPPORT_PATH/lib/webpreview.sh\"\nhtml_header \"Hotkey Help\" \"Hotkey\"\nMarkdown.pl <<'EOF'\n<title>Hotkey Bundle</title>\n\n## About\n\nThe hotkey bundle allows you to store a shell command on control shift 1-5 (US keymap) for the current project.\n\n## How it works\n\nThe first time you press control shift 1-5, it will ask you for the shell command to run. After that, the same key will run that command with output shown as a tool tip. All commands are run from the base of the project directory.\n\n## Internals\n\nThe list of recorded shell commands is kept in the project folder as `.tmhotkeys` (in YAML format).\n\nEOF\nhtml_footer",
7
+ input: "none",
8
+ name: "Help",
9
+ output: "showAsHTML",
10
+ uuid: "18C33747-DEB1-4F36-B1E3-EF1D544C1D96"},
11
+ {beforeRunningCommand: "nop",
12
+ command:
13
+ "cd ${TM_PROJECT_DIRECTORY}\n\"${TM_RUBY:=ruby}\" <<'EOF'\n\nnum = 1\n\n`\"\#{ENV['TM_BUNDLE_SUPPORT']}/hotkey.rb\" -n \#{num} -c \"\#{ENV['TM_PROJECT_DIRECTORY']}/.tmhotkeys\" --check`\nif($? == 0)\n print `\"\#{ENV['TM_BUNDLE_SUPPORT']}/hotkey.rb\" -n \#{num} -c \"\#{ENV['TM_PROJECT_DIRECTORY']}/.tmhotkeys\"`\n exit()\nend\n\noutput = `CocoaDialog inputbox --title Input --informative-text 'What command should be run?' --button1 Record --button2 'Cancel'`\noutput = output.split(\"\\n\")\n\n# check the button pressed, exit if it wasn't Record\nif(output[0] !~ /^1$/)\n\texit\nend\n\n# update the command\n`\"\#{ENV['TM_BUNDLE_SUPPORT']}/hotkey.rb\" -n \#{num} -c \"\#{ENV['TM_PROJECT_DIRECTORY']}/.tmhotkeys\" -u '\#{output[1].strip.gsub(/'/, '\\\\\\\\1')}'`\n\n# run the command\nprint `\"\#{ENV['TM_BUNDLE_SUPPORT']}/hotkey.rb\" -n \#{num} -c \"\#{ENV['TM_PROJECT_DIRECTORY']}/.tmhotkeys\"`\n",
14
+ input: "none",
15
+ keyEquivalent: "^!",
16
+ name: "ctrl-shift-1",
17
+ output: "showAsTooltip",
18
+ uuid: "52991D39-38F1-4A33-9C7D-5D39EB289889"},
19
+ {beforeRunningCommand: "nop",
20
+ command:
21
+ "cd ${TM_PROJECT_DIRECTORY}\n\"${TM_RUBY:=ruby}\" <<'EOF'\n\nnum = 2\n\n`\"\#{ENV['TM_BUNDLE_SUPPORT']}/hotkey.rb\" -n \#{num} -c \"\#{ENV['TM_PROJECT_DIRECTORY']}/.tmhotkeys\" --check`\nif($? == 0)\n print `\"\#{ENV['TM_BUNDLE_SUPPORT']}/hotkey.rb\" -n \#{num} -c \"\#{ENV['TM_PROJECT_DIRECTORY']}/.tmhotkeys\"`\n exit()\nend\n\noutput = `CocoaDialog inputbox --title Input --informative-text 'What command should be run?' --button1 Record --button2 'Cancel'`\noutput = output.split(\"\\n\")\n\n# check the button pressed, exit if it wasn't Record\nif(output[0] !~ /^1$/)\n\texit\nend\n\n# update the command\n`\"\#{ENV['TM_BUNDLE_SUPPORT']}/hotkey.rb\" -n \#{num} -c \"\#{ENV['TM_PROJECT_DIRECTORY']}/.tmhotkeys\" -u '\#{output[1].strip.gsub(/'/, '\\\\\\\\1')}'`\n\n# run the command\nprint `\"\#{ENV['TM_BUNDLE_SUPPORT']}/hotkey.rb\" -n \#{num} -c \"\#{ENV['TM_PROJECT_DIRECTORY']}/.tmhotkeys\"`\n",
22
+ input: "none",
23
+ keyEquivalent: "^@",
24
+ name: "ctrl-shift-2",
25
+ output: "showAsTooltip",
26
+ uuid: "768F3AD8-30D7-4AFD-8041-5F02E5EADD44"},
27
+ {beforeRunningCommand: "nop",
28
+ command:
29
+ "cd ${TM_PROJECT_DIRECTORY}\n\"${TM_RUBY:=ruby}\" <<'EOF'\n\nnum = 3\n\n`\"\#{ENV['TM_BUNDLE_SUPPORT']}/hotkey.rb\" -n \#{num} -c \"\#{ENV['TM_PROJECT_DIRECTORY']}/.tmhotkeys\" --check`\nif($? == 0)\n print `\"\#{ENV['TM_BUNDLE_SUPPORT']}/hotkey.rb\" -n \#{num} -c \"\#{ENV['TM_PROJECT_DIRECTORY']}/.tmhotkeys\"`\n exit()\nend\n\noutput = `CocoaDialog inputbox --title Input --informative-text 'What command should be run?' --button1 Record --button2 'Cancel'`\noutput = output.split(\"\\n\")\n\n# check the button pressed, exit if it wasn't Record\nif(output[0] !~ /^1$/)\n\texit\nend\n\n# update the command\n`\"\#{ENV['TM_BUNDLE_SUPPORT']}/hotkey.rb\" -n \#{num} -c \"\#{ENV['TM_PROJECT_DIRECTORY']}/.tmhotkeys\" -u '\#{output[1].strip.gsub(/'/, '\\\\\\\\1')}'`\n\n# run the command\nprint `\"\#{ENV['TM_BUNDLE_SUPPORT']}/hotkey.rb\" -n \#{num} -c \"\#{ENV['TM_PROJECT_DIRECTORY']}/.tmhotkeys\"`\n",
30
+ input: "none",
31
+ keyEquivalent: "^#",
32
+ name: "ctrl-shift-3",
33
+ output: "showAsTooltip",
34
+ uuid: "5CFF88D2-658D-4E81-9FCA-45673D3E74DD"},
35
+ {beforeRunningCommand: "nop",
36
+ command:
37
+ "cd ${TM_PROJECT_DIRECTORY}\n\"${TM_RUBY:=ruby}\" <<'EOF'\n\nnum = 4\n\n`\"\#{ENV['TM_BUNDLE_SUPPORT']}/hotkey.rb\" -n \#{num} -c \"\#{ENV['TM_PROJECT_DIRECTORY']}/.tmhotkeys\" --check`\nif($? == 0)\n print `\"\#{ENV['TM_BUNDLE_SUPPORT']}/hotkey.rb\" -n \#{num} -c \"\#{ENV['TM_PROJECT_DIRECTORY']}/.tmhotkeys\"`\n exit()\nend\n\noutput = `CocoaDialog inputbox --title Input --informative-text 'What command should be run?' --button1 Record --button2 'Cancel'`\noutput = output.split(\"\\n\")\n\n# check the button pressed, exit if it wasn't Record\nif(output[0] !~ /^1$/)\n\texit\nend\n\n# update the command\n`\"\#{ENV['TM_BUNDLE_SUPPORT']}/hotkey.rb\" -n \#{num} -c \"\#{ENV['TM_PROJECT_DIRECTORY']}/.tmhotkeys\" -u '\#{output[1].strip.gsub(/'/, '\\\\\\\\1')}'`\n\n# run the command\nprint `\"\#{ENV['TM_BUNDLE_SUPPORT']}/hotkey.rb\" -n \#{num} -c \"\#{ENV['TM_PROJECT_DIRECTORY']}/.tmhotkeys\"`\n",
38
+ input: "none",
39
+ keyEquivalent: "^$",
40
+ name: "ctrl-shift-4",
41
+ output: "showAsTooltip",
42
+ uuid: "8BEF616A-19A7-4AE2-AC59-B812BF701269"},
43
+ {beforeRunningCommand: "nop",
44
+ command:
45
+ "cd ${TM_PROJECT_DIRECTORY}\n\"${TM_RUBY:=ruby}\" <<'EOF'\n\nnum = 5\n\n`\"\#{ENV['TM_BUNDLE_SUPPORT']}/hotkey.rb\" -n \#{num} -c \"\#{ENV['TM_PROJECT_DIRECTORY']}/.tmhotkeys\" --check`\nif($? == 0)\n print `\"\#{ENV['TM_BUNDLE_SUPPORT']}/hotkey.rb\" -n \#{num} -c \"\#{ENV['TM_PROJECT_DIRECTORY']}/.tmhotkeys\"`\n exit()\nend\n\noutput = `CocoaDialog inputbox --title Input --informative-text 'What command should be run?' --button1 Record --button2 'Cancel'`\noutput = output.split(\"\\n\")\n\n# check the button pressed, exit if it wasn't Record\nif(output[0] !~ /^1$/)\n\texit\nend\n\n# update the command\n`\"\#{ENV['TM_BUNDLE_SUPPORT']}/hotkey.rb\" -n \#{num} -c \"\#{ENV['TM_PROJECT_DIRECTORY']}/.tmhotkeys\" -u '\#{output[1].strip.gsub(/'/, '\\\\\\\\1')}'`\n\n# run the command\nprint `\"\#{ENV['TM_BUNDLE_SUPPORT']}/hotkey.rb\" -n \#{num} -c \"\#{ENV['TM_PROJECT_DIRECTORY']}/.tmhotkeys\"`\n",
46
+ input: "none",
47
+ keyEquivalent: "^%",
48
+ name: "ctrl-shift-5",
49
+ output: "showAsTooltip",
50
+ uuid: "2AD289D4-FBE2-40D2-B12D-3D498486B881"}]
@@ -0,0 +1,81 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "nop",
4
+ command:
5
+ "#!/usr/bin/env ruby\nrequire \"\#{ENV['TM_SUPPORT_PATH']}/lib/progress.rb\"\nrequire \"\#{ENV['TM_SUPPORT_PATH']}/lib/exit_codes.rb\"\nrequire 'open-uri'\nrequire 'erb'\n\n\ndef getWikiDef(input)\n TextMate.call_with_progress(:title => \"Contacting Wikipedia\", :message => \"Looking for definition of \#{input}\") do\n \tresponse = open(\"http://en.wikipedia.org/wiki/Special:Search?search=\#{input}\",\n \t \"User-Agent\" => \"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1\",\n \t \"Referer\" => \"http://www.ruby-lang.org/\") {|f| $response = f }\n \turl = response.base_uri\n \t# borrowed from iamrice.org\n \tfp = open(url)\n \ttitle = \"Wikipedia Entry: \" + fp.read.match(/<title>([^<>]*)<\\/title>/i).to_a[1]\n \tif title.include? \"Search\"\n \t TextMate.exit_show_tool_tip \"No definition found\"\n \telse\n \t return title.sub(/ - Wikipedia, the free encyclopedia/, ''), url\n \tend\n end\nend\ninput = STDIN.read\ntitle, url = getWikiDef(input)\nprint ERB.new(ENV['TM_LINK_FORMAT']).result",
6
+ fallbackInput: "word",
7
+ input: "selection",
8
+ name: "Basic Wikipedia",
9
+ output: "insertAsSnippet",
10
+ scope: "text",
11
+ uuid: "71C47F5F-41FA-40E8-A13A-238BC30984D1"},
12
+ {beforeRunningCommand: "nop",
13
+ command:
14
+ "#!/usr/bin/env ruby -wKU\n# an evolution of the code from skiadas.dcostanet.net/afterthought\n# retrieves link from Google automatically and creates XHTML link\n# improved call to progress bar, added ability to retrieve title\n# of page and create title attribute in link using idea\n# borrowed from iamrice.org. Improved regex to handle title tags \n# newlines, spaces and capitalization differences\nrequire ENV['TM_SUPPORT_PATH'] + '/lib/progress.rb'\nrequire ENV['TM_SUPPORT_PATH'] + '/lib/escape.rb'\nrequire 'net/http' \nrequire 'open-uri'\nrequire 'erb'\n\ndef getLinkWithTitle(phrase)\n TextMate.call_with_progress(:title => \"Contacting Google\", :message => \"Retrieving Link for “\#{phrase}”…\") do\n response = Net::HTTP.get_response(URI.parse(URI.escape(\"http://www.google.com/search?q=\#{phrase}&btnI=I'm+Feeling+Lucky\")))\n url = response.to_hash['location'].to_a.first\n fp = open(url)\n title = fp.read.match(/<title>([^<>]*)<\\/title>/i).to_a[1]\n title = title.strip\n return url, title, phrase\n end\nend\n\nurl, title, input = getLinkWithTitle(STDIN.read)\nprint ERB.new(ENV['TM_LINK_FORMAT']).result",
15
+ fallbackInput: "word",
16
+ input: "selection",
17
+ keyEquivalent: "^@L",
18
+ name: "Lookup Word / Selection on Google and Link",
19
+ output: "insertAsSnippet",
20
+ scope: "text",
21
+ uuid: "D2F3BE59-1349-4762-9B17-A6F79A7F81B9"},
22
+ {beforeRunningCommand: "nop",
23
+ bundleUUID: "1BF76350-AB8F-4FC8-9512-1129CEEE0A3E",
24
+ command:
25
+ "#!/usr/bin/env ruby\nrequire \"\#{ENV['TM_SUPPORT_PATH']}/lib/progress.rb\"\nrequire \"\#{ENV['TM_SUPPORT_PATH']}/lib/exit_codes.rb\"\nrequire \"\#{ENV['TM_SUPPORT_PATH']}/lib/ui.rb\"\nrequire 'cgi'\nrequire 'open-uri'\nrequire 'erb'\n\ndef cap_all_words(string)\n\treturn string.split(\" \").map{|w| w.capitalize}.join(\" \")\nend\n\ndef follow_redirect(page)\n pagename = page.match(/var\\swgPageName\\s\\=\\s\\\"(.*?)\\\";/).to_a[1]\n url = %{http://en.wikipedia.org/wiki/\#{pagename}}\n content = open(url).read\n return url, content, pagename\nend #follow_redirect\n\ndef select_link(links)\n linklist = links.map { |p| p[0] }\n item = TextMate::UI.request_item :title => \"Multiple Definitions\", :prompt => \"Please select a definition\", :items => linklist\n TextMate.exit_discard if item.nil?\n return links[linklist.index(item)]\nend # select_link\n\ndef check_for_search(page)\n TextMate.exit_show_tool_tip \"No definition found\" if page.match(/<title>([^<>]*)<\\/title>/i).to_a[1].include? \"Search\"\n return page\nend # check_for_search\n\ndef check_for_multiple_results(page,phrase,pagename)\n if page.match(/(<\\/b>\\scan\\sbe:<\\/p>)|(<\\/b>\\smay\\srefer\\sto:<\\/p>)/i) then\n open(\"http://en.wikipedia.org/wiki/Special:Export/\#{pagename}\") {|body|\n\t links = []\n\t body.read.scan(/\\[\\[([^|\\]]*)[|]?[^\\]]*\\]\\]/) { |link| \n links.push(link) }\n choice = select_link(links)\n TextMate.exit_discard if choice.nil?\n TextMate.exit_replace_text(%{<a href=\"http://en.wikipedia.org/wiki/\#{CGI.escape(choice[0]).gsub('+','_')}\" title=\"Wikipedia Entry: \#{choice[0]}\">\#{phrase}</a>}) \n }\n end\nend #check_for_multiple_results\n\ndef check_for_disambiguation(page,phrase,pagename)\n# if page.match(/\#{phrase}[\\s]?\\(disambiguation\\)/i) then\n if page.include? \"(disambiguation)\"\n\t # findlink = page.match(/\\\"(\\/wiki\\/\#{pagename}_%28disambiguation%29)\\\"/i) \n\t # open(\"http://en.wikipedia.org\#{findlink[1]}\") {|body|\n\t\topen(\"http://en.wikipedia.org/wiki/Special:Export/\#{pagename}_%28disambiguation%29\") {|body|\n\t content = body.read\n\t links = []\n\t content.scan(/\\[\\[([^|\\]]*)[|]?[^\\]]*\\]\\]/) { |link| \n links.push(link) }\n choice = select_link(links)\n TextMate.exit_discard if choice.nil?\n TextMate.exit_replace_text(%{<a href=\"http://en.wikipedia.org/wiki/\#{CGI.escape(choice[0]).gsub('+','_')}\" title=\"Wikipedia Entry: \#{choice[0]}\">\#{phrase}</a>}) \n }\n\tend\nend #check_for_disambiguation\n\ndef getWikiDef(phrase)\n TextMate.call_with_progress(:title => \"Contacting Wikipedia\", :message => \"Looking for definition of \#{phrase}\") do\n @response = open(\"http://en.wikipedia.org/wiki/Special:Search?search=\#{CGI.escape(phrase)}\",\n \"User-Agent\" => \"TextMate 1.5.5\")\n content = @response.read\n if content.scan(/Redirected\\sfrom/)\n url, content, pagename = follow_redirect(content)\n # confirmed = TextMate::UI.request_confirmation :button1 => \"Accept\", :button2 => \"Cancel\", :title => \"Redirected to \\\"\#{pagename}\\\"\", :prompt => \"Accept Redirection?\"\n # TextMate.exit_discard unless confirmed\n else\n url = @response.base_uri\n pagename = phrase\n end\n check_for_search(content)\n check_for_multiple_results(content,phrase,pagename)\n check_for_disambiguation(content,phrase,pagename)\n title = \"Wikipedia Entry: \" + pagename.gsub(/_/, ' ')\n return url, title, phrase\n end\nend\n\nurl, title, input = getWikiDef(STDIN.read)\nprint ERB.new(ENV['TM_LINK_FORMAT']).result\n",
26
+ fallbackInput: "word",
27
+ input: "selection",
28
+ name: "Lookup Word / Selection on Wikipedia and link",
29
+ output: "insertAsSnippet",
30
+ scope: "text",
31
+ uuid: "B94A2DF9-FC40-4281-80FB-35FB2917CDE7"},
32
+ {beforeRunningCommand: "nop",
33
+ command:
34
+ "#!/usr/bin/env ruby -wKU\nrequire ENV['TM_SUPPORT_PATH'] + '/lib/escape.rb'\nrequire 'erb'\nrequire 'open-uri'\nrequire 'net/http' \n\ndef entity_escape(text)\n text.gsub(/&(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);)/, '&amp;')\nend\n\ndef make_link(text)\n case text\n when %r{\\A(mailto:)?(.*?@.*\\..*)\\z}:\n \"mailto:\#{$2.gsub(/./) {sprintf(\"&#x%02X;\", $&.unpack(\"U\")[0])}}\"\n when %r{http://www.(amazon.(?:com|co.uk|co.jp|ca|fr|de))/.+?/([A-Z0-9]{10})/[-a-zA-Z0-9_./%?=&]+}:\n \"http://\#{$1}/dp/\#{$2}\"\n when %r{\\A[a-zA-Z][a-zA-Z0-9.+-]*://.*\\z}:\n entity_escape(text)\n when %r{\\A(www\\..*|.*\\.(com|uk|net|org|info))\\z}:\n \"http://\#{entity_escape text}\"\n when %r{\\A.*\\.(com|uk|net|org|info)\\z}:\n \"http://\#{entity_escape text}\"\n when %r{\\A\\S+\\z}:\n entity_escape(text)\n else\n \"http://example.com/\"\n end\nend\n\nurl = make_link %x{__CF_USER_TEXT_ENCODING=$UID:0x8000100:0x8000100 pbpaste}.strip\n\nif url =~ /^http:\\/\\// and url != 'http://example.com/'\n eval 'title = fp.read.match(/<title>([^<>]*)<\\/title>/i).to_a[1].strip rescue nil' if fp = open(url) rescue nil\nend\n\ninput = STDIN.read\nprint ERB.new(ENV['TM_LINK_FORMAT']).result\n",
35
+ fallbackInput: "word",
36
+ input: "selection",
37
+ keyEquivalent: "^L",
38
+ name: "Wrap Word / Selection as Link",
39
+ output: "insertAsSnippet",
40
+ scope: "text",
41
+ uuid: "A42DC78E-6588-476F-8A00-40B8CCC6D2E0"},
42
+ {beforeRunningCommand: "nop",
43
+ command:
44
+ "#!/usr/bin/env ruby -rjcode -Ku\nSUPPORT = ENV['TM_SUPPORT_PATH']\nDIALOG = ENV['DIALOG']\nrequire SUPPORT + '/lib/escape'\nrequire SUPPORT + '/lib/osx/plist'\nrequire SUPPORT + '/lib/exit_codes'\nrequire \"\#{ENV['TM_BUNDLE_SUPPORT']}/lib/yahoo\"\nrequire 'erb'\n\ninput = STDIN.read\nquery = e_url(input)\nyahoo = NewsSearch.new('TM_YAHOO', query, 'all', 10, 1, nil, 1)\nysuggest = []\n yahoo.parse_results.each {|result| \n ysuggest << { \n 'title' => result['Title'].gsub('\"','&raquo;'),\n 'url' => result['Url']}\n }\n plist = { 'menuItems' => ysuggest }.to_plist\n\n res = OSX::PropertyList.load(`\#{e_sh DIALOG} -up \#{e_sh plist}`)\n TextMate.exit_show_tool_tip \"No matches found\" unless res.has_key? 'selectedMenuItem'\n url = res['selectedMenuItem']['url']\n title = res['selectedMenuItem']['title']\n\n print ERB.new(ENV['TM_LINK_FORMAT']).result",
45
+ fallbackInput: "word",
46
+ input: "selection",
47
+ keyEquivalent: "^Y",
48
+ name: "Yahoo News Search",
49
+ output: "insertAsSnippet",
50
+ scope: "text",
51
+ uuid: "41D61EE6-B8A9-4C21-9ECE-E336588423DB"},
52
+ {beforeRunningCommand: "nop",
53
+ command:
54
+ "#!/usr/bin/env ruby -rjcode -Ku\nSUPPORT = ENV['TM_SUPPORT_PATH']\nDIALOG = ENV['DIALOG']\nrequire SUPPORT + '/lib/escape'\nrequire SUPPORT + '/lib/osx/plist'\nrequire SUPPORT + '/lib/exit_codes'\nrequire \"\#{ENV['TM_BUNDLE_SUPPORT']}/lib/yahoo\"\n\ninput = STDIN.read\nquery = e_url(input)\nyahoo = RelatedSuggestion.new('TM_YAHOO', query, 'all', 10, 1, nil, 1)\nysuggest = []\n yahoo.parse_analysis.each {|result| \n ysuggest << { \n 'title' => result}\n }\n plist = { 'menuItems' => ysuggest }.to_plist\n\n res = OSX::PropertyList.load(`\#{e_sh DIALOG} -up \#{e_sh plist}`)\n abort unless res.has_key? 'selectedMenuItem'\n TextMate.exit_replace_text res['selectedMenuItem']['title']",
55
+ fallbackInput: "word",
56
+ input: "selection",
57
+ keyEquivalent: "^Y",
58
+ name: "Yahoo Related Suggestion",
59
+ output: "replaceSelectedText",
60
+ scope: "text",
61
+ uuid: "6511380B-D4C7-408B-85FF-9E98C6AAEB4A"},
62
+ {beforeRunningCommand: "nop",
63
+ command:
64
+ "#!/usr/bin/env ruby -rjcode -Ku\nSUPPORT = ENV['TM_SUPPORT_PATH']\nDIALOG = ENV['DIALOG']\nrequire SUPPORT + '/lib/escape'\nrequire SUPPORT + '/lib/osx/plist'\nrequire SUPPORT + '/lib/exit_codes'\nrequire \"\#{ENV['TM_BUNDLE_SUPPORT']}/lib/yahoo\"\nrequire 'erb'\n\ninput = STDIN.read\nquery = e_url(input)\nyahoo = VideoSearch.new('TM_YAHOO', query, 'all', 10, 1, nil, 1)\nysuggest = []\n yahoo.parse_results.each {|result| \n ysuggest << { \n 'title' => result['Title'].gsub('\"','&raquo;'),\n 'url' => result['Url']}\n }\n plist = { 'menuItems' => ysuggest }.to_plist\n\n res = OSX::PropertyList.load(`\#{e_sh DIALOG} -up \#{e_sh plist}`)\n TextMate.exit_show_tool_tip \"No matches found\" unless res.has_key? 'selectedMenuItem'\n url = res['selectedMenuItem']['url']\n title = res['selectedMenuItem']['title']\n\n print ERB.new(ENV['TM_LINK_FORMAT']).result",
65
+ fallbackInput: "word",
66
+ input: "selection",
67
+ keyEquivalent: "^Y",
68
+ name: "Yahoo Video Search",
69
+ output: "insertAsSnippet",
70
+ scope: "text",
71
+ uuid: "50A08D59-18D6-48C1-938D-6644906F5C83"},
72
+ {beforeRunningCommand: "nop",
73
+ command:
74
+ "#!/usr/bin/env ruby -rjcode -Ku\nSUPPORT = ENV['TM_SUPPORT_PATH']\nDIALOG = ENV['DIALOG']\nrequire SUPPORT + '/lib/escape'\nrequire SUPPORT + '/lib/osx/plist'\nrequire SUPPORT + '/lib/exit_codes'\nrequire \"\#{ENV['TM_BUNDLE_SUPPORT']}/lib/yahoo\"\nrequire 'erb'\n\ninput = STDIN.read\nquery = e_url(input)\nyahoo = WebSearch.new('TM_YAHOO', query, 'all', 10, 1, nil, 1)\nysuggest = []\n yahoo.parse_results.each {|result| \n ysuggest << { \n 'title' => result['Title'].gsub('\"','&raquo;'),\n 'url' => result['Url']}\n }\n plist = { 'menuItems' => ysuggest }.to_plist\n\n res = OSX::PropertyList.load(`\#{e_sh DIALOG} -up \#{e_sh plist}`)\n TextMate.exit_show_tool_tip \"No matches found\" unless res.has_key? 'selectedMenuItem'\n url = res['selectedMenuItem']['url']\n title = res['selectedMenuItem']['title']\n\n print ERB.new(ENV['TM_LINK_FORMAT']).result",
75
+ fallbackInput: "word",
76
+ input: "selection",
77
+ keyEquivalent: "^Y",
78
+ name: "Yahoo Web Search",
79
+ output: "insertAsSnippet",
80
+ scope: "text",
81
+ uuid: "2E03E8C8-DC99-4D15-AE46-0E8DCE6BBE6F"}]
@@ -0,0 +1,10 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "nop",
4
+ command:
5
+ "TM_RUBY=\"${TM_RUBY:=ruby}\"\nSUPPORT_PATH=${TM_BUNDLE_SUPPORT:=\"$TM_BUNDLE_PATH/Support\"}\nBROWSER=\"${SUPPORT_PATH}/browser.rb\"\n\n$TM_RUBY \"$BROWSER\" \"${TM_PROJECT_DIRECTORY:-TM_DIRECTORY}\" \"$SUPPORT_PATH\"",
6
+ input: "none",
7
+ keyEquivalent: "^I",
8
+ name: "Browse",
9
+ output: "showAsHTML",
10
+ uuid: "B0869DF4-B5E2-48A5-8550-5BABE67F6D25"}]
@@ -0,0 +1,11 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "nop",
4
+ command:
5
+ "#!/usr/bin/env ruby\nrequire ENV[\"TM_SUPPORT_PATH\"] + \"/lib/tm/executor\"\nrequire ENV[\"TM_SUPPORT_PATH\"] + \"/lib/tm/save_current_document\"\n\nTextMate.save_current_document\nTextMate::Executor.make_project_master_current_document\n\nTextMate::Executor.run(ENV[\"TM_IO\"] || \"io\", ENV[\"TM_FILEPATH\"], :version_args => [\"2>&1\", '<<< \"System version; System exit;\"'])\n",
6
+ input: "document",
7
+ keyEquivalent: "@r",
8
+ name: "Run Script",
9
+ output: "showAsHTML",
10
+ scope: "source.io",
11
+ uuid: "F35C936A-92CD-4D36-925D-F4457A52BCEE"}]
@@ -0,0 +1,29 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "nop",
4
+ command:
5
+ "#!/usr/bin/env ruby -wKU\n\nSUPPORT = ENV['TM_SUPPORT_PATH']\n\nrequire SUPPORT + '/lib/escape'\nrequire SUPPORT + '/lib/exit_codes'\nrequire SUPPORT + '/lib/ui'\n\nwords = `grep \"^$TM_CURRENT_WORD\" \"$TM_BUNDLE_PATH/support/data/completions.txt\"`.split(\"\\n\")\nTextMate.exit_show_tool_tip \"No completion available\" if words.empty?\n\nif words.size > 1\n\n\ti = TextMate::UI.menu(words)\n\tTextMate.exit_discard() if i == nil\n\tchoice = words[i]\n\t\nelse\n\tchoice = words.pop\nend\n\nsnip = choice[ENV['TM_CURRENT_WORD'].length..-1]\n\ni=0\nprint snip.gsub( /([a-zA-Z0-9\\:\\.]+?)([,\\)])/ ) {\n\t\"${\" + String(i+=1) + \":\" + $1 + \"}\" + $2\n}",
6
+ fallbackInput: "word",
7
+ input: "none",
8
+ keyEquivalent: "~",
9
+ name: "Auto Complete Method / Property",
10
+ output: "insertAsSnippet",
11
+ scope: "source.js.jsfl",
12
+ uuid: "C97C9490-30DF-4DC7-B5A1-9E3FA9691317"},
13
+ {beforeRunningCommand: "nop",
14
+ command: "asd.rb\n",
15
+ fallbackInput: "word",
16
+ input: "selection",
17
+ keyEquivalent: "^h",
18
+ name: "Documentation for Word / Selection",
19
+ output: "discard",
20
+ scope: "source.js.jsfl",
21
+ uuid: "4E4934AC-F290-49DD-A424-14B2760666E7"},
22
+ {beforeRunningCommand: "saveActiveFile",
23
+ command: "open \"$TM_FILEPATH\"\n",
24
+ input: "none",
25
+ keyEquivalent: "@r",
26
+ name: "Run",
27
+ output: "discard",
28
+ scope: "source.js.jsfl",
29
+ uuid: "3ACF1061-FE40-4377-9514-70B83494946D"}]
@@ -0,0 +1,11 @@
1
+ # Encoding: UTF-8
2
+
3
+ [{beforeRunningCommand: "nop",
4
+ command:
5
+ "#!/usr/bin/env ruby\nrequire 'strscan'\n\ndef indent\n \" \" * $indent * 4\nend\n\ns = StringScanner.new(STDIN.read)\nbrace_stack = []\ncomma_needed = false\nfirst_line = true\n$indent = 0\nuntil s.eos?\n if s.scan(/\\{/m)\n if comma_needed then puts \",\" else puts end\n comma_needed = false\n print indent + \"{\"\n first_line = false\n $indent += 1\n brace_stack.push \"{\"\n elsif s.scan(/\\}/m)\n $indent -= 1\n print \"\\n\" + indent + \"}\"\n if (b = brace_stack.pop) != \"{\"\n puts \"Expected '}' (\#{brace_stack.inspect} / \#{b})\"\n exit -1\n end\n elsif s.scan(/\\[/m)\n if comma_needed then puts \",\" else puts end\n comma_needed = false\n print indent + \"[\"\n $indent += 1\n brace_stack.push \"[\"\n elsif s.scan(/\\]/m)\n $indent -= 1\n print \"\\n\" + indent + \"]\"\n if (b = brace_stack.pop) != \"[\"\n puts \"Expected ']' (\#{brace_stack.inspect} / \#{b})\"\n exit -2\n end\n elsif s.scan(/,/m)\n comma_needed = true\n #print \"==\#{brace_stack.inspect}==\"\n #puts (brace_stack.last == \"{\" ? \"\" : indent) + \",\"\n else\n if comma_needed then puts \",\" else puts end\n comma_needed = false\n print indent + s.scan(/[^{}\\[\\],]+/m)\n end\nend",
6
+ input: "selection",
7
+ keyEquivalent: "^H",
8
+ name: "Reformat Document / Selection",
9
+ output: "replaceSelectedText",
10
+ scope: "source.json",
11
+ uuid: "4B74F2DE-E051-4E8D-9124-EBD90A2CDD2B"}]