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
@@ -0,0 +1,122 @@
1
+ module VER
2
+ module Methods
3
+ module Layout
4
+ module_function
5
+
6
+ def change(text, action, *count)
7
+ action.call(text, *count)
8
+ end
9
+
10
+ def peer(text)
11
+ text.layout.create_buffer(peer: text) do |buffer|
12
+ yield(buffer) if block_given?
13
+ end
14
+ end
15
+
16
+ def focus(text, index = 0)
17
+ return unless found = VER.buffers.values[index - 1]
18
+ text.layout.push_top(found)
19
+ found.focus
20
+ end
21
+
22
+ def find_or_create(text, file, &block)
23
+ VER::Buffer.find_or_create(file, &block)
24
+ end
25
+
26
+ def create(text)
27
+ VER::Buffer.create
28
+ end
29
+
30
+ def close(text)
31
+ text.buffer.close
32
+ end
33
+
34
+ def focus_next(text)
35
+ text.layout.focus_next(text.buffer)
36
+ end
37
+
38
+ def focus_prev(text)
39
+ text.layout.focus_prev(text.buffer)
40
+ end
41
+
42
+ def push_up(text)
43
+ text.layout.push_up(text.buffer)
44
+ end
45
+
46
+ def push_down(text)
47
+ text.layout.push_down(text.buffer)
48
+ end
49
+
50
+ def push_top(text)
51
+ text.layout.push_top(text.buffer)
52
+ end
53
+
54
+ def push_bottom(text)
55
+ text.layout.push_bottom(text.buffer)
56
+ end
57
+
58
+ def one(text)
59
+ text.layout.options.merge! master: 1, slaves: 0
60
+ push_top(text)
61
+ end
62
+
63
+ def two(text)
64
+ text.layout.options.merge! master: 1, slaves: 1
65
+ push_top(text)
66
+ end
67
+
68
+ def slave_inc(text)
69
+ slaves = text.layout.options[:slaves]
70
+ unless slaves >= text.layout.stack.size
71
+ text.layout.options[:slaves] += 1
72
+ text.layout.apply
73
+ end
74
+ end
75
+
76
+ def slave_dec(text)
77
+ slaves = text.layout.options[:slaves]
78
+ text.layout.options[:slaves] -= 1 if slaves > 0
79
+ text.layout.apply
80
+ end
81
+
82
+ def master_inc(text)
83
+ text.layout.options[:master] += 1
84
+ text.layout.apply
85
+ end
86
+
87
+ def master_dec(text)
88
+ master = text.layout.options[:master]
89
+ text.layout.options[:master] -= 1 if master > 0
90
+ text.layout.apply
91
+ end
92
+
93
+ # Shrink the master pane by 10%
94
+ def master_shrink(text)
95
+ center = text.layout.options[:center]
96
+ text.layout.options[:center] -= 0.1 if center > 0.1
97
+ text.layout.apply
98
+ end
99
+
100
+ # Grow the master pane by 10%
101
+ def master_grow(text)
102
+ center = text.layout.options[:center]
103
+ text.layout.options[:center] += 0.1 if center < 0.9
104
+ text.layout.apply
105
+ end
106
+
107
+ # Center the split between masters and slaves
108
+ def master_equal(text)
109
+ text.layout.options[:center] = 0.5
110
+ text.layout.apply
111
+ end
112
+
113
+ def cycle_next(text)
114
+ text.layout.cycle_next(text.buffer)
115
+ end
116
+
117
+ def cycle_prev(text)
118
+ text.layout.cycle_prev(text.buffer)
119
+ end
120
+ end
121
+ end
122
+ end
@@ -9,56 +9,83 @@ module VER
9
9
  }
10
10
  GO_MATCHING_LEFT = GO_MATCHING_RIGHT.invert
11
11
 
12
- def matching_brace(count = nil)
13
- opening = get(:insert)
12
+ module_function
13
+
14
+ def prefix_arg_sol(text)
15
+ return if text.update_prefix_arg(text)
16
+ start_of_line(text)
17
+ end
18
+
19
+ def matching_brace(text)
20
+ if pos = matching_brace_pos(text, :insert)
21
+ text.mark_set(:insert, pos)
22
+ else
23
+ VER.warn "No matching brace"
24
+ end
25
+ end
26
+
27
+ def matching_brace_pos(text, index = :insert)
28
+ opening = text.get(index)
14
29
 
15
30
  if closing = GO_MATCHING_RIGHT[opening]
16
- search = method(:search_all)
17
- level = 1
18
- start = 'insert + 1 chars'
31
+ start = "#{index} + 1 chars"
32
+ search = text.method(:search_all)
19
33
  elsif closing = GO_MATCHING_LEFT[opening]
20
- search = method(:rsearch_all)
21
- level = 1
22
- start = 'insert'
34
+ start = index
35
+ search = text.method(:rsearch_all)
23
36
  else
24
37
  return
25
38
  end
26
39
 
40
+ balance = 1
27
41
  needle = Regexp.union(opening, closing)
28
-
29
- search.call(needle, start) do |match, pos, from|
30
- if match == opening
31
- level += 1
32
- elsif match == closing
33
- level -= 1
42
+ search.call needle, start do |match, from, to|
43
+ case match
44
+ when opening
45
+ balance += 1
46
+ when closing
47
+ balance -= 1
34
48
  end
35
49
 
36
- if level < 1
37
- mark_set :insert, pos
38
- return
50
+ if balance == 0
51
+ return from
39
52
  end
40
53
  end
41
54
  end
42
55
 
43
56
  # Move cursor +count+ characters left.
44
- def backward_char(count = 1)
45
- mark_set :insert, "insert - #{count} displaychars"
57
+ def prev_char(text, count = text.prefix_count)
58
+ text.mark_set(:insert, "insert - #{count} displaychars")
46
59
  end
47
60
 
48
61
  # Move cursor +count+ characters right.
49
- def forward_char(count = 1)
50
- mark_set :insert, "insert + #{count} displaychars"
62
+ def next_char(text, count = text.prefix_count)
63
+ text.mark_set(:insert, "insert + #{count} displaychars")
51
64
  end
52
65
 
53
- # Move to the beginning of the line where insert mark is located.
66
+ # Move to the beginning of the line in which insert mark is located.
54
67
  #
55
68
  # With +count+ it will move to the beginning of the display line, which
56
69
  # takes line wraps into account.
57
- def beginning_of_line(count = nil)
70
+ def start_of_line(text, count = text.prefix_count)
71
+ if count
72
+ text.mark_set(:insert, 'insert display linestart')
73
+ else
74
+ text.mark_set(:insert, 'insert linestart')
75
+ end
76
+ end
77
+
78
+ # Move to the first character of the line in which insert mark is located.
79
+ #
80
+ # With +count+ it will move to the linestart of the displayed, taking
81
+ # linewraps into account.
82
+ def home_of_line(text, count = text.prefix_arg)
58
83
  if count
59
- mark_set :insert, 'insert display linestart'
84
+ start_of_line(text, true)
60
85
  else
61
- mark_set :insert, 'insert linestart'
86
+ x = text.get('insert linestart', 'insert lineend').index(/\S/) || 0
87
+ y = text.index('insert').y
88
+ text.mark_set(:insert, "#{y}.#{x}")
62
89
  end
63
90
  end
64
91
 
@@ -67,145 +94,191 @@ module VER
67
94
  # With +count+ it moves to the end of the display line, so when there is
68
95
  # a line wrap it will move to the place where the line wraps instead of the
69
96
  # real end of the line.
70
- def end_of_line(count = nil)
71
- if count
72
- mark_set :insert, 'insert display lineend'
97
+ def end_of_line(text, count_or_mode = nil)
98
+ case count_or_mode
99
+ when Symbol
100
+ text.mark_set(:insert, 'insert display lineend')
101
+ text.minor_mode(:control, count_or_mode)
102
+ when nil
103
+ text.mark_set(:insert, 'insert lineend')
73
104
  else
74
- mark_set :insert, 'insert lineend'
105
+ text.mark_set(:insert, 'insert display lineend')
75
106
  end
76
107
  end
77
108
 
78
- def eol_then_insert_mode(count = nil)
79
- end_of_line(count)
80
- start_insert_mode
109
+ def go_line(text, number = text.prefix_count)
110
+ text.mark_set(:insert, "#{number}.0")
111
+ end
112
+
113
+ def ask_go_line(text)
114
+ initial = $1 if text.event.unicode =~ /^(\d+)$/
115
+ question = 'Go to [line number|+lines][,column number]: '
116
+ text.ask question, value: initial do |answer, action|
117
+ case action
118
+ when :attempt
119
+ parse_go_line text, answer do |index|
120
+ text.mark_set(:insert, index)
121
+ :abort
122
+ end
123
+ when :modified
124
+ parse_go_line text, answer do |index|
125
+ text.tag_configure(Search::TAG, Search::HIGHLIGHT)
126
+ text.tag_add(Search::TAG, index, index.lineend)
127
+ text.see(index)
128
+ Tk::After.ms(3000){
129
+ text.tag_remove(Search::TAG, index, index.lineend)
130
+ text.see(:insert)
131
+ }
132
+ end
133
+ end
134
+ end
81
135
  end
82
136
 
83
- def sol_then_insert_mode(count = nil)
84
- beginning_of_line(count)
85
- start_insert_mode
137
+ def parse_go_line(text, input)
138
+ case input.to_s.strip
139
+ when /^\+(\d+)(?:,(\d+))?$/
140
+ line, column = $1.to_i, $2.to_i
141
+ current = text.index(:insert)
142
+ yield text.index("#{current.line + line}.#{column}")
143
+ when /^(\d+)(?:,(\d+))?$/
144
+ line, column = $1.to_i, $2.to_i
145
+ yield text.index("#{line}.#{column}")
146
+ end
86
147
  end
87
148
 
88
- def forward_char_then_insert_mode(count = 1)
89
- forward_char(count)
90
- start_insert_mode
149
+ def go_column(text, number = text.prefix_count)
150
+ text.mark_set(:insert, "insert linestart + #{number} chars")
91
151
  end
92
152
 
93
- def go_line(number = 0)
94
- mark_set :insert, "#{number}.0"
153
+ # Basically like [go_line] without arguments, but much nicer name.
154
+ def start_of_text(text)
155
+ text.mark_set(:insert, "1.0")
95
156
  end
96
157
 
97
- def end_of_file(count = nil)
158
+ def end_of_text(text, count = text.prefix_arg)
98
159
  if count
99
- mark_set :insert, "#{count}.0"
160
+ text.mark_set(:insert, "#{count}.0")
100
161
  else
101
- mark_set :insert, :end
162
+ text.mark_set(:insert, :end)
102
163
  end
103
164
  end
104
165
 
105
- def virtual_movement(name, count = 1)
106
- pos = index(:insert)
107
- __send__(name, count)
108
- mark = index(:insert)
109
- mark_set :insert, pos
166
+ def end_of_sentence(text, count = text.prefix_count)
167
+ text.search_all(/\.\s/, 'insert') do |match, from, to|
168
+ p match: match, from: from, to: to
169
+ text.mark_set(:insert, "#{to} - 1 chars")
170
+ count -= 1
171
+ return if count <= 0
172
+ end
173
+ end
174
+
175
+ def virtual(text, action, count = text.prefix_count)
176
+ pos = text.index(:insert)
177
+
178
+ if action.respond_to?(:call)
179
+ action.call(text, count)
180
+ else
181
+ send(action, text, count)
182
+ end
183
+
184
+ mark = text.index(:insert)
185
+ text.mark_set(:insert, pos)
110
186
  return [pos, mark].sort
111
187
  rescue => ex
112
188
  VER.error(ex)
113
189
  end
114
190
 
115
- # HACK: but it's just too good to do it manually
116
-
117
- def page_up(count = 1)
118
- mark_set :insert, tk_prev_page_pos(count)
191
+ def prev_line(text, count = text.prefix_count)
192
+ up_down_line(text, -count.abs)
119
193
  end
120
194
 
121
- def page_down(count = 1)
122
- mark_set :insert, tk_next_page_pos(count)
195
+ def next_line(text, count = text.prefix_count)
196
+ up_down_line(text, count.abs)
123
197
  end
124
198
 
125
- def previous_line(count = 1)
126
- up_down_line(-count.abs)
127
- refresh_selection
199
+ def forward_scroll(text, count = text.prefix_count)
200
+ count_abs = count.abs
201
+ text.yview_scroll(count_abs, :units)
202
+ next_line(text, count_abs)
128
203
  end
129
204
 
130
- def next_line(count = 1)
131
- up_down_line(count.abs)
132
- refresh_selection
205
+ def backward_scroll(text, count = text.prefix_count)
206
+ count_abs = count.abs
207
+ text.yview_scroll(-count_abs, :units)
208
+ prev_line(text, count_abs)
133
209
  end
134
210
 
135
- # OK, finally found the issue.
136
- #
137
- # the implementation of tk::TextUpDownLine is smart, but not smart enough.
138
- # It doesn't assume large deltas between the start of up/down movement and
139
- # the last other modification of the insert mark.
140
- #
141
- # This means that, after scrolling with up/down for a few hundred lines,
142
- # it has to calculate the amount of display lines in between, which is a
143
- # very expensive calculation and time increases O(delta_lines).
144
- #
145
- # We'll try to solve this another way, by assuming that there are at least
146
- # a few other lines of same or greater length in between, we simply
147
- # compare against a closer position and make delta_lines as small as
148
- # possible.
149
- #
150
- # Now, if you go to, like column 100 of a line, and there is never a line
151
- # as long for the rest of the file, the scrolling will still slow down a
152
- # lot. This is an issue we can fix if we "forget" the @udl_pos_orig after
153
- # a user-defined maximum delta (something around 200 should do), will
154
- # implement that on demand.
155
- def up_down_line(count)
156
- insert = index(:insert)
211
+ def next_word(text, count = text.prefix_count)
212
+ forward_jump(text, count, &method(:word_char_type))
213
+ end
157
214
 
158
- @udl_pos_orig = insert if @udl_pos_prev != insert
215
+ def next_chunk(text, count = text.prefix_count)
216
+ forward_jump(text, count, &method(:chunk_char_type))
217
+ end
159
218
 
160
- lines = count(@udl_pos_orig, insert, :displaylines)
161
- target = index("#@udl_pos_orig + #{lines + count} displaylines")
162
- @udl_pos_prev = target
163
- mark_set :insert, target
164
- @udl_pos_orig = target if target.x == @udl_pos_orig.x
219
+ # Jump to the last character of the word the insert cursor is over currently.
220
+ def next_word_end(text, count = text.prefix_count)
221
+ text.mark_set(:insert, index_at_word_right_end(text, count))
165
222
  end
166
223
 
167
- def forward_scroll(count = 1)
168
- count_abs = count.abs
169
- yview_scroll(count_abs, :units)
170
- next_line(count_abs)
224
+ def prev_word(text, count = text.prefix_count)
225
+ backward_jump(text, count, &method(:word_char_type))
171
226
  end
172
227
 
173
- def backward_scroll(count = 1)
174
- count_abs = count.abs
175
- yview_scroll(-count_abs, :units)
176
- previous_line(count_abs)
228
+ def prev_chunk(text, count = text.prefix_count)
229
+ backward_jump(text, count, &method(:chunk_char_type))
177
230
  end
178
231
 
179
- def forward_word(count = 1)
180
- forward_jump(count, &method(:word_char_type))
232
+ # HACK: but it's just too good to do it manually
233
+
234
+ def prev_page(text, count = text.prefix_count)
235
+ text.mark_set(:insert, text.tk_prev_page_pos(count))
181
236
  end
182
237
 
183
- def forward_chunk(count = 1)
184
- forward_jump(count, &method(:chunk_char_type))
238
+ def next_page(text, count = text.prefix_count)
239
+ text.mark_set(:insert, text.tk_next_page_pos(count))
185
240
  end
186
241
 
187
- def word_right_end(count = 1)
242
+ def index_at_word_right_end(text, count = text.prefix_count)
243
+ offset = 1
244
+ last = text.index('end')
245
+
188
246
  count.times do
189
- mark_set :insert, tk_next_word_pos_end('insert')
190
- end
191
- end
247
+ pos = text.index("insert + #{offset} chars")
192
248
 
193
- def backward_word(count = 1)
194
- backward_jump(count, &method(:word_char_type))
195
- end
249
+ return if pos == last
196
250
 
197
- def backward_chunk(count = 1)
198
- backward_jump(count, &method(:chunk_char_type))
199
- end
251
+ type = word_char_type(text.get(pos))
252
+
253
+ while type == :space
254
+ offset += 1
255
+ pos = text.index("insert + #{offset} chars")
256
+ break if pos == last
257
+ type = word_char_type(text.get(pos))
258
+ end
259
+
260
+ lock = type
261
+
262
+ while type == lock && type != :space
263
+ offset += 1
264
+ pos = text.index("insert + #{offset} chars")
265
+ break if pos == last
266
+ type = word_char_type(text.get(pos))
267
+ end
268
+ end
200
269
 
201
- private
270
+ text.index("insert + #{offset - 1} chars")
271
+ rescue => ex
272
+ VER.error(ex)
273
+ end
202
274
 
203
275
  def word_char_type(char)
204
276
  case char
205
277
  when /\w/; :word
206
278
  when /\S/; :special
207
279
  when /\s/; :space
208
- else; raise "You cannot get here"
280
+ else
281
+ Kernel.raise "No matching char type for: %p" % [char]
209
282
  end
210
283
  end
211
284
 
@@ -213,88 +286,86 @@ module VER
213
286
  case char
214
287
  when /\S/; :nonspace
215
288
  when /\s/; :space
216
- else; raise "You cannot get here"
289
+ else
290
+ Kernel.raise "No matching chunk type for: %p " % [char]
217
291
  end
218
292
  end
219
293
 
220
- def forward_jump(count)
294
+ def forward_jump(text, count)
221
295
  count.times do
222
- original_type = type = yield(get(:insert))
296
+ original_type = type = yield(text.get(:insert))
223
297
  changed = 0
224
298
 
225
299
  begin
226
- original_pos = index(:insert)
227
- execute :mark, :set, :insert, 'insert + 1 chars'
228
- break if original_pos == index(:insert)
300
+ original_pos = text.index(:insert)
301
+ text.execute_only(:mark, :set, :insert, 'insert + 1 chars')
302
+ break if original_pos == text.index(:insert)
229
303
 
230
- type = yield(get(:insert))
304
+ type = yield(text.get(:insert))
231
305
  changed += 1 if type != original_type
232
306
  original_type = type
233
307
  end until changed > 0 && type != :space
234
308
  end
235
309
 
236
- Tk::Event.generate(self, '<<Movement>>')
310
+ Tk::Event.generate(text, '<<Movement>>')
237
311
  rescue => ex
238
312
  VER.error(ex)
239
313
  end
240
314
 
241
- def backward_jump(count = 1)
315
+ def backward_jump(text, count)
242
316
  count.times do
243
- original_type = type = yield(get(:insert))
317
+ original_type = type = yield(text.get(:insert))
244
318
  changed = 0
245
319
 
246
320
  begin
247
- original_pos = index(:insert)
248
- execute :mark, :set, :insert, 'insert - 1 chars'
249
- break if index(:insert) == original_pos
321
+ original_pos = text.index(:insert)
322
+ text.execute_only(:mark, :set, :insert, 'insert - 1 chars')
323
+ break if text.index(:insert) == original_pos
250
324
 
251
- type = yield(get(:insert))
325
+ type = yield(text.get(:insert))
252
326
  changed += 1 if type != original_type
253
327
  original_type = type
254
328
  end until changed > 0 && type != :space
255
329
 
256
- type = yield(get('insert - 1 chars'))
330
+ type = yield(text.get('insert - 1 chars'))
257
331
 
258
332
  while type == original_type
259
- original_pos = index(:insert)
260
- execute :mark, :set, :insert, 'insert - 1 chars'
261
- break if index(:insert) == original_pos
333
+ original_pos = text.index(:insert)
334
+ text.execute_only(:mark, :set, :insert, 'insert - 1 chars')
335
+ break if text.index(:insert) == original_pos
262
336
 
263
- type = yield(get('insert - 1 chars'))
337
+ type = yield(text.get('insert - 1 chars'))
264
338
  end
265
339
  end
266
340
 
267
- Tk::Event.generate(self, '<<Movement>>')
341
+ Tk::Event.generate(text, '<<Movement>>')
268
342
  rescue => ex
269
343
  VER.error(ex)
270
344
  end
271
345
 
272
- def tk_prev_word_pos(start)
273
- Tk.execute('tk::TextPrevPos', tk_pathname, start, 'tcl_startOfPreviousWord').to_s
274
- end
275
-
276
- def tk_next_word_pos(start)
277
- Tk.execute('tk::TextNextPos', tk_pathname, start, 'tcl_startOfNextWord').to_s
278
- end
279
-
280
- def tk_next_word_pos_end(start)
281
- Tk.execute('tk::TextNextWord', tk_pathname, start).to_s
282
- end
283
-
284
- def tk_prev_line_pos(count)
285
- Tk.execute('tk::TextUpDownLine', tk_pathname, -count.abs).to_s
286
- end
287
-
288
- def tk_next_line_pos(count)
289
- Tk.execute('tk::TextUpDownLine', tk_pathname, count).to_s
290
- end
291
-
292
- def tk_prev_page_pos(count)
293
- Tk.execute('tk::TextScrollPages', tk_pathname, -count.abs).to_s
294
- end
295
-
296
- def tk_next_page_pos(count)
297
- Tk.execute('tk::TextScrollPages', tk_pathname, count).to_s
346
+ # OK, finally found the issue.
347
+ #
348
+ # the implementation of tk::TextUpDownLine is smart, but not smart enough.
349
+ # It doesn't assume large deltas between the start of up/down movement and
350
+ # the last other modification of the insert mark.
351
+ #
352
+ # This means that, after scrolling with up/down for a few hundred lines,
353
+ # it has to calculate the amount of display lines in between, which is a
354
+ # very expensive calculation and time increases O(delta_lines).
355
+ #
356
+ # We'll try to solve this another way, by assuming that there are at least
357
+ # a few other lines of same or greater length in between, we simply
358
+ # compare against a closer position and make delta_lines as small as
359
+ # possible.
360
+ #
361
+ # Now, if you go to, like column 100 of a line, and there is never a line
362
+ # as long for the rest of the file, the scrolling will still slow down a
363
+ # lot. This is an issue we can fix if we "forget" the @udl_pos_orig after
364
+ # a user-defined maximum delta (something around 200 should do), will
365
+ # implement that on demand.
366
+ def up_down_line(text, count)
367
+ target = text.up_down_line(count)
368
+ text.mark_set(:insert, target)
298
369
  end
299
370
  end
300
371
  end