ver 2009.12.14 → 2010.02

Sign up to get free protection for your applications and to get access to all the features.
Files changed (901) hide show
  1. data/.gitignore +1 -0
  2. data/.mailmap +1 -0
  3. data/.todo +102 -0
  4. data/.yardopts +1 -0
  5. data/AUTHORS +3 -3
  6. data/CHANGELOG +1597 -0
  7. data/MANIFEST +521 -329
  8. data/ROADMAP.textile +187 -0
  9. data/Rakefile +6 -4
  10. data/bin/ver +98 -35
  11. data/config/detect.rb +65 -37
  12. data/config/keymap/diakonos.rb +180 -178
  13. data/config/keymap/emacs.rb +44 -63
  14. data/config/keymap/nano.rb +174 -0
  15. data/config/keymap/vim.rb +459 -381
  16. data/config/plugin/animated_tiling.rb +90 -0
  17. data/config/plugin/autosave.rb +22 -0
  18. data/config/plugin/git.rb +46 -0
  19. data/config/plugin/smart_autoindent.rb +157 -0
  20. data/config/plugin/soma.rb +50 -0
  21. data/config/preferences/ANTLR.rb +6 -0
  22. data/config/preferences/ASP.rb +6 -0
  23. data/config/preferences/ActionScript.rb +747 -0
  24. data/config/preferences/Active4D.rb +35 -0
  25. data/config/preferences/Ada.rb +12 -0
  26. data/config/preferences/Ant.rb +348 -0
  27. data/config/preferences/Apache.rb +585 -0
  28. data/config/preferences/AppleScript.rb +35 -0
  29. data/config/preferences/Bulletin Board.rb +7 -0
  30. data/config/preferences/Bundle Development.rb +30 -0
  31. data/config/preferences/C++ Qt.rb +197 -0
  32. data/config/preferences/C.rb +60 -0
  33. data/config/preferences/CMake.rb +24 -0
  34. data/config/preferences/CSS.rb +396 -0
  35. data/config/preferences/ColdFusion.rb +13 -0
  36. data/config/preferences/Context Free.rb +16 -0
  37. data/config/preferences/D.rb +31 -0
  38. data/config/preferences/Diff.rb +36 -0
  39. data/config/preferences/DokuWiki.rb +13 -0
  40. data/config/preferences/Eiffel.rb +20 -0
  41. data/config/preferences/Erlang.rb +37 -0
  42. data/config/preferences/Experimental.rb +1352 -0
  43. data/config/preferences/F-Script.rb +29 -0
  44. data/config/preferences/FXScript.rb +23 -0
  45. data/config/preferences/Fortran.rb +70 -0
  46. data/config/preferences/GTD2.rb +6 -0
  47. data/config/preferences/GTDAlt.rb +12 -0
  48. data/config/preferences/Gettext.rb +14 -0
  49. data/config/preferences/Graphviz.rb +9 -0
  50. data/config/preferences/Gri.rb +9 -0
  51. data/config/preferences/HTML.rb +380 -0
  52. data/config/preferences/Haskell.rb +31 -0
  53. data/config/preferences/Hyperlink Helper.rb +78 -0
  54. data/config/preferences/Ini.rb +15 -0
  55. data/config/preferences/Io.rb +24 -0
  56. data/config/preferences/JSFL.rb +722 -0
  57. data/config/preferences/Java.rb +51 -0
  58. data/config/preferences/JavaScript Prototype & Script.aculo.us.rb +175 -0
  59. data/config/preferences/JavaScript YUI.rb +13 -0
  60. data/config/preferences/JavaScript.rb +41 -0
  61. data/config/preferences/LaTeX.rb +96 -0
  62. data/config/preferences/LilyPond.rb +22 -0
  63. data/config/preferences/Lisp.rb +17 -0
  64. data/config/preferences/Logo.rb +12 -0
  65. data/config/preferences/Logtalk.rb +193 -0
  66. data/config/preferences/Lua.rb +13 -0
  67. data/config/preferences/MEL.rb +13 -0
  68. data/config/preferences/MIPS Assembler.rb +9 -0
  69. data/config/preferences/Make.rb +8 -0
  70. data/config/preferences/Man Pages.rb +9 -0
  71. data/config/preferences/Matlab.rb +40 -0
  72. data/config/preferences/Maven.rb +220 -0
  73. data/config/preferences/Mediawiki.rb +27 -0
  74. data/config/preferences/Modula.rb +8 -0
  75. data/config/preferences/MoinMoin.rb +25 -0
  76. data/config/preferences/Movable Type.rb +47 -0
  77. data/config/preferences/OCaml Experimental Completions.rb +8 -0
  78. data/config/preferences/OCaml.rb +70 -0
  79. data/config/preferences/Objective-C.rb +54 -0
  80. data/config/preferences/OpenGL.rb +3327 -0
  81. data/config/preferences/Pascal.rb +15 -0
  82. data/config/preferences/Perl Template Toolkit.rb +19 -0
  83. data/config/preferences/Perl.rb +6 -0
  84. data/config/preferences/Postscript.rb +6 -0
  85. data/config/preferences/Processing.rb +13 -0
  86. data/config/preferences/Property List.rb +34 -0
  87. data/config/preferences/Python Django Templates.rb +13 -0
  88. data/config/preferences/Python.rb +24 -0
  89. data/config/preferences/Quake.rb +6 -0
  90. data/config/preferences/R Console (Rdaemon).rb +7 -0
  91. data/config/preferences/R.rb +17 -0
  92. data/config/preferences/Ragel.rb +6 -0
  93. data/config/preferences/Remind.rb +6 -0
  94. data/config/preferences/Rez.rb +10 -0
  95. data/config/preferences/Ruby Haml.rb +6 -0
  96. data/config/preferences/Ruby RSpec.rb +14 -0
  97. data/config/preferences/Ruby on Rails.rb +22 -0
  98. data/config/preferences/Ruby.rb +48 -0
  99. data/config/preferences/S5 Slide Show.rb +10 -0
  100. data/config/preferences/SQL.rb +17 -0
  101. data/config/preferences/SSH Config.rb +6 -0
  102. data/config/preferences/SWeave.rb +17 -0
  103. data/config/preferences/Scheme.rb +12 -0
  104. data/config/preferences/Scilab.rb +6 -0
  105. data/config/preferences/Shell Script.rb +13 -0
  106. data/config/preferences/Slate.rb +36 -0
  107. data/config/preferences/Source.rb +51 -0
  108. data/config/preferences/Standard ML.rb +18 -0
  109. data/config/preferences/Subversion.rb +6 -0
  110. data/config/preferences/Tcl.rb +19 -0
  111. data/config/preferences/TerminalMate.rb +46 -0
  112. data/config/preferences/Text.rb +31 -0
  113. data/config/preferences/TextMate.rb +18 -0
  114. data/config/preferences/Textile.rb +30 -0
  115. data/config/preferences/Thrift.rb +26 -0
  116. data/config/preferences/Twiki.rb +17 -0
  117. data/config/preferences/Txt2tags.rb +33 -0
  118. data/config/preferences/Vectorscript.rb +1240 -0
  119. data/config/preferences/XML.rb +26 -0
  120. data/config/preferences/YAML.rb +13 -0
  121. data/config/preferences/iCalendar.rb +6 -0
  122. data/config/preferences/iTerm.rb +16 -0
  123. data/config/preferences/newLisp.rb +10 -0
  124. data/config/preferences/reStructuredText.rb +17 -0
  125. data/config/rc.rb +13 -1
  126. data/config/snippets/ANTLR.rb +3 -0
  127. data/config/snippets/ASP vb.NET.rb +56 -0
  128. data/config/snippets/ASP.rb +38 -0
  129. data/config/snippets/ActionScript.rb +207 -0
  130. data/config/snippets/Active4D.rb +258 -0
  131. data/config/snippets/Ada.rb +62 -0
  132. data/config/snippets/Ant.rb +7 -0
  133. data/config/snippets/Apache.rb +22 -0
  134. data/config/snippets/AppleScript.rb +84 -0
  135. data/config/snippets/Bison.rb +3 -0
  136. data/config/snippets/Blogging.rb +20 -0
  137. data/config/snippets/Bulletin Board.rb +23 -0
  138. data/config/snippets/Bundle Development.rb +65 -0
  139. data/config/snippets/C++ Qt.rb +59 -0
  140. data/config/snippets/C.rb +102 -0
  141. data/config/snippets/CMake.rb +34 -0
  142. data/config/snippets/CSS.rb +117 -0
  143. data/config/snippets/CTags.rb +3 -0
  144. data/config/snippets/CVS.rb +3 -0
  145. data/config/snippets/ColdFusion.rb +1549 -0
  146. data/config/snippets/Context Free.rb +30 -0
  147. data/config/snippets/D.rb +113 -0
  148. data/config/snippets/Darcs.rb +3 -0
  149. data/config/snippets/Diff.rb +3 -0
  150. data/config/snippets/DokuWiki.rb +56 -0
  151. data/config/snippets/Doxygen.rb +42 -0
  152. data/config/snippets/Dylan.rb +3 -0
  153. data/config/snippets/Eiffel.rb +20 -0
  154. data/config/snippets/Erlang.rb +70 -0
  155. data/config/snippets/Experimental Wiki.rb +3 -0
  156. data/config/snippets/Experimental.rb +3 -0
  157. data/config/snippets/F-Script.rb +26 -0
  158. data/config/snippets/FXScript.rb +212 -0
  159. data/config/snippets/FileMerge.rb +3 -0
  160. data/config/snippets/Fortran.rb +282 -0
  161. data/config/snippets/GTD2.rb +3 -0
  162. data/config/snippets/GTDAlt.rb +6 -0
  163. data/config/snippets/GetBundle.rb +3 -0
  164. data/config/snippets/Gettext.rb +10 -0
  165. data/config/snippets/Graphviz.rb +3 -0
  166. data/config/snippets/Greasemonkey.rb +44 -0
  167. data/config/snippets/Gri.rb +12 -0
  168. data/config/snippets/HTML.rb +128 -0
  169. data/config/snippets/Haskell.rb +26 -0
  170. data/config/snippets/Hotkey.rb +3 -0
  171. data/config/snippets/Hyperlink Helper.rb +3 -0
  172. data/config/snippets/ImageBrowser.rb +3 -0
  173. data/config/snippets/Inform.rb +3 -0
  174. data/config/snippets/Ini.rb +3 -0
  175. data/config/snippets/Installer.rb +3 -0
  176. data/config/snippets/Io.rb +44 -0
  177. data/config/snippets/JSFL.rb +3 -0
  178. data/config/snippets/JSON.rb +3 -0
  179. data/config/snippets/Java.rb +94 -0
  180. data/config/snippets/JavaDoc.rb +58 -0
  181. data/config/snippets/JavaScript MooTools.rb +15 -0
  182. data/config/snippets/JavaScript Objective-J.rb +17 -0
  183. data/config/snippets/JavaScript Prototype & Script.aculo.us.rb +109 -0
  184. data/config/snippets/JavaScript YUI.rb +188 -0
  185. data/config/snippets/JavaScript jQuery.rb +377 -0
  186. data/config/snippets/JavaScript.rb +55 -0
  187. data/config/snippets/Lex-Flex.rb +3 -0
  188. data/config/snippets/Lighttpd.rb +3 -0
  189. data/config/snippets/LilyPond.rb +18 -0
  190. data/config/snippets/Lisp.rb +42 -0
  191. data/config/snippets/Logo.rb +8 -0
  192. data/config/snippets/Logtalk.rb +62 -0
  193. data/config/snippets/Lua.rb +35 -0
  194. data/config/snippets/MEL.rb +3 -0
  195. data/config/snippets/MIPS Assembler.rb +7 -0
  196. data/config/snippets/MacPorts.rb +3 -0
  197. data/config/snippets/Mail.rb +3 -0
  198. data/config/snippets/Make.rb +3 -0
  199. data/config/snippets/Man Pages.rb +3 -0
  200. data/config/snippets/Math.rb +3 -0
  201. data/config/snippets/Matlab.rb +180 -0
  202. data/config/snippets/Maven.rb +7 -0
  203. data/config/snippets/Mediawiki.rb +14 -0
  204. data/config/snippets/Mercurial.rb +3 -0
  205. data/config/snippets/Modula.rb +3 -0
  206. data/config/snippets/MoinMoin.rb +12 -0
  207. data/config/snippets/Movable Type.rb +55 -0
  208. data/config/snippets/Navigation.rb +3 -0
  209. data/config/snippets/Nemerle.rb +81 -0
  210. data/config/snippets/OCaml Code Completion Misc.rb +74 -0
  211. data/config/snippets/OCaml Code Completion Unix.rb +205 -0
  212. data/config/snippets/OCaml Experimental Completions.rb +3 -0
  213. data/config/snippets/OCaml.rb +75 -0
  214. data/config/snippets/ODCompletion.rb +120 -0
  215. data/config/snippets/Objective-C.rb +195 -0
  216. data/config/snippets/OpenGL.rb +3 -0
  217. data/config/snippets/Outlines.rb +3 -0
  218. data/config/snippets/PHP Smarty.rb +81 -0
  219. data/config/snippets/Pascal.rb +35 -0
  220. data/config/snippets/Perforce.rb +3 -0
  221. data/config/snippets/Perl HTML::Template.rb +27 -0
  222. data/config/snippets/Perl Mason.rb +32 -0
  223. data/config/snippets/Perl Template Toolkit.rb +22 -0
  224. data/config/snippets/Perl.rb +74 -0
  225. data/config/snippets/Postscript.rb +3 -0
  226. data/config/snippets/Processing.rb +35 -0
  227. data/config/snippets/Prolog.rb +3 -0
  228. data/config/snippets/Propel.rb +32 -0
  229. data/config/snippets/Property List.rb +26 -0
  230. data/config/snippets/Python Django Templates.rb +97 -0
  231. data/config/snippets/Python Django.rb +134 -0
  232. data/config/snippets/Quake.rb +3 -0
  233. data/config/snippets/R Console (R.app).rb +3 -0
  234. data/config/snippets/R Console (Rdaemon).rb +11 -0
  235. data/config/snippets/R.rb +79 -0
  236. data/config/snippets/Ragel.rb +3 -0
  237. data/config/snippets/Regular Expressions.rb +3 -0
  238. data/config/snippets/Remind.rb +17 -0
  239. data/config/snippets/Rez.rb +3 -0
  240. data/config/snippets/Ruby Haml.rb +3 -0
  241. data/config/snippets/Ruby RSpec.rb +240 -0
  242. data/config/snippets/Ruby on Rails.rb +767 -0
  243. data/config/snippets/Ruby.rb +547 -0
  244. data/config/snippets/S5 Slide Show.rb +26 -0
  245. data/config/snippets/SCons.rb +3 -0
  246. data/config/snippets/SQL.rb +3 -0
  247. data/config/snippets/SSH Config.rb +19 -0
  248. data/config/snippets/SVK.rb +3 -0
  249. data/config/snippets/SWIG.rb +20 -0
  250. data/config/snippets/SWeave.rb +3 -0
  251. data/config/snippets/Scheme.rb +3 -0
  252. data/config/snippets/Scilab.rb +81 -0
  253. data/config/snippets/Setext.rb +10 -0
  254. data/config/snippets/Shell Script.rb +44 -0
  255. data/config/snippets/Slate.rb +50 -0
  256. data/config/snippets/Source.rb +3 -0
  257. data/config/snippets/Standard ML.rb +29 -0
  258. data/config/snippets/Subversion.rb +3 -0
  259. data/config/snippets/TODO.rb +3 -0
  260. data/config/snippets/Tabular.rb +3 -0
  261. data/config/snippets/Tcl.rb +28 -0
  262. data/config/snippets/TerminalMate.rb +3 -0
  263. data/config/snippets/Text.rb +17 -0
  264. data/config/snippets/TextMate.rb +3 -0
  265. data/config/snippets/Textile.rb +47 -0
  266. data/config/snippets/Thrift.rb +20 -0
  267. data/config/snippets/Transmit.rb +3 -0
  268. data/config/snippets/Twiki.rb +107 -0
  269. data/config/snippets/Txt2tags.rb +81 -0
  270. data/config/snippets/Vectorscript.rb +40 -0
  271. data/config/snippets/Widget Creator.rb +7 -0
  272. data/config/snippets/XML.rb +20 -0
  273. data/config/snippets/Xcode.rb +3 -0
  274. data/config/snippets/YAML.rb +6 -0
  275. data/config/snippets/iCalendar.rb +3 -0
  276. data/config/snippets/iTerm.rb +3 -0
  277. data/config/snippets/newLisp.rb +33 -0
  278. data/config/snippets/reStructuredText.rb +22 -0
  279. data/config/syntax/ANTLR.rb +122 -0
  280. data/config/syntax/ASP vb.NET.rb +114 -0
  281. data/config/syntax/ASP.rb +72 -0
  282. data/config/syntax/ActionScript.rb +83 -0
  283. data/config/syntax/Active4D Config.rb +38 -0
  284. data/config/syntax/Active4D Library.rb +20 -0
  285. data/config/syntax/Active4D.rb +237 -0
  286. data/config/syntax/Ada.rb +50 -0
  287. data/config/syntax/Ant.rb +80 -0
  288. data/config/syntax/Apache.rb +148 -0
  289. data/config/syntax/AppleScript.rb +370 -0
  290. data/config/syntax/BibTeX.rb +98 -0
  291. data/config/syntax/Bison.rb +28 -0
  292. data/config/syntax/Blog - HTML.rb +38 -0
  293. data/config/syntax/Blog - Markdown.rb +36 -0
  294. data/config/syntax/Blog - Text.rb +24 -0
  295. data/config/syntax/Blog - Textile.rb +24 -0
  296. data/config/syntax/Bulletin Board.rb +202 -0
  297. data/config/syntax/C++ Qt.rb +27 -0
  298. data/config/syntax/C++.rb +159 -0
  299. data/config/syntax/C.rb +341 -0
  300. data/config/syntax/CMake Listfile.rb +87 -0
  301. data/config/syntax/CSS.rb +151 -0
  302. data/config/syntax/CSV.rb +52 -0
  303. data/config/syntax/ColdFusion.rb +92 -0
  304. data/config/syntax/Context Free.rb +133 -0
  305. data/config/syntax/D.rb +285 -0
  306. data/config/syntax/Diff.rb +59 -0
  307. data/config/syntax/DokuWiki.rb +158 -0
  308. data/config/syntax/Doxygen.rb +31 -0
  309. data/config/syntax/Dylan.rb +53 -0
  310. data/config/syntax/Eiffel.rb +52 -0
  311. data/config/syntax/Erlang.rb +632 -0
  312. data/config/syntax/F-Script.rb +56 -0
  313. data/config/syntax/FXScript.rb +140 -0
  314. data/config/syntax/Fortran - Modern.rb +147 -0
  315. data/config/syntax/Fortran - Punchcard.rb +257 -0
  316. data/config/syntax/GTD.rb +15 -0
  317. data/config/syntax/GTDalt.rb +95 -0
  318. data/config/syntax/Gettext.rb +54 -0
  319. data/config/syntax/Graphviz (DOT).rb +37 -0
  320. data/config/syntax/Greasemonkey.rb +31 -0
  321. data/config/syntax/Gri.rb +61 -0
  322. data/config/syntax/HTML (ASP).rb +23 -0
  323. data/config/syntax/HTML (ASP.net).rb +304 -0
  324. data/config/syntax/HTML (Active4D).rb +219 -0
  325. data/config/syntax/HTML (Django).rb +35 -0
  326. data/config/syntax/HTML (Erlang).rb +26 -0
  327. data/config/syntax/HTML (Mason).rb +74 -0
  328. data/config/syntax/HTML (Rails).rb +34 -0
  329. data/config/syntax/HTML (Tcl).rb +23 -0
  330. data/config/syntax/HTML (Template Toolkit).rb +88 -0
  331. data/config/syntax/HTML.rb +265 -0
  332. data/config/syntax/Haskell.rb +188 -0
  333. data/config/syntax/Inform.rb +37 -0
  334. data/config/syntax/Ini.rb +36 -0
  335. data/config/syntax/Installer Distribution Script.rb +78 -0
  336. data/config/syntax/Io.rb +59 -0
  337. data/config/syntax/JSFL.rb +24 -0
  338. data/config/syntax/JSON.rb +118 -0
  339. data/config/syntax/Java Properties.rb +21 -0
  340. data/config/syntax/Java Server Page (JSP).rb +71 -0
  341. data/config/syntax/Java.rb +288 -0
  342. data/config/syntax/JavaDoc.rb +178 -0
  343. data/config/syntax/JavaScript (Rails).rb +24 -0
  344. data/config/syntax/JavaScript.rb +193 -0
  345. data/config/syntax/Javascript YUI.rb +245 -0
  346. data/config/syntax/LaTeX Beamer.rb +30 -0
  347. data/config/syntax/LaTeX Log.rb +35 -0
  348. data/config/syntax/LaTeX Memoir.rb +46 -0
  349. data/config/syntax/LaTeX Rdaemon.rb +24 -0
  350. data/config/syntax/LaTeX.rb +424 -0
  351. data/config/syntax/Language Grammar.rb +585 -0
  352. data/config/syntax/Lex-Flex.rb +172 -0
  353. data/config/syntax/Lighttpd.rb +41 -0
  354. data/config/syntax/LilyPond.rb +383 -0
  355. data/config/syntax/Lisp.rb +43 -0
  356. data/config/syntax/Literate Haskell.rb +26 -0
  357. data/config/syntax/Logo.rb +25 -0
  358. data/config/syntax/Logtalk.rb +131 -0
  359. data/config/syntax/Lua.rb +65 -0
  360. data/config/syntax/MATLAB.rb +468 -0
  361. data/config/syntax/MEL.rb +65 -0
  362. data/config/syntax/MIPS Assembler.rb +47 -0
  363. data/config/syntax/MacPorts Portfile.rb +130 -0
  364. data/config/syntax/Mail.rb +97 -0
  365. data/config/syntax/Makefile.rb +30 -0
  366. data/config/syntax/Man.rb +16 -0
  367. data/config/syntax/Maven POM.rb +305 -0
  368. data/config/syntax/Mediawiki.rb +349 -0
  369. data/config/syntax/Modula-3.rb +40 -0
  370. data/config/syntax/MoinMoin.rb +132 -0
  371. data/config/syntax/MooTools.rb +375 -0
  372. data/config/syntax/Movable Type (MT only).rb +143 -0
  373. data/config/syntax/Movable Type.rb +156 -0
  374. data/config/syntax/Nemerle.rb +63 -0
  375. data/config/syntax/OCaml.rb +553 -0
  376. data/config/syntax/OCamllex.rb +133 -0
  377. data/config/syntax/OCamlyacc.rb +148 -0
  378. data/config/syntax/Objective-C++.rb +15 -0
  379. data/config/syntax/Objective-C.rb +423 -0
  380. data/config/syntax/Objective-J.rb +183 -0
  381. data/config/syntax/Octave.rb +215 -0
  382. data/config/syntax/OpenGL.rb +18 -0
  383. data/config/syntax/Pascal.rb +57 -0
  384. data/config/syntax/Perl HTML-Template.rb +61 -0
  385. data/config/syntax/Perl.rb +764 -0
  386. data/config/syntax/Plain Text.rb +27 -0
  387. data/config/syntax/Postscript.rb +88 -0
  388. data/config/syntax/Processing.rb +87 -0
  389. data/config/syntax/Prolog.rb +31 -0
  390. data/config/syntax/Property List.rb +463 -0
  391. data/config/syntax/Prototype & Script.aculo.us (JavaScript) Bracketed.rb +100 -0
  392. data/config/syntax/Prototype & Script.aculo.us (JavaScript).rb +56 -0
  393. data/config/syntax/Python Django.rb +25 -0
  394. data/config/syntax/Python.rb +836 -0
  395. data/config/syntax/Quake Style .cfg.rb +27 -0
  396. data/config/syntax/R Console (R.app).rb +13 -0
  397. data/config/syntax/R Console (Rdaemon) Plain.rb +30 -0
  398. data/config/syntax/R Console (Rdaemon).rb +33 -0
  399. data/config/syntax/R.rb +64 -0
  400. data/config/syntax/RJS.rb +8 -0
  401. data/config/syntax/RSpec.rb +64 -0
  402. data/config/syntax/Ragel.rb +159 -0
  403. data/config/syntax/Rd (R Documentation).rb +50 -0
  404. data/config/syntax/Regular Expressions (Oniguruma).rb +78 -0
  405. data/config/syntax/Regular Expressions (Python).rb +78 -0
  406. data/config/syntax/Release Notes.rb +38 -0
  407. data/config/syntax/Remind.rb +179 -0
  408. data/config/syntax/Rez.rb +61 -0
  409. data/config/syntax/Ruby Haml.rb +97 -0
  410. data/config/syntax/Ruby on Rails.rb +116 -0
  411. data/config/syntax/Ruby.rb +758 -0
  412. data/config/syntax/S5 Slide Show.rb +51 -0
  413. data/config/syntax/SQL (Rails).rb +17 -0
  414. data/config/syntax/SQL.rb +205 -0
  415. data/config/syntax/SSH Config.rb +25 -0
  416. data/config/syntax/SWIG.rb +47 -0
  417. data/config/syntax/SWeave.rb +57 -0
  418. data/config/syntax/Scheme.rb +280 -0
  419. data/config/syntax/Scilab.rb +30 -0
  420. data/config/syntax/Setext.rb +102 -0
  421. data/config/syntax/Shell Script (Bash).rb +454 -0
  422. data/config/syntax/Slate.rb +96 -0
  423. data/config/syntax/Smarty.rb +46 -0
  424. data/config/syntax/Standard ML - CM.rb +27 -0
  425. data/config/syntax/Standard ML.rb +119 -0
  426. data/config/syntax/Strings File.rb +33 -0
  427. data/config/syntax/TSV.rb +40 -0
  428. data/config/syntax/Tcl.rb +119 -0
  429. data/config/syntax/TeX Math.rb +37 -0
  430. data/config/syntax/TeX.rb +58 -0
  431. data/config/syntax/Textile.rb +174 -0
  432. data/config/syntax/Thrift.rb +285 -0
  433. data/config/syntax/Twiki.rb +163 -0
  434. data/config/syntax/Txt2tags.rb +70 -0
  435. data/config/syntax/Vectorscript.rb +48 -0
  436. data/config/syntax/XML strict.rb +60 -0
  437. data/config/syntax/XML.rb +117 -0
  438. data/config/syntax/XSL.rb +43 -0
  439. data/config/syntax/YAML.rb +109 -0
  440. data/config/syntax/camlp4.rb +27 -0
  441. data/config/syntax/iCalendar.rb +25 -0
  442. data/config/syntax/jQuery (JavaScript).rb +108 -0
  443. data/config/syntax/mod_perl.rb +41 -0
  444. data/config/syntax/newLisp.rb +82 -0
  445. data/config/syntax/qmake Project file.rb +87 -0
  446. data/config/syntax/reStructuredText.rb +180 -0
  447. data/config/syntax/svn-commit.tmp.rb +25 -0
  448. data/config/theme/Active4D.rb +105 -0
  449. data/config/theme/All Hallow's Eve.rb +70 -0
  450. data/config/theme/Amy.rb +141 -0
  451. data/config/theme/Blackboard.rb +90 -0
  452. data/config/theme/Brilliance Black.rb +693 -0
  453. data/config/theme/Brilliance Dull.rb +588 -0
  454. data/config/theme/Cobalt.rb +147 -0
  455. data/config/theme/Dawn.rb +113 -0
  456. data/config/theme/Eiffel.rb +113 -0
  457. data/config/theme/Embers.rb +125 -0
  458. data/config/theme/Espresso Libre.rb +104 -0
  459. data/config/theme/IDLE.rb +57 -0
  460. data/config/theme/LAZY.rb +74 -0
  461. data/config/theme/Mac Classic.rb +117 -0
  462. data/config/theme/MagicWB (Amiga).rb +97 -0
  463. data/config/theme/Pastels on Dark.rb +182 -0
  464. data/config/theme/Slush & Poppies.rb +83 -0
  465. data/config/theme/SpaceCadet.rb +44 -0
  466. data/config/theme/Sunburst.rb +172 -0
  467. data/config/theme/Twilight.rb +137 -0
  468. data/config/theme/Zenburnesque.rb +88 -0
  469. data/config/theme/iPlastic.rb +73 -0
  470. data/config/theme/newLISP dark.rb +183 -0
  471. data/config/theme/newLISP.rb +183 -0
  472. data/config/welcome +10 -14
  473. data/lib/ver.rb +272 -79
  474. data/lib/ver/action.rb +43 -0
  475. data/lib/ver/buffer.rb +229 -0
  476. data/lib/ver/buffer/console.rb +171 -0
  477. data/lib/ver/buffer/term.rb +255 -0
  478. data/lib/ver/entry.rb +120 -97
  479. data/lib/ver/exception_view.rb +11 -1
  480. data/lib/ver/executor.rb +83 -0
  481. data/lib/ver/executor/buffer.rb +31 -0
  482. data/lib/ver/executor/entry.rb +175 -0
  483. data/lib/ver/executor/fuzzy_file_finder.rb +100 -0
  484. data/lib/ver/executor/grep.rb +101 -0
  485. data/lib/ver/executor/label.rb +57 -0
  486. data/lib/ver/executor/locate.rb +20 -0
  487. data/lib/ver/executor/method.rb +80 -0
  488. data/lib/ver/executor/path.rb +45 -0
  489. data/lib/ver/executor/syntax.rb +22 -0
  490. data/lib/ver/executor/theme.rb +21 -0
  491. data/lib/ver/help.rb +0 -10
  492. data/lib/ver/help/describe_key.rb +8 -7
  493. data/lib/ver/help/help_for_help.rb +1 -1
  494. data/lib/ver/hover_completion.rb +39 -34
  495. data/lib/ver/keymap.rb +121 -158
  496. data/lib/ver/keymap/keymapped.rb +25 -0
  497. data/lib/ver/keysyms.rb +104 -0
  498. data/lib/ver/layout/notebook.rb +74 -0
  499. data/lib/ver/layout/paned.rb +184 -0
  500. data/lib/ver/layout/tiling.rb +135 -0
  501. data/lib/ver/layout/tiling/common.rb +34 -0
  502. data/lib/ver/layout/tiling/horizontal.rb +25 -0
  503. data/lib/ver/layout/tiling/vertical.rb +25 -0
  504. data/lib/ver/major_mode.rb +162 -0
  505. data/lib/ver/methods.rb +21 -22
  506. data/lib/ver/methods/autofill.rb +23 -0
  507. data/lib/ver/methods/basic.rb +53 -0
  508. data/lib/ver/methods/bookmark.rb +116 -104
  509. data/lib/ver/methods/clipboard.rb +59 -47
  510. data/lib/ver/methods/completion.rb +93 -77
  511. data/lib/ver/methods/control.rb +297 -240
  512. data/lib/ver/methods/ctags.rb +38 -29
  513. data/lib/ver/methods/delete.rb +47 -31
  514. data/lib/ver/methods/help.rb +9 -1
  515. data/lib/ver/methods/insert.rb +67 -203
  516. data/lib/ver/methods/layout.rb +122 -0
  517. data/lib/ver/methods/move.rb +229 -158
  518. data/lib/ver/methods/nano.rb +186 -0
  519. data/lib/ver/methods/open.rb +247 -53
  520. data/lib/ver/methods/preview.rb +66 -5
  521. data/lib/ver/methods/save.rb +127 -44
  522. data/lib/ver/methods/search.rb +103 -56
  523. data/lib/ver/methods/search_and_replace.rb +118 -0
  524. data/lib/ver/methods/selection.rb +443 -0
  525. data/lib/ver/methods/snippet.rb +244 -0
  526. data/lib/ver/methods/undo.rb +34 -13
  527. data/lib/ver/minibuffer.rb +293 -0
  528. data/lib/ver/minor_mode.rb +204 -0
  529. data/lib/ver/plist.rb +208 -20
  530. data/lib/ver/status.rb +76 -128
  531. data/lib/ver/status/battery.rb +147 -0
  532. data/lib/ver/status/buffer_position.rb +17 -0
  533. data/lib/ver/status/diakonos_position.rb +17 -0
  534. data/lib/ver/status/encoding.rb +13 -0
  535. data/lib/ver/status/filename.rb +13 -0
  536. data/lib/ver/status/label.rb +62 -0
  537. data/lib/ver/status/mode.rb +15 -0
  538. data/lib/ver/status/nano_help.rb +71 -0
  539. data/lib/ver/status/nano_position.rb +38 -0
  540. data/lib/ver/status/percent.rb +17 -0
  541. data/lib/ver/status/position.rb +16 -0
  542. data/lib/ver/status/separator.rb +20 -0
  543. data/lib/ver/status/short_filename.rb +13 -0
  544. data/lib/ver/status/syntax.rb +13 -0
  545. data/lib/ver/syntax.rb +15 -20
  546. data/lib/ver/syntax/detector.rb +7 -13
  547. data/lib/ver/syntax/processor.rb +4 -4
  548. data/lib/ver/text.rb +337 -170
  549. data/lib/ver/theme.rb +51 -28
  550. data/lib/ver/treeview.rb +54 -0
  551. data/lib/ver/undo.rb +37 -17
  552. data/lib/ver/vendor/better_pp_hash.rb +27 -0
  553. data/lib/ver/vendor/binary_search.rb +2 -2
  554. data/lib/ver/vendor/fuzzy_file_finder.rb +22 -8
  555. data/lib/ver/vendor/pathname.rb +26 -0
  556. data/lib/ver/vendor/textpow.rb +30 -32
  557. data/lib/ver/version.rb +1 -1
  558. data/lib/ver/widget_event.rb +49 -0
  559. data/lib/ver/widget_major_mode.rb +192 -0
  560. data/spec/helper.rb +49 -78
  561. data/spec/tm_snippet.rb +178 -0
  562. data/spec/ver/action.rb +65 -0
  563. data/spec/ver/keymap.rb +77 -0
  564. data/spec/ver/major_mode.rb +150 -0
  565. data/spec/ver/methods/move.rb +150 -0
  566. data/spec/ver/minor_mode.rb +90 -0
  567. data/spec/ver/plugin/smart_autoindent.rb +276 -0
  568. data/spec/ver/widget_major_mode.rb +69 -0
  569. data/tasks/rcov.rake +2 -3
  570. data/tasks/syntax_list.rake +28 -24
  571. data/ver.gemspec +6 -9
  572. metadata +524 -342
  573. data/TODO +0 -169
  574. data/config/preferences/ANTLR.json +0 -10
  575. data/config/preferences/ASP vb.NET.json +0 -3
  576. data/config/preferences/ASP.json +0 -15
  577. data/config/preferences/ActionScript.json +0 -755
  578. data/config/preferences/Active4D.json +0 -89
  579. data/config/preferences/Ada.json +0 -23
  580. data/config/preferences/Ant.json +0 -356
  581. data/config/preferences/Apache.json +0 -644
  582. data/config/preferences/AppleScript.json +0 -92
  583. data/config/preferences/Bison.json +0 -3
  584. data/config/preferences/Blogging.json +0 -3
  585. data/config/preferences/C.json +0 -127
  586. data/config/preferences/CMake.json +0 -41
  587. data/config/preferences/CSS.json +0 -461
  588. data/config/preferences/CTags.json +0 -3
  589. data/config/preferences/CVS.json +0 -3
  590. data/config/preferences/ColdFusion.json +0 -32
  591. data/config/preferences/D.json +0 -58
  592. data/config/preferences/Darcs.json +0 -3
  593. data/config/preferences/Diff.json +0 -67
  594. data/config/preferences/DokuWiki.json +0 -19
  595. data/config/preferences/Doxygen.json +0 -3
  596. data/config/preferences/Dylan.json +0 -3
  597. data/config/preferences/Eiffel.json +0 -59
  598. data/config/preferences/Erlang.json +0 -72
  599. data/config/preferences/Experimental.json +0 -1356
  600. data/config/preferences/F-Script.json +0 -87
  601. data/config/preferences/FXScript.json +0 -78
  602. data/config/preferences/FileMerge.json +0 -3
  603. data/config/preferences/Fortran.json +0 -158
  604. data/config/preferences/GTD2.json +0 -11
  605. data/config/preferences/GTDAlt.json +0 -20
  606. data/config/preferences/GetBundle.json +0 -3
  607. data/config/preferences/Gettext.json +0 -24
  608. data/config/preferences/Graphviz.json +0 -42
  609. data/config/preferences/Greasemonkey.json +0 -3
  610. data/config/preferences/Gri.json +0 -34
  611. data/config/preferences/HTML.json +0 -492
  612. data/config/preferences/Haskell.json +0 -72
  613. data/config/preferences/Hotkey.json +0 -3
  614. data/config/preferences/ImageBrowser.json +0 -3
  615. data/config/preferences/Inform.json +0 -3
  616. data/config/preferences/Ini.json +0 -60
  617. data/config/preferences/Installer.json +0 -3
  618. data/config/preferences/Io.json +0 -64
  619. data/config/preferences/JSON.json +0 -3
  620. data/config/preferences/Java.json +0 -86
  621. data/config/preferences/JavaDoc.json +0 -3
  622. data/config/preferences/JavaScript.json +0 -76
  623. data/config/preferences/LaTeX.json +0 -267
  624. data/config/preferences/Lex/Flex.json +0 -3
  625. data/config/preferences/Lighttpd.json +0 -3
  626. data/config/preferences/LilyPond.json +0 -77
  627. data/config/preferences/Lisp.json +0 -63
  628. data/config/preferences/Logo.json +0 -58
  629. data/config/preferences/Logtalk.json +0 -236
  630. data/config/preferences/Lua.json +0 -24
  631. data/config/preferences/MEL.json +0 -19
  632. data/config/preferences/MIPS Assembler.json +0 -26
  633. data/config/preferences/MacPorts.json +0 -3
  634. data/config/preferences/Mail.json +0 -3
  635. data/config/preferences/Make.json +0 -16
  636. data/config/preferences/Markdown.json +0 -102
  637. data/config/preferences/Math.json +0 -3
  638. data/config/preferences/Matlab.json +0 -128
  639. data/config/preferences/Maven.json +0 -308
  640. data/config/preferences/Mediawiki.json +0 -73
  641. data/config/preferences/Mercurial.json +0 -3
  642. data/config/preferences/Modula.json +0 -37
  643. data/config/preferences/MoinMoin.json +0 -52
  644. data/config/preferences/Navigation.json +0 -3
  645. data/config/preferences/Nemerle.json +0 -3
  646. data/config/preferences/OCaml Code Completion.json +0 -3
  647. data/config/preferences/OCaml.json +0 -163
  648. data/config/preferences/ODCompletion.json +0 -3
  649. data/config/preferences/Objective-C.json +0 -84
  650. data/config/preferences/OpenGL.json +0 -3331
  651. data/config/preferences/Outlines.json +0 -3
  652. data/config/preferences/Pascal.json +0 -60
  653. data/config/preferences/Perforce.json +0 -3
  654. data/config/preferences/Perl.json +0 -15
  655. data/config/preferences/PmWiki.json +0 -27
  656. data/config/preferences/Postscript.json +0 -15
  657. data/config/preferences/Processing.json +0 -32
  658. data/config/preferences/Prolog.json +0 -3
  659. data/config/preferences/Propel.json +0 -3
  660. data/config/preferences/Python.json +0 -38
  661. data/config/preferences/Quake.json +0 -15
  662. data/config/preferences/R.json +0 -33
  663. data/config/preferences/Ragel.json +0 -15
  664. data/config/preferences/Regular Expressions.json +0 -3
  665. data/config/preferences/Remind.json +0 -15
  666. data/config/preferences/Rez.json +0 -46
  667. data/config/preferences/Ruby.json +0 -98
  668. data/config/preferences/S5 Slide Show.json +0 -20
  669. data/config/preferences/SCons.json +0 -3
  670. data/config/preferences/SQL.json +0 -32
  671. data/config/preferences/SSH Config.json +0 -15
  672. data/config/preferences/SVK.json +0 -3
  673. data/config/preferences/SWIG.json +0 -3
  674. data/config/preferences/SWeave.json +0 -32
  675. data/config/preferences/Scheme.json +0 -35
  676. data/config/preferences/Scilab.json +0 -15
  677. data/config/preferences/Setext.json +0 -3
  678. data/config/preferences/Shell Script.json +0 -25
  679. data/config/preferences/Slate.json +0 -113
  680. data/config/preferences/Source.json +0 -132
  681. data/config/preferences/Subversion.json +0 -10
  682. data/config/preferences/TODO.json +0 -3
  683. data/config/preferences/Tabular.json +0 -3
  684. data/config/preferences/Tcl.json +0 -82
  685. data/config/preferences/TerminalMate.json +0 -112
  686. data/config/preferences/Text.json +0 -89
  687. data/config/preferences/TextMate.json +0 -38
  688. data/config/preferences/Textile.json +0 -76
  689. data/config/preferences/Thrift.json +0 -56
  690. data/config/preferences/Transmit.json +0 -3
  691. data/config/preferences/Twiki.json +0 -51
  692. data/config/preferences/Txt2tags.json +0 -81
  693. data/config/preferences/Vectorscript.json +0 -1280
  694. data/config/preferences/XML.json +0 -60
  695. data/config/preferences/Xcode.json +0 -3
  696. data/config/preferences/YAML.json +0 -24
  697. data/config/preferences/iCalendar.json +0 -10
  698. data/config/preferences/iTerm.json +0 -36
  699. data/config/preferences/reStructuredText.json +0 -48
  700. data/config/syntax/ANTLR.json +0 -275
  701. data/config/syntax/ASP vb.NET.json +0 -228
  702. data/config/syntax/ASP.json +0 -135
  703. data/config/syntax/ActionScript.json +0 -168
  704. data/config/syntax/Active4D Config.json +0 -86
  705. data/config/syntax/Active4D Library.json +0 -20
  706. data/config/syntax/Active4D.json +0 -418
  707. data/config/syntax/Ada.json +0 -108
  708. data/config/syntax/Ant.json +0 -196
  709. data/config/syntax/Apache.json +0 -342
  710. data/config/syntax/AppleScript.json +0 -721
  711. data/config/syntax/BibTeX.json +0 -253
  712. data/config/syntax/Bison.json +0 -59
  713. data/config/syntax/Blog - HTML.json +0 -47
  714. data/config/syntax/Blog - Markdown.json +0 -50
  715. data/config/syntax/Blog - Text.json +0 -45
  716. data/config/syntax/Blog - Textile.json +0 -45
  717. data/config/syntax/C++.json +0 -323
  718. data/config/syntax/C.json +0 -694
  719. data/config/syntax/CMake Listfile.json +0 -171
  720. data/config/syntax/CSS.json +0 -346
  721. data/config/syntax/CSV.json +0 -108
  722. data/config/syntax/ColdFusion.json +0 -204
  723. data/config/syntax/D.json +0 -560
  724. data/config/syntax/Diff.json +0 -136
  725. data/config/syntax/DokuWiki.json +0 -412
  726. data/config/syntax/Doxygen.json +0 -80
  727. data/config/syntax/Dylan.json +0 -104
  728. data/config/syntax/Eiffel.json +0 -128
  729. data/config/syntax/Erlang.json +0 -1636
  730. data/config/syntax/F-Script.json +0 -137
  731. data/config/syntax/FXScript.json +0 -260
  732. data/config/syntax/Fortran - Modern.json +0 -221
  733. data/config/syntax/Fortran - Punchcard.json +0 -468
  734. data/config/syntax/GTD.json +0 -39
  735. data/config/syntax/GTDalt.json +0 -233
  736. data/config/syntax/Gettext.json +0 -118
  737. data/config/syntax/Go.json +0 -555
  738. data/config/syntax/Graphviz (DOT).json +0 -79
  739. data/config/syntax/Greasemonkey.json +0 -56
  740. data/config/syntax/Gri.json +0 -141
  741. data/config/syntax/HTML (ASP).json +0 -45
  742. data/config/syntax/HTML (ASP.net).json +0 -736
  743. data/config/syntax/HTML (Active4D).json +0 -540
  744. data/config/syntax/HTML (Erlang).json +0 -31
  745. data/config/syntax/HTML (Tcl).json +0 -42
  746. data/config/syntax/HTML.json +0 -614
  747. data/config/syntax/Haskell.json +0 -407
  748. data/config/syntax/Inform.json +0 -80
  749. data/config/syntax/Ini.json +0 -91
  750. data/config/syntax/Installer Distribution Script.json +0 -135
  751. data/config/syntax/Io.json +0 -142
  752. data/config/syntax/JSON.json +0 -151
  753. data/config/syntax/Java Properties.json +0 -42
  754. data/config/syntax/Java Server Page (JSP).json +0 -163
  755. data/config/syntax/Java.json +0 -745
  756. data/config/syntax/JavaDoc.json +0 -435
  757. data/config/syntax/JavaScript.json +0 -446
  758. data/config/syntax/LaTeX Beamer.json +0 -65
  759. data/config/syntax/LaTeX Log.json +0 -88
  760. data/config/syntax/LaTeX Memoir.json +0 -101
  761. data/config/syntax/LaTeX.json +0 -962
  762. data/config/syntax/Lex-Flex.json +0 -396
  763. data/config/syntax/Lighttpd.json +0 -93
  764. data/config/syntax/LilyPond.json +0 -608
  765. data/config/syntax/Lisp.json +0 -101
  766. data/config/syntax/Literate Haskell.json +0 -55
  767. data/config/syntax/Logo.json +0 -48
  768. data/config/syntax/Logtalk.json +0 -289
  769. data/config/syntax/Lua.json +0 -146
  770. data/config/syntax/MATLAB.json +0 -744
  771. data/config/syntax/MEL.json +0 -161
  772. data/config/syntax/MIPS Assembler.json +0 -114
  773. data/config/syntax/MacPorts Portfile.json +0 -298
  774. data/config/syntax/Mail.json +0 -224
  775. data/config/syntax/Makefile.json +0 -66
  776. data/config/syntax/Markdown.json +0 -644
  777. data/config/syntax/Maven POM.json +0 -774
  778. data/config/syntax/Mediawiki.json +0 -736
  779. data/config/syntax/Modula-3.json +0 -80
  780. data/config/syntax/MoinMoin.json +0 -335
  781. data/config/syntax/MultiMarkdown.json +0 -41
  782. data/config/syntax/Nemerle.json +0 -128
  783. data/config/syntax/OCaml.json +0 -1391
  784. data/config/syntax/OCamllex.json +0 -307
  785. data/config/syntax/OCamlyacc.json +0 -346
  786. data/config/syntax/Objective-C++.json +0 -21
  787. data/config/syntax/Objective-C.json +0 -979
  788. data/config/syntax/Octave.json +0 -417
  789. data/config/syntax/OpenGL.json +0 -24
  790. data/config/syntax/PHP.json +0 -2184
  791. data/config/syntax/Pascal.json +0 -128
  792. data/config/syntax/Perl.json +0 -2091
  793. data/config/syntax/Plain Text.json +0 -49
  794. data/config/syntax/PmWiki.json +0 -241
  795. data/config/syntax/Postscript.json +0 -206
  796. data/config/syntax/Processing.json +0 -188
  797. data/config/syntax/Prolog.json +0 -70
  798. data/config/syntax/Python.json +0 -1934
  799. data/config/syntax/Quake Style .cfg.json +0 -54
  800. data/config/syntax/R.json +0 -157
  801. data/config/syntax/Ragel.json +0 -362
  802. data/config/syntax/Rd (R Documentation).json +0 -119
  803. data/config/syntax/Regular Expressions (Oniguruma).json +0 -186
  804. data/config/syntax/Regular Expressions (Python).json +0 -188
  805. data/config/syntax/Release Notes.json +0 -78
  806. data/config/syntax/Remind.json +0 -461
  807. data/config/syntax/Rez.json +0 -137
  808. data/config/syntax/Ruby Sass.json +0 -497
  809. data/config/syntax/Ruby.json +0 -1753
  810. data/config/syntax/S5 Slide Show.json +0 -85
  811. data/config/syntax/SQL.json +0 -435
  812. data/config/syntax/SSH Config.json +0 -55
  813. data/config/syntax/SWIG.json +0 -96
  814. data/config/syntax/SWeave.json +0 -139
  815. data/config/syntax/Scheme.json +0 -359
  816. data/config/syntax/Scilab.json +0 -69
  817. data/config/syntax/Setext.json +0 -247
  818. data/config/syntax/Shell Script (Bash).json +0 -1198
  819. data/config/syntax/Slate.json +0 -265
  820. data/config/syntax/Strings File.json +0 -53
  821. data/config/syntax/TSV.json +0 -83
  822. data/config/syntax/Tcl.json +0 -278
  823. data/config/syntax/TeX Math.json +0 -83
  824. data/config/syntax/TeX.json +0 -157
  825. data/config/syntax/Textile.json +0 -273
  826. data/config/syntax/Thrift.json +0 -641
  827. data/config/syntax/Twiki.json +0 -436
  828. data/config/syntax/Txt2tags.json +0 -154
  829. data/config/syntax/Vectorscript.json +0 -97
  830. data/config/syntax/XML strict.json +0 -148
  831. data/config/syntax/XML.json +0 -301
  832. data/config/syntax/XSL.json +0 -96
  833. data/config/syntax/YAML.json +0 -293
  834. data/config/syntax/camlp4.json +0 -63
  835. data/config/syntax/iCalendar.json +0 -51
  836. data/config/syntax/mod_perl.json +0 -72
  837. data/config/syntax/reStructuredText.json +0 -403
  838. data/config/syntax/svn-commit.tmp.json +0 -62
  839. data/config/theme/Active4D.json +0 -260
  840. data/config/theme/All Hallow's Eve.json +0 -171
  841. data/config/theme/Amy.json +0 -359
  842. data/config/theme/BBEdit.json +0 -269
  843. data/config/theme/Bespin.json +0 -322
  844. data/config/theme/Blackboard.json +0 -215
  845. data/config/theme/BoysAndGirls01.json +0 -156
  846. data/config/theme/Brilliance Black.json +0 -1695
  847. data/config/theme/Brilliance Dull.json +0 -1451
  848. data/config/theme/Classic Modified.json +0 -288
  849. data/config/theme/Cobalt.json +0 -345
  850. data/config/theme/Cool Glow.json +0 -215
  851. data/config/theme/Dawn.json +0 -258
  852. data/config/theme/Eiffel.json +0 -270
  853. data/config/theme/Espresso Libre.json +0 -247
  854. data/config/theme/Fluidvision.json +0 -272
  855. data/config/theme/IDLE.json +0 -159
  856. data/config/theme/LAZY.json +0 -178
  857. data/config/theme/Mac Classic.json +0 -277
  858. data/config/theme/MagicWB (Amiga).json +0 -231
  859. data/config/theme/Merbivore Soft.json +0 -181
  860. data/config/theme/Merbivore.json +0 -181
  861. data/config/theme/Monokai.json +0 -177
  862. data/config/theme/Notepad2.json +0 -166
  863. data/config/theme/Pastels on Dark.json +0 -437
  864. data/config/theme/RubyBlue.json +0 -226
  865. data/config/theme/Sin City 2.json +0 -361
  866. data/config/theme/Slate.json +0 -270
  867. data/config/theme/Slush & Poppies.json +0 -232
  868. data/config/theme/SpaceCadet.json +0 -143
  869. data/config/theme/Sunburst.json +0 -415
  870. data/config/theme/Twilight BG FG.json +0 -633
  871. data/config/theme/Twilight.json +0 -321
  872. data/config/theme/Whys Poignant.json +0 -119
  873. data/config/theme/Zenburnesque.json +0 -237
  874. data/config/theme/barf.json +0 -155
  875. data/config/theme/fake.json +0 -418
  876. data/config/theme/happydeluxe.json +0 -114
  877. data/config/theme/iLife 05.json +0 -393
  878. data/config/theme/iPlastic.json +0 -177
  879. data/config/theme/mintBlue Dark.json +0 -414
  880. data/config/theme/mintBlue.json +0 -415
  881. data/config/theme/monoindustrial.json +0 -276
  882. data/config/theme/starlight.json +0 -67
  883. data/lib/ver/layout.rb +0 -177
  884. data/lib/ver/methods/select.rb +0 -322
  885. data/lib/ver/methods/shortcuts.rb +0 -21
  886. data/lib/ver/methods/views.rb +0 -81
  887. data/lib/ver/mode.rb +0 -207
  888. data/lib/ver/status/context.rb +0 -166
  889. data/lib/ver/view.rb +0 -190
  890. data/lib/ver/view/console.rb +0 -171
  891. data/lib/ver/view/entry.rb +0 -32
  892. data/lib/ver/view/list.rb +0 -152
  893. data/lib/ver/view/list/buffer.rb +0 -27
  894. data/lib/ver/view/list/ex.rb +0 -71
  895. data/lib/ver/view/list/fuzzy_file_finder.rb +0 -44
  896. data/lib/ver/view/list/grep.rb +0 -53
  897. data/lib/ver/view/list/methods.rb +0 -159
  898. data/lib/ver/view/list/syntax.rb +0 -13
  899. data/lib/ver/view/list/theme.rb +0 -13
  900. data/lib/ver/view/term.rb +0 -255
  901. data/tasks/plist2json.rake +0 -35
@@ -1,46 +1,60 @@
1
1
  module VER
2
2
  module Methods
3
3
  module Clipboard
4
- def copy_line
5
- copy get('insert linestart', 'insert lineend + 1 chars')
4
+ module_function
5
+
6
+ def copy_line(text)
7
+ content = text.get('insert linestart', 'insert lineend + 1 chars')
8
+ copy(text, content)
6
9
  end
7
10
 
8
- def copy_right_word
9
- copy get('insert', 'insert wordend')
11
+ def copy_motion(text, motion, count = 1)
12
+ movement = Move.virtual(text, motion, count)
13
+ copy(text, text.get(*movement))
10
14
  end
11
15
 
12
- def copy_left_word
13
- copy get('insert', 'insert wordstart')
16
+ # FIXME: nasty hack or neccesary?
17
+ def paste(text)
18
+ content = clipboard_get(text, 'STRING'){
19
+ array = clipboard_get(text, 'ARRAY')
20
+ return paste_array(text, array) if array
21
+ }
22
+
23
+ paste_continous(text, content.to_s) if content
14
24
  end
15
25
 
16
- def copy(text)
17
- if text.respond_to?(:to_str)
18
- copy_string(text)
19
- elsif text.respond_to?(:to_ary)
20
- copy_array(text)
26
+ def paste_above(text)
27
+ text.mark_set(:insert, 'insert - 1 line lineend')
28
+ paste(text)
29
+ end
30
+
31
+ def copy(text, content)
32
+ if content.respond_to?(:to_str)
33
+ copy_string(content.to_str)
34
+ elsif content.respond_to?(:to_ary)
35
+ copy_array(content.to_ary)
21
36
  else
22
- copy_fallback(text)
37
+ copy_fallback(content)
23
38
  end
24
39
  end
25
40
 
26
- def copy_string(text)
27
- clipboard_set(text = text.to_str, type: 'STRING')
41
+ def copy_string(content)
42
+ Tk::Clipboard.set(content, type: 'STRING')
28
43
 
29
- copy_message text.count("\n"), text.size
44
+ copy_message(content.count("\n") + 1, content.size)
30
45
  end
31
46
 
32
- def copy_array(text)
33
- array = text.to_ary
34
- string = array.map(&:to_tcl).join(' ')
35
- clipboard_set(string, type: 'ARRAY')
47
+ def copy_array(content)
48
+ marshal = [Marshal.dump(content)].pack('m')
49
+ Tk::Clipboard.set(marshal, type: 'ARRAY')
36
50
 
37
- copy_message text.size, text.reduce(0){|s,v| s + v.size }
51
+ copy_message content.size, content.reduce(0){|s,v| s + v.size }
38
52
  end
39
53
 
40
- def copy_fallback(text)
41
- clipboard_set(text)
54
+ def copy_fallback(content)
55
+ Tk::Clipboard.set(content)
42
56
 
43
- message "Copied unkown entity of class %p" % [text.class]
57
+ VER.message "Copied unkown entity of class %p" % [content.class]
44
58
  end
45
59
 
46
60
  def copy_message(lines, chars)
@@ -48,42 +62,40 @@ module VER
48
62
  chars_desc = chars == 1 ? 'character' : 'characters'
49
63
 
50
64
  msg = "copied %d %s of %d %s" % [lines, lines_desc, chars, chars_desc]
51
- message msg
65
+ VER.message(msg)
52
66
  end
53
67
 
54
- def paste_continous(text)
55
- if text =~ /\A([^\n]*)\n\Z/
56
- mark_set :insert, 'insert lineend'
57
- insert :insert, "\n#{$1}"
58
- elsif text =~ /\n/
59
- mark_set :insert, 'insert lineend'
60
- insert :insert, "\n"
61
- text.each_line{|line| insert(:insert, line) }
68
+ def paste_continous(text, content)
69
+ if content =~ /\A([^\n]*)\n\Z/
70
+ text.mark_set :insert, 'insert lineend'
71
+ text.insert :insert, "\n#{$1}"
72
+ elsif content =~ /\n/
73
+ text.mark_set :insert, 'insert lineend'
74
+ text.insert :insert, "\n"
75
+ content.each_line{|line| text.insert(:insert, line) }
62
76
  else
63
- insert :insert, text
77
+ text.insert :insert, content
64
78
  end
65
79
  end
66
80
 
67
- def paste_tk_array(chunks)
68
- insert_y, insert_x = index(:insert).split
81
+ def paste_array(text, marshal_array)
82
+ array = Marshal.load(marshal_array.unpack('m').first)
83
+ insert_y, insert_x = text.index(:insert).split
69
84
 
70
- chunks.each_with_index do |chunk, idx|
71
- y = insert_y + idx
72
- insert "#{y}.#{insert_x}", chunk
85
+ Undo.record text do |record|
86
+ array.each_with_index do |line, index|
87
+ record.insert("#{insert_y + index}.#{insert_x}", line)
88
+ end
73
89
  end
74
90
  end
75
91
 
76
- # FIXME: nasty hack or neccesary?
77
- def paste
78
- text = clipboard_get
79
- paste_continous text.to_s
80
-
92
+ def clipboard_get(text, type = 'STRING')
93
+ Tk::Clipboard.get(text, type)
81
94
  rescue RuntimeError => ex
82
- if ex.message =~ /form "STRING" not defined/
83
- array = clipboard_get('ARRAY')
84
- paste_tk_array array.to_a
95
+ if ex.message =~ /form "#{type}" not defined/
96
+ yield if block_given?
85
97
  else
86
- Kernel.raise ex
98
+ VER.error(ex)
87
99
  end
88
100
  end
89
101
  end
@@ -1,44 +1,104 @@
1
1
  module VER
2
2
  module Methods
3
3
  module Completion
4
+ module_function
5
+
4
6
  # TODO: use the tag names at the location to customize completion choices
5
7
  # the textmate bundles have quite some stuff for that.
6
- def smart_tab
7
- context = get('insert - 1 chars', 'insert + 1 chars')
8
+ def smart_tab(text)
9
+ context = text.get('insert - 1 chars', 'insert + 1 chars')
8
10
 
9
11
  if context =~ /^\S\W/
10
- if @complete_last_used
11
- complete_again
12
+ if text.store(self, :last_used)
13
+ complete_again(text)
12
14
  else
13
- complete_word
15
+ snippet(text)
14
16
  end
15
17
  else
16
- indent = ' ' * options.shiftwidth
17
- insert :insert, indent
18
+ Snippet.jump(text) || complete_fallback(text)
18
19
  end
19
20
  end
20
21
 
21
- def complete_again
22
- send(@complete_last_used) if @complete_last_used
22
+ def complete(text, options = {}, &block)
23
+ Undo.separator(text)
24
+ VER::HoverCompletion.new(text, options, &block)
23
25
  end
24
26
 
25
- def complete_tm
26
- return unless load_preferences
27
- require 'set'
28
- require 'tempfile'
27
+ def complete_fallback(text)
28
+ indent = ' ' * text.options.shiftwidth
29
+ text.insert(:insert, indent)
30
+ end
29
31
 
30
- @complete_last_used = :complete_tm
32
+ def complete_again(text)
33
+ if last_used = text.store(self, :last_used)
34
+ send(last_used, text)
35
+ end
36
+ end
37
+
38
+ def aspell(text)
39
+ text.store(self, :last_used, :aspell)
40
+
41
+ pos = text.index('insert - 1 chars')
42
+ from, to = pos.wordstart, pos.wordend
43
+ word = text.get(from, to)
44
+
45
+ complete text do
46
+ [from, to, aspell_completions(text, word)]
47
+ end
48
+ end
49
+
50
+ def contextual
51
+ return unless text.load_preferences
52
+ text.store(self, :last_used, :contextual)
31
53
 
32
54
  from, to = 'insert - 1 chars wordstart', 'insert - 1 chars wordend'
33
55
 
34
- complete{ [from, to, tm_completions(from, to)] }
56
+ complete(text) do
57
+ [from, to, contextual_completions(text, from, to)]
58
+ end
59
+ end
60
+
61
+ def file(text)
62
+ text.store(self, :last_used, :file)
63
+
64
+ complete text, continue: true do
65
+ file_completions(text, 'insert linestart', 'insert')
66
+ end
67
+ end
68
+
69
+ def line(text)
70
+ text.store(self, :last_used, :line)
71
+
72
+ from, to = 'insert linestart', 'insert lineend'
73
+ lines = line_completions(text, from, to)
74
+
75
+ complete(text){ [from, to, lines] }
35
76
  end
36
77
 
37
- def tm_completions(from, to)
38
- tags = Set.new(tag_names(to))
78
+ def snippet(text)
79
+ return unless text.load_snippets
80
+ text.store(self, :last_used, :snippet)
81
+
82
+ Snippet.dwim(text)
83
+ end
84
+
85
+ def word(text)
86
+ text.store(self, :last_used, :word)
87
+
88
+ y, x = text.index('insert').split
89
+ x = (x - 1).abs
90
+ from, to = text.index("#{y}.#{x} wordstart"), text.index("#{y}.#{x} wordend")
91
+
92
+ words = word_completions(text, from, to)
93
+
94
+ complete(text){ [from, to, words] }
95
+ end
96
+
97
+ def contextual_completions(text, from, to)
98
+ tags = Set.new(text.tag_names(to))
39
99
  completions = []
40
100
 
41
- @preferences.each do |key, value|
101
+ text.preferences.each do |key, value|
42
102
  name, scope, settings, uuid =
43
103
  value.values_at('name', 'scope', 'settings', 'uuid')
44
104
  scopes = Set.new(scope.split(/\s*,\s*|\s+/))
@@ -46,7 +106,7 @@ module VER
46
106
  next unless completion_command = settings['completionCommand']
47
107
  next unless scope_compare(tags, scopes)
48
108
 
49
- current_word = get(from, to).strip
109
+ current_word = text.get(from, to).strip
50
110
  ENV['TM_CURRENT_WORD'] = current_word
51
111
 
52
112
  tmp = Tempfile.new('ver/complete_tm')
@@ -70,34 +130,18 @@ module VER
70
130
  scopes.all?{|scope| tags.any?{|tag| scope.start_with?(tag) }}
71
131
  end
72
132
 
73
- def complete_line
74
- @complete_last_used = :complete_line
75
-
76
- from, to = 'insert linestart', 'insert lineend'
77
- lines = line_completions(from, to)
78
-
79
- complete{ [from, to, lines] }
80
- end
81
-
82
- def line_completions(from, to)
83
- line = get(from, to).to_s.strip
133
+ def line_completions(text, from, to)
134
+ line = text.get(from, to).to_s.strip
84
135
 
85
136
  return [] if line.empty?
86
137
  needle = Regexp.escape(line)
87
- search_all(/^.*#{needle}.*$/).map{|match, *_| match }.uniq
88
- end
89
-
90
- def complete_file
91
- @complete_last_used = :complete_file
92
-
93
- complete continue: true do
94
- file_completions('insert linestart', 'insert')
95
- end
138
+ text.search_all(/^.*#{needle}.*$/).map{|match, *_| match }.uniq
96
139
  end
97
140
 
98
- def file_completions(from, to)
99
- y = index(from).y
100
- line = get(from, to)
141
+ # TODO: use filename_under_cursor, that should be much more accurate.
142
+ def file_completions(text, from, to)
143
+ y = text.index(from).y
144
+ line = text.get(from, to)
101
145
 
102
146
  return [] unless match = line.match(/(?<pre>.*?)(?<path>\/[^\s"'{}()\[\]]*)(?<post>.*?)/)
103
147
  from, to = match.offset(:path)
@@ -115,43 +159,20 @@ module VER
115
159
  return "#{y}.#{to - 1}", "#{y}.#{to}", list
116
160
  end
117
161
 
118
- def complete_word
119
- @complete_last_used = :complete_word
120
-
121
- y, x = index('insert').split
122
- x = (x - 1).abs
123
- from, to = index("#{y}.#{x} wordstart"), index("#{y}.#{x} wordend")
124
-
125
- words = word_completions(from, to)
126
-
127
- complete{ [from, to, words] }
128
- end
129
-
130
- def word_completions(from, to)
131
- prefix = get(from, to).strip
162
+ def word_completions(text, from, to)
163
+ prefix = text.get(from, to).strip
132
164
  return [] if prefix.empty?
133
165
  prefix = Regexp.escape(prefix)
134
166
 
135
- found = search_all(/(^|\W)(#{prefix}[\w-]*)/).
136
- sort_by{|match, mf, mt| [Text::Index.new(self, mf).delta(from), match] }.
137
- map{|match, *_| match.strip[/[\w-]+/] }.uniq
167
+ found = text.search_all(/(^|\W)(#{prefix}[\w-]*)/).
168
+ sort_by{|match, mf, mt|
169
+ [VER::Text::Index.new(text, mf).delta(from), match]
170
+ }.map{|match, *_| match.strip[/[\w-]+/] }.uniq
138
171
  found.delete prefix
139
172
  found
140
173
  end
141
174
 
142
- def complete_aspell
143
- @complete_last_used = :complete_aspell
144
-
145
- complete do
146
- pos = index('insert - 1 chars')
147
- from, to = pos.wordstart, pos.wordend
148
- [from, to, aspell_completions(from, to)]
149
- end
150
- end
151
-
152
- def aspell_completions(from, to)
153
- word = get(from, to)
154
-
175
+ def aspell_completions(text, word)
155
176
  if result = aspell_execute(word)[word]
156
177
  result[:suggestions]
157
178
  else
@@ -181,11 +202,6 @@ module VER
181
202
 
182
203
  return results
183
204
  end
184
-
185
- def complete(options = {}, &block)
186
- undo_separator
187
- HoverCompletion.new(self, options, &block)
188
- end
189
205
  end
190
206
  end
191
207
  end
@@ -1,11 +1,140 @@
1
1
  module VER
2
2
  module Methods
3
3
  module Control
4
- def repeat_command(count = 1)
5
- return unless command = keymap.last_send
6
- return if command.first == __method__
7
- count.times{ send(*command) }
8
- keymap.last_send = command
4
+ module_function
5
+
6
+ def enter(text, old_mode, new_mode)
7
+ clean_line(text, :insert)
8
+ end
9
+
10
+ def leave(text, old_mode, new_mode)
11
+ # clean_line(text, :insert)
12
+ end
13
+
14
+ def insert_at(text, motion, *count)
15
+ Move.send(motion, text, *count)
16
+ text.minor_mode(:control, :insert)
17
+ end
18
+
19
+ def insert_indented_newline_above(text)
20
+ Insert.insert_indented_newline_above(text)
21
+ end
22
+
23
+ def insert_indented_newline_below(text)
24
+ Insert.insert_indented_newline_below(text)
25
+ end
26
+
27
+ def open_file_under_cursor(text)
28
+ Open.open_file_under_cursor(text)
29
+ end
30
+
31
+ def source_buffer(text)
32
+ VER.message("Source #{text.filename}")
33
+ load(text.filename.to_s)
34
+ end
35
+
36
+ def cursor_vertical_top(text)
37
+ insert = text.count('1.0', 'insert', :displaylines)
38
+ last = text.count('1.0', 'end', :displaylines)
39
+
40
+ fraction = ((100.0 / last) * insert) / 100
41
+
42
+ text.yview_moveto(fraction)
43
+ end
44
+
45
+ def cursor_vertical_top_sol(text)
46
+ cursor_vertical_top(text)
47
+ Move.start_of_line(text)
48
+ end
49
+
50
+ def cursor_vertical_center(text)
51
+ insert = text.count('1.0', 'insert', :displaylines)
52
+ last = text.count('1.0', 'end', :displaylines)
53
+ shown = text.count('@0,0', "@0,#{text.winfo_height}", :displaylines)
54
+
55
+ fraction = ((100.0 / last) * (insert - (shown / 2))) / 100
56
+
57
+ text.yview_moveto(fraction)
58
+ end
59
+
60
+ def cursor_vertical_center_sol(text)
61
+ cursor_vertical_center(text)
62
+ Move.start_of_line(text)
63
+ end
64
+
65
+ def cursor_vertical_bottom(text)
66
+ insert = text.count('1.0', 'insert', :displaylines) + 1
67
+ last = text.count('1.0', 'end', :displaylines)
68
+ shown = text.count('@0,0', "@0,#{text.winfo_height}", :displaylines)
69
+
70
+ fraction = ((100.0 / last) * (insert - shown)) / 100
71
+
72
+ text.yview_moveto(fraction)
73
+ end
74
+
75
+ def cursor_vertical_bottom_sol(text)
76
+ cursor_vertical_bottom(text)
77
+ start_of_line(text)
78
+ end
79
+
80
+ def chdir(text)
81
+ text.ask 'Change to: ' do |path, action|
82
+ case action
83
+ when :attempt
84
+ path = File.expand_path(path.to_s)
85
+
86
+ begin
87
+ Dir.chdir(path)
88
+ VER.message 'Changed working directory to %s' % [path]
89
+ :abort
90
+ rescue Errno::ENOENT => ex
91
+ VER.warn ex
92
+ end
93
+ end
94
+ end
95
+ end
96
+
97
+ # Toggle case of the character under the cursor up to +count+ characters
98
+ # forward (+count+ is inclusive the first character).
99
+ # This only works for alphabetic ASCII characters, no other encodings.
100
+ def toggle_case(text, count = text.prefix_count)
101
+ from, to = 'insert', "insert + #{count} chars"
102
+ chunk = text.get(from, to)
103
+ chunk.tr!('a-zA-Z', 'A-Za-z')
104
+ text.replace(from, to, chunk)
105
+ end
106
+
107
+ REPEAT_BREAK_CMD = [
108
+ :repeat_command,
109
+ :undo,
110
+ :redo,
111
+ ]
112
+
113
+ REPEAT_BREAK_MODE = [
114
+ :move,
115
+ :search,
116
+ ]
117
+
118
+ def repeat_command(text, count = text.prefix_count)
119
+ actions = []
120
+ text.major_mode.action_history.reverse_each do |event, mode, action|
121
+ if actions.empty?
122
+ next if REPEAT_BREAK_CMD.include?(action.method)
123
+ next if REPEAT_BREAK_MODE.include?(mode.name)
124
+ else
125
+ break if REPEAT_BREAK_CMD.include?(action.method)
126
+ break if REPEAT_BREAK_MODE.include?(mode.name)
127
+ end
128
+
129
+ actions << [action, event]
130
+ end
131
+
132
+ actions.reverse!
133
+
134
+ actions.each do |action, event|
135
+ event.prefix_arg = count
136
+ action.call(event)
137
+ end
9
138
  end
10
139
 
11
140
  # Assigns env variables used in the given command.
@@ -18,36 +147,36 @@ module VER
18
147
  #
19
148
  # @param [String] command
20
149
  # The string containing the command executed
21
- def prepare_exec(command)
22
- prepare_exec_f if command =~ /\$f/
23
- prepare_exec_d if command =~ /\$d/
24
- prepare_exec_F if command =~ /\$F/
25
- prepare_exec_i if command =~ /\$i/
26
- prepare_exec_c if command =~ /\$c/
27
- prepare_exec_s if command =~ /\$s/
150
+ def prepare_exec(text, command)
151
+ prepare_exec_f(text) if command =~ /\$f/
152
+ prepare_exec_d(text) if command =~ /\$d/
153
+ prepare_exec_F(text) if command =~ /\$F/
154
+ prepare_exec_i(text) if command =~ /\$i/
155
+ prepare_exec_c(text) if command =~ /\$c/
156
+ prepare_exec_s(text) if command =~ /\$s/
28
157
  end
29
158
 
30
- def prepare_exec_f
159
+ def prepare_exec_f(text)
31
160
  p f: (ENV['f'] = filename.to_s)
32
161
  end
33
162
 
34
- def prepare_exec_d
163
+ def prepare_exec_d(text)
35
164
  p d: (ENV['d'] = filename.directory.to_s)
36
165
  end
37
166
 
38
- def prepare_exec_F
39
- p F: (ENV['F'] = layout.views.map{|v| v.text.filename }.join(' '))
167
+ def prepare_exec_F(text)
168
+ p F: (ENV['F'] = VER.buffers.map{|key, buffer| buffer.filename }.join(' '))
40
169
  end
41
170
 
42
- def prepare_exec_i
171
+ def prepare_exec_i(text)
43
172
  raise NotImplementedError
44
173
  end
45
174
 
46
- def prepare_exec_c
175
+ def prepare_exec_c(text)
47
176
  p c: (ENV['c'] = clipboard_get)
48
177
  end
49
178
 
50
- def prepare_exec_s
179
+ def prepare_exec_s(text)
51
180
  content = []
52
181
 
53
182
  each_selected_line do |y, fx, tx|
@@ -57,191 +186,190 @@ module VER
57
186
  ENV['s'] = content.join("\n")
58
187
  end
59
188
 
60
- def exec_into_new(command = nil)
61
- if command
62
- target = options.home_conf_dir/'shell-result.txt'
63
- prepare_exec(command)
64
- p command
65
- system(command)
66
- target.open('w+'){|io| io.write(`#{command}`) }
67
- view.find_or_create(target)
68
- else
69
- status_ask 'Command: ' do |command|
70
- exec_into_new(command)
71
- end
72
- end
73
- end
189
+ ENV_EXPORTERS = %w[
190
+ current_line current_word directory filepath line_index line_number
191
+ scope selected_text
192
+ ]
74
193
 
75
- def exec_into_void
76
- status_ask 'Command: ' do |command|
77
- system(command)
78
- message("Exit code: #{$?}")
194
+ # Set up the env for a script, then execute it.
195
+ # For now, I only setup the env, until we figure out a good way to find
196
+ # bundle commands.
197
+ def exec_bundle
198
+ ENV_EXPORTERS.each do |exporter|
199
+ ENV["VER_#{exporter.upcase}"] = ENV["TM_#{exporter.upcase}"] =
200
+ send("exec_env_#{exporter}").to_s
79
201
  end
80
- end
81
202
 
82
- def tags_at(index = :insert)
83
- index = index(index)
84
- tags = tag_names(index)
85
- message tags.inspect
86
-
87
- require 'ver/tooltip'
88
-
89
- tooltip = Tk::Tooltip.new(tags.inspect)
90
- tooltip.show_on(self)
91
-
92
- Tk::After.ms(5000){ tooltip.destroy }
203
+ yield if block_given?
93
204
  end
94
205
 
95
- # Substitute over all lines of the buffer
96
- def gsub(regexp, with)
97
- total = 0
98
- index('1.0').upto(index('end')) do |index|
99
- lineend = index.lineend
100
- line = get(index, lineend)
206
+ # textual content of the current line
207
+ def exec_env_current_line
208
+ get('insert linestart', 'insert lineend')
209
+ end
101
210
 
102
- if line.gsub!(regexp, with)
103
- replace(index, lineend, line)
104
- total += 1
105
- end
106
- end
211
+ # the word in which the caret is located.
212
+ def exec_env_current_word
213
+ get('insert wordstart', 'insert wordend')
214
+ end
107
215
 
108
- message "Performed gsub on #{total} lines"
216
+ # the folder of the current document (may not be set).
217
+ def exec_env_directory
218
+ filename.dirname.to_s
109
219
  end
110
220
 
111
- # Substitute on current line
112
- def sub(regexp, with)
113
- linestart = index('insert linestart')
114
- lineend = linestart.lineend
115
- line = get(linestart, lineend)
221
+ # path (including file name) for the current document (may not be set).
222
+ def exec_env_filepath
223
+ filename.to_s
224
+ end
116
225
 
117
- if line.sub!(regexp, with)
118
- replace(linestart, lineend, line)
119
- end
226
+ # the index in the current line which marks the caret's location.
227
+ # This index is zero-based and takes the utf-8 encoding of the line (e.g.
228
+ # read as TM_CURRENT_LINE) into account.
229
+ def exec_env_line_index
230
+ index('insert').x
120
231
  end
121
232
 
122
- def open_grep_list
123
- View::List::Grep.new self do |file, line|
124
- view.find_or_create(file, line)
125
- end
233
+ # the carets line position (counting from 1).
234
+ def exec_env_line_number
235
+ index('insert').y
126
236
  end
127
237
 
128
- def grep_buffer
129
- View::List::Grep.new self, filename do |file, line|
130
- view.find_or_create(file, line)
131
- end
238
+ def exec_env_scope
239
+ tag_names('insert').join(', ')
132
240
  end
133
241
 
134
- def grep_buffers
135
- glob = '{' << layout.views.map{|v| v.text.filename }.join(',') << '}'
242
+ # full content of the selection (may not be set).
243
+ # Note that environment variables have a size limitation of roughly 64 KB,
244
+ # so if the user selects more than that, this variable will not reflect
245
+ # the actual selection (commands that need to work with the selection
246
+ # should generally set this to be the standard input).
247
+ def exec_env_selected_text
248
+ content = []
136
249
 
137
- View::List::Grep.new self, glob do |file, line|
138
- view.find_or_create(file, line)
250
+ each_selected_line do |y, fx, tx|
251
+ content << get("#{y}.#{fx}", "#{y}.#{tx}")
139
252
  end
253
+
254
+ content.join("\n")
140
255
  end
141
256
 
142
- def open_method_list
143
- View::List::Methods.new self do |file, line|
144
- view.find_or_create(file, line)
257
+ def exec_into_new(text, command = nil)
258
+ if command
259
+ target = text.options.home_conf_dir/'shell-result.txt'
260
+ prepare_exec(command)
261
+ system(command)
262
+ target.open('w+'){|io| io.write(`#{command}`) }
263
+ VER.find_or_create_buffer(target)
264
+ else
265
+ text.ask 'Command: ' do |answer, action|
266
+ case action
267
+ when :attempt
268
+ begin
269
+ exec_into_new(answer)
270
+ :abort
271
+ rescue => ex
272
+ VER.warn(ex)
273
+ end
274
+ end
275
+ end
145
276
  end
146
277
  end
147
278
 
148
- # TODO: make this better?
149
- def status_ex
150
- completion = method(:status_ex_filter)
151
-
152
- View::List::Ex.new self, completion do |command, propose|
153
- begin
154
- result = propose ? send(command, propose) : eval(command)
155
- status.message "%s # => %p" % [command, result]
156
- rescue Exception => ex
157
- status.error "%s # => %p" % [command, ex]
279
+ def exec_into_void(text)
280
+ text.ask 'Command: ' do |command, action|
281
+ case action
282
+ when :attempt
283
+ begin
284
+ system(command)
285
+ VER.message("Exit code: #{$?}")
286
+ :abort
287
+ rescue => ex
288
+ VER.warn(ex)
289
+ end
158
290
  end
159
291
  end
160
292
  end
161
293
 
162
- def status_ex_filter(input)
163
- input = input.to_s.split.last
164
- return [] if !input || input.empty?
165
-
166
- begin
167
- regexp = Regexp.new(input)
168
- rescue ArgumentError, RegexpError, SyntaxError
169
- regexp = Regexp.new(Regexp.escape(input))
170
- end
294
+ def tags_at(index = :insert)
295
+ index = index(index)
296
+ tags = tag_names(index)
297
+ VER.message tags.inspect
171
298
 
172
- self.methods.grep(regexp).sort_by{|sym| sym =~ regexp }
173
- end
299
+ require 'ver/tooltip'
174
300
 
175
- def open_console
176
- View::Console.new(self)
177
- end
301
+ tooltip = Tk::Tooltip.new(tags.inspect)
302
+ tooltip.show_on(self)
178
303
 
179
- def open_terminal
180
- require 'ver/view/term'
181
- View::Terminal.new(self)
304
+ Tk::After.ms(5000){ tooltip.destroy }
182
305
  end
183
306
 
184
- def wrap_line
185
- text = get('insert linestart', 'insert lineend')
186
- textwidth = options[:textwidth]
187
- lines = wrap_lines_of(text, textwidth).join("\n")
188
- lines.rstrip!
307
+ # Substitute over all lines of the buffer
308
+ def gsub(text, regexp, with)
309
+ total = 0
310
+ Undo.record text do |record|
311
+ text.index('1.0').upto(text.index('end')) do |index|
312
+ lineend = index.lineend
313
+ line = text.get(index, lineend)
314
+
315
+ if line.gsub!(regexp, with)
316
+ record.replace(index, lineend, line)
317
+ total += 1
318
+ end
319
+ end
320
+ end
189
321
 
190
- replace('insert linestart', 'insert lineend', lines)
322
+ VER.message "Performed gsub on #{total} lines"
191
323
  end
192
324
 
193
- def status_theme_select
194
- return unless @syntax
325
+ # Substitute on current line
326
+ def sub(text, regexp, with)
327
+ linestart = text.index('insert linestart')
328
+ lineend = linestart.lineend
329
+ line = text.get(linestart, lineend)
195
330
 
196
- status_ask 'Theme name: ' do |name|
197
- load_theme(name) || "No theme called #{name} found"
331
+ if line.sub!(regexp, with)
332
+ text.replace(linestart, lineend, line)
198
333
  end
199
334
  end
200
335
 
201
- def theme_switch
202
- return unless @syntax
203
-
204
- View::List::Theme.new(self){|name| load_theme(name) }
336
+ def executor(text, action = nil)
337
+ VER::Executor.new(text, action: action)
205
338
  end
339
+ alias ex executor
340
+ module_function :ex
206
341
 
207
- def syntax_switch
208
- return unless @syntax
209
-
210
- View::List::Syntax.new(self){|name| load_syntax(name) }
211
- end
342
+ def wrap_line(text)
343
+ content = text.get('insert linestart', 'insert lineend')
344
+ textwidth = text.options.textwidth
345
+ lines = wrap_lines_of(content, textwidth).join("\n")
346
+ lines.rstrip!
212
347
 
213
- def status_evaluate
214
- status_ask 'Eval expression: ' do |term|
215
- begin
216
- eval(term)
217
- rescue Exception => ex
218
- ex
219
- end
220
- end
348
+ text.replace('insert linestart', 'insert lineend', lines)
221
349
  end
222
350
 
223
- def smart_evaluate
224
- if sel = tag_ranges(:sel)
351
+ def smart_evaluate(text)
352
+ if sel = text.tag_ranges(:sel)
225
353
  from, to = sel.first
226
- return selection_evaluate if from && to
354
+ return Selection.evaluate(text) if from && to
227
355
  end
228
356
 
229
- line_evaluate
357
+ line_evaluate(text)
230
358
  end
231
359
 
232
- def line_evaluate
233
- text = get('insert linestart', 'insert lineend')
234
- stdout_capture_evaluate(text) do |res,out|
235
- insert("insert lineend", "\n%s%p" % [out, res] )
360
+ def line_evaluate(text)
361
+ content = text.get('insert linestart', 'insert lineend')
362
+ stdout_capture_evaluate(content, text.filename, binding) do |res,out|
363
+ text.insert("insert lineend", "\n%s%p" % [out, res] )
236
364
  end
237
365
  end
238
366
 
239
- def stdout_capture_evaluate(code)
367
+ def stdout_capture_evaluate(code, file, binding = binding)
240
368
  begin
241
369
  old_stdout = $stdout.dup
242
370
  rd, wr = IO.pipe
243
371
  $stdout.reopen(wr)
244
- result = eval(code)
372
+ result = eval(code, binding, file.to_s)
245
373
  $stdout.reopen old_stdout; wr.close
246
374
  stdout = rd.read
247
375
 
@@ -260,75 +388,31 @@ module VER
260
388
  VER.error(exception)
261
389
  end
262
390
 
263
- def buffer_switch
264
- View::List::Buffer.new self do |file|
265
- view.find_or_create(file) if File.exists?(file)
266
- end
391
+ def join_line_forward(text)
392
+ from, to = 'insert linestart', 'insert + 1 lines lineend'
393
+ lines = text.get(from, to)
394
+ text.replace(from, to, lines.gsub(/\s*\n\s*/, ' '))
267
395
  end
268
396
 
269
- def window_switch(count = nil)
270
- if count
271
- # p count: count
272
- else
273
- View::List::Window.new self do |view|
274
- view.push_top
275
- view.focus
276
- end
277
- end
278
- end
279
-
280
- def file_open_popup
281
- filetypes = [
282
- ['ALL Files', '*' ],
283
- ['Text Files', '*.txt'],
284
- ]
285
-
286
- fpath = Tk.get_open_file(filetypes: filetypes)
287
-
288
- return unless fpath
289
-
290
- view.find_or_create(fpath)
291
- end
292
-
293
- def file_open_fuzzy
294
- View::List::FuzzyFileFinder.new self do |path|
295
- view.find_or_create(path)
296
- end
397
+ def join_line_backward(text)
398
+ from, to = 'insert - 1 lines linestart', 'insert lineend'
399
+ lines = text.get(from, to)
400
+ text.replace(from, to, lines.gsub(/\s*\n\s*/, ' '))
297
401
  end
298
402
 
299
- def join_lines
300
- start_of_next_line = search(/\S/, 'insert lineend').first
301
- replace('insert lineend', start_of_next_line, ' ')
302
- rescue RuntimeError => exception
303
- return if exception.message =~ /Index "\d+\.\d+" before "insert lineend" in the text/
304
- Kernel.raise exception
403
+ def indent_line(text, count = text.prefix_count)
404
+ indent = (' ' * text.options[:shiftwidth] * count)
405
+ text.insert('insert linestart', indent)
305
406
  end
306
407
 
307
- def replace_char
308
- status_ask 'Replace with: ', take: 1 do |char|
309
- if char.size == 1
310
- replace('insert', 'insert + 1 chars', char)
311
- backward_char
312
- "replaced #{char.size} chars"
313
- else
314
- status.message 'replace aborted'
315
- end
316
- end
317
- end
318
-
319
- def indent_line(count = 1)
320
- indent = (' ' * options[:shiftwidth] * count)
321
- insert('insert linestart', indent)
322
- end
323
-
324
- def unindent_line(count = 1)
325
- indent = ' ' * options[:shiftwidth]
408
+ def unindent_line(text, count = text.prefix_count)
409
+ indent = ' ' * text.options[:shiftwidth]
326
410
  replace_from = 'insert linestart'
327
411
  replace_to = "insert linestart + #{indent.size} chars"
328
412
 
329
- undo_record do |record|
413
+ Undo.record text do |record|
330
414
  count.times do
331
- line = get('insert linestart', 'insert lineend')
415
+ line = text.get('insert linestart', 'insert lineend')
332
416
 
333
417
  return unless line.start_with?(indent)
334
418
 
@@ -337,34 +421,23 @@ module VER
337
421
  end
338
422
  end
339
423
 
340
- def clean_line(index, record = self)
341
- index = index(index)
424
+ def clean_line(text, index, record = text)
425
+ index = text.index(index)
342
426
  from, to = index.linestart, index.lineend
343
- line = get(from, to)
427
+ line = text.get(from, to)
344
428
  bare = line.rstrip
345
429
  record.replace(from, to, bare) if bare.empty?
346
430
  end
347
431
 
348
- def start_insert_mode
349
- self.mode = :insert
350
- end
351
-
352
- def start_control_mode
353
- clean_line(:insert)
354
- self.mode = :control
355
- end
356
-
357
- private
358
-
359
- def wrap_lines_of(text, wrap = 80)
432
+ def wrap_lines_of(content, wrap = 80)
360
433
  Kernel.raise ArgumentError, "+wrap+ must be > 1" unless wrap > 1
361
434
  wrap -= 1
362
435
 
363
- indent = text[/^\s+/] || ''
436
+ indent = content[/^\s+/] || ''
364
437
  indent_size = indent.size
365
438
  lines = [indent.dup]
366
439
 
367
- text.scan(/\S+/) do |chunk|
440
+ content.scan(/\S+/) do |chunk|
368
441
  last = lines.last
369
442
  last_size = last.size
370
443
  chunk_size = chunk.size
@@ -383,22 +456,6 @@ module VER
383
456
 
384
457
  lines
385
458
  end
386
-
387
- def status_ask(prompt, options = {}, &callback)
388
- @status.ask(prompt, options){|*args|
389
- begin
390
- callback.call(*args)
391
- rescue => ex
392
- VER.error(ex)
393
- ensure
394
- begin
395
- focus
396
- rescue RuntimeError
397
- # might have been destroyed, stay silent
398
- end
399
- end
400
- }
401
- end
402
459
  end
403
460
  end
404
461
  end