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,15 @@
1
+ module VER
2
+ class Status
3
+ class Mode < Label
4
+ def setup
5
+ register :mode
6
+ end
7
+
8
+ def to_s
9
+ major = text.major_mode
10
+ string = [ major.name, *major.minors.map(&:name) ].join(', ')
11
+ "[#{string}]"
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,71 @@
1
+ module VER
2
+ class Status
3
+ class NanoHelp < Tk::Tile::Frame
4
+ attr_reader :status, :weight, :row, :column, :sticky
5
+
6
+ def initialize(status, options = {})
7
+ @status = status
8
+ @weight = options.delete(:weight) || 0
9
+ @row = options.delete(:row)
10
+ @column = options.delete(:column)
11
+ @sticky = options.delete(:sticky)
12
+ @font = status.text.options.font
13
+
14
+ super
15
+
16
+ @long_labels = []
17
+ @short_labels = []
18
+
19
+ add 0, 0, '^G', ' Get Help'
20
+ add 0, 1, '^O', ' WriteOut'
21
+ add 0, 2, '^R', ' Read File'
22
+ add 0, 3, '^Y', ' Prev Page'
23
+ add 0, 4, '^K', ' Cut Text'
24
+ add 0, 5, '^C', ' Cur Pos'
25
+ add 1, 0, '^X', ' Exit'
26
+ add 1, 1, '^J', ' Justify'
27
+ add 1, 2, '^W', ' Where Is'
28
+ add 1, 3, '^V', ' Next Page'
29
+ add 1, 4, '^U', ' UnCut Text'
30
+ add 1, 5, '^T', ' To Spell'
31
+
32
+ 0.upto 11 do |col|
33
+ weight = col % 2 == 0 ? 0 : 1
34
+ grid_columnconfigure(col, weight: weight)
35
+ end
36
+ end
37
+
38
+ def add(row, col, short, long)
39
+ short_label = Tk::Tile::Label.new(
40
+ self, font: @font, background: 'white', foreground: 'black', text: short)
41
+ long_label = Tk::Tile::Label.new(
42
+ self, font: @font, background: 'black', foreground: 'white', text: long)
43
+ short_col = col * 2
44
+ long_col = short_col + 1
45
+
46
+ short_label.grid_configure(row: row, column: short_col, sticky: :w)
47
+ long_label.grid_configure(row: row, column: long_col, sticky: :we)
48
+
49
+ @long_labels << long_label
50
+ @short_labels << short_label
51
+ end
52
+
53
+ def style=(config)
54
+ # @long_labels.each{|label| label.configure(config) }
55
+ end
56
+
57
+ def toggle
58
+ info = grid_info
59
+
60
+ if info.empty?
61
+ grid_configure(@last_grid_info)
62
+ true
63
+ else
64
+ @last_grid_info = info
65
+ grid_forget
66
+ false
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,38 @@
1
+ module VER
2
+ class Status
3
+ class NanoPosition < Label
4
+ def setup
5
+ register :position
6
+ end
7
+
8
+ def style=(config)
9
+ configure(config)
10
+ end
11
+
12
+ def to_s
13
+ line_now = text.count(1.0, :insert, :lines) + 1
14
+ line_total = text.count(1.0, :end, :lines)
15
+ line_percent = ((100.0 / line_total) * line_now)
16
+ line_percent = 0 if line_percent.nan?
17
+
18
+ col_now = text.count('insert linestart', :insert, :chars) + 1
19
+ col_total = text.count('insert linestart', 'insert lineend', :chars) + 1
20
+ col_percent = ((100.0 / col_total) * col_now)
21
+ col_percent = 0 if col_percent.nan?
22
+
23
+ char_now = text.count(1.0, :insert, :chars)
24
+ char_total = text.count(1.0, :end, :chars) - 1
25
+ char_percent = ((100.0 / char_total) * char_now)
26
+ char_percent = 0 if char_percent.nan?
27
+
28
+ inner = "%d/%d (%d%%), %d/%d (%d%%), %d/%d (%d%%)" % [
29
+ line_now, line_total, line_percent.round,
30
+ col_now, col_total, col_percent.round,
31
+ char_now, char_total, char_percent.round,
32
+ ]
33
+
34
+ "[ #{inner} ]"
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,17 @@
1
+ module VER
2
+ class Status
3
+ class Percent < Position
4
+ def to_s
5
+ here = text.count(1.0, :insert, :lines)
6
+ total = text.count(1.0, :end, :lines)
7
+ percent = ((100.0 / total) * here).round
8
+
9
+ case percent
10
+ when 100, 99; 'Bot'
11
+ when 0 ; 'Top'
12
+ else ; '%2d%%' % percent
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,16 @@
1
+ module VER
2
+ class Status
3
+ class Position < Label
4
+ def setup
5
+ register :position
6
+ end
7
+
8
+ def to_s
9
+ "%4d,%3d" % [
10
+ text.count('1.0', 'insert', :lines) + 1,
11
+ text.count('insert linestart', 'insert', :displaychars)
12
+ ]
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,20 @@
1
+ module VER
2
+ class Status
3
+ class Separator < Tk::Tile::Separator
4
+ attr_reader :status, :weight, :row, :column, :sticky
5
+
6
+ def initialize(status, options = {})
7
+ @status = status
8
+ @weight = options.delete(:weight) || 0
9
+ @row = options.delete(:row)
10
+ @column = options.delete(:column)
11
+ @sticky = options.delete(:sticky)
12
+
13
+ super
14
+ end
15
+
16
+ def style=(conf)
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,13 @@
1
+ module VER
2
+ class Status
3
+ class ShortFilename < Label
4
+ def setup
5
+ register :filename
6
+ end
7
+
8
+ def to_s
9
+ text.short_filename
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ module VER
2
+ class Status
3
+ class Syntax < Label
4
+ def setup
5
+ register :syntax
6
+ end
7
+
8
+ def to_s
9
+ format % text.syntax.name
10
+ end
11
+ end
12
+ end
13
+ end
data/lib/ver/syntax.rb CHANGED
@@ -4,7 +4,7 @@ module VER
4
4
  autoload :Processor, 'ver/syntax/processor'
5
5
 
6
6
  def self.list
7
- VER.loadpath.map{|path| Dir[(path/'syntax/*.json').to_s] }.flatten
7
+ VER.loadpath.map{|path| Dir[(path/'syntax/*.rb').to_s] }.flatten
8
8
  end
9
9
 
10
10
  def self.from_filename(filename)
@@ -16,7 +16,7 @@ module VER
16
16
  end
17
17
 
18
18
  def self.find(syntax_name)
19
- VER.find_in_loadpath("syntax/#{syntax_name}.json")
19
+ VER.find_in_loadpath("syntax/#{syntax_name}.rb")
20
20
  end
21
21
 
22
22
  def self.load(file)
@@ -40,30 +40,25 @@ module VER
40
40
  @theme = theme || Theme.find_and_load(VER.options[:theme])
41
41
  end
42
42
 
43
- def highlight(textarea, code, lineno = nil, from = '1.0', to = 'end')
43
+ def highlight(widget, lineno, from, to)
44
+ check_for_theme_change(widget)
45
+
46
+ processor = Processor.new(widget, @theme, lineno)
47
+ @theme.remove_tags_on(widget, from, to)
48
+ code = widget.get(from, to)
49
+ parser.parse(code, processor)
50
+ end
51
+
52
+ def check_for_theme_change(widget)
44
53
  if @old_theme
45
- @old_theme.delete_tags_on(textarea)
54
+ @old_theme.delete_tags_on(widget)
46
55
  @old_theme = nil
47
56
  end
48
57
 
49
58
  if @first_highlight
50
- @theme.create_tags_on(textarea)
51
- @theme.apply_default_on(textarea)
59
+ @theme.create_tags_on(widget)
60
+ @theme.apply_default_on(widget)
52
61
  @first_highlight = false
53
- else
54
- @theme.remove_tags_on(textarea, from, to)
55
- end
56
-
57
- pr = Processor.new(textarea, @theme, lineno || 0)
58
-
59
- if lineno
60
- pr.start_parsing(parser.scopeName)
61
- stack = [[parser, nil]]
62
- parser.parse_line(stack, code, pr)
63
- pr.end_parsing(parser.scopeName)
64
- else
65
- @theme.remove_tags_on(textarea, from, to)
66
- parser.parse(code, pr)
67
62
  end
68
63
  end
69
64
 
@@ -29,25 +29,19 @@ module VER
29
29
 
30
30
  def detect_ext(path)
31
31
  basename = path.basename.to_s
32
- return unless basename =~ /\./
33
-
34
- scores = {}
35
32
 
36
33
  EXTS_LIST.each do |name, exts|
37
- lowest = nil
38
- exts.find do |ext|
39
- if basename.end_with?(ext)
40
- distance = Levenshtein.distance(basename, ext)
41
- lowest ||= distance
42
- lowest = distance if lowest > distance
34
+ exts.each do |ext|
35
+ if ext == basename
36
+ return name
37
+ elsif basename.end_with?(".#{ext}")
38
+ return name
43
39
  end
44
- # return name if basename.end_with?(ext)
45
40
  end
46
- scores[name] = lowest if lowest
41
+
47
42
  end
48
43
 
49
- found = scores.sort_by{|k,v| v }.first
50
- return found.first if found
44
+ nil
51
45
  end
52
46
 
53
47
  def detect_head(path)
@@ -10,7 +10,7 @@ module VER
10
10
  def end_parsing(syntax_name)
11
11
  tags.each do |name, indices|
12
12
  tag_name = theme.get(name) || name
13
- textarea.fast_tag_add(tag_name, *indices)
13
+ textarea.tag_add(tag_name, *indices)
14
14
  end
15
15
 
16
16
  @tag_stack.uniq!
@@ -24,7 +24,7 @@ module VER
24
24
  end
25
25
 
26
26
  def open_tag(name, pos)
27
- stack << [name, pos]
27
+ stack << [name, lineno, pos]
28
28
 
29
29
  if tag_name = theme.get(name)
30
30
  if stack.size > 1
@@ -37,9 +37,9 @@ module VER
37
37
  end
38
38
 
39
39
  def close_tag(name, mark)
40
- sname, pos = stack.pop
40
+ from_name, from_lineno, pos = stack.pop
41
41
 
42
- tags[name] << "#{lineno}.#{pos}" << "#{lineno}.#{mark}"
42
+ tags[name] << "#{from_lineno}.#{pos}" << "#{lineno}.#{mark}"
43
43
  rescue RuntimeError => exception
44
44
  # if you modify near the end of the textarea, sometimes the last tag
45
45
  # cannot be closed because the contents of the textarea changed since
data/lib/ver/text.rb CHANGED
@@ -1,72 +1,169 @@
1
1
  module VER
2
2
  class Text < Tk::Text
3
3
  autoload :Index, 'ver/text/index'
4
- include Methods
5
-
6
- MODE_CURSOR = {
7
- :insert => {insertbackground: 'red', blockcursor: false},
8
- :control => {insertbackground: 'green', blockcursor: true},
9
- :select_char => {insertbackground: 'yellow', blockcursor: true},
10
- :select_line => {insertbackground: 'yellow', blockcursor: true},
11
- :select_block => {insertbackground: 'yellow', blockcursor: true},
12
- }
13
-
14
- GUESS_ENCODING_ORDER = [
15
- Encoding::US_ASCII,
16
- Encoding::UTF_8,
17
- Encoding::Shift_JIS,
18
- Encoding::EUC_JP,
19
- Encoding::EucJP_ms,
20
- Encoding::Big5,
21
- Encoding::UTF_16BE,
22
- Encoding::UTF_16LE,
23
- Encoding::UTF_32BE,
24
- Encoding::UTF_32LE,
25
- Encoding::CP949,
26
- Encoding::Emacs_Mule,
27
- Encoding::EUC_KR,
28
- Encoding::EUC_TW,
29
- Encoding::GB18030,
30
- Encoding::GBK,
31
- Encoding::Stateless_ISO_2022_JP,
32
- Encoding::CP51932,
33
- Encoding::EUC_CN,
34
- Encoding::GB12345,
35
- Encoding::Windows_31J,
36
- Encoding::MacJapanese,
37
- Encoding::UTF8_MAC,
38
- Encoding::BINARY,
39
- ]
4
+ include Keymapped
40
5
 
6
+ None = Object.new
41
7
  MATCH_WORD_RIGHT = /[^a-zA-Z0-9]+[a-zA-Z0-9'"{}\[\]\n-]/
42
8
  MATCH_WORD_LEFT = /(^|\b)\S+(\b|$)/
9
+ MODE_STYLES = {
10
+ :insert => {insertbackground: 'red', blockcursor: false},
11
+ /select/ => {insertbackground: 'yellow', blockcursor: true},
12
+ /replace/ => {insertbackground: 'orange', blockcursor: true},
13
+ }
14
+
15
+ attr_accessor(:buffer, :status, :project_root, :project_repo,
16
+ :undoer, :pristine, :prefix_arg, :readonly)
17
+ attr_reader(:filename, :options, :snippets, :preferences, :store_hash,
18
+ :default_theme_config, :encoding, :syntax, :name)
19
+
20
+ def initialize(buffer, options = {})
21
+ @project_repo = @project_root = @highlighter = nil
22
+
23
+ if peer = options.delete(:peer)
24
+ @tag_commands = {}
25
+ @tk_parent = buffer
26
+ @store_hash = peer.store_hash
27
+ @default_theme_config = peer.default_theme_config
28
+ Tk.execute(peer.tk_pathname, 'peer', 'create', assign_pathname, options)
29
+ self.filename = peer.filename
30
+ configure(peer.configure)
31
+ else
32
+ @default_theme_config = nil
33
+ @store_hash = Hash.new{|h,k| h[k] = {} }
34
+ super
35
+ end
36
+
37
+ widget_setup(buffer)
38
+ end
39
+
40
+ # This is a noop, it simply provides a target with a sane name.
41
+ def update_prefix_arg(widget)
42
+ numbers = []
43
+
44
+ major_mode.event_history.reverse_each do |event|
45
+ break unless event[:sequence] =~ /^(\d+)$/
46
+ numbers << $1
47
+ end
48
+
49
+ if numbers.any? && numbers != ['0']
50
+ self.prefix_arg = numbers.reverse.join.to_i
51
+ else
52
+ self.prefix_arg = nil
53
+ end
54
+ end
55
+
56
+ # Same as [prefix_arg], but returns 1 if there is no argument.
57
+ # Useful for [Move] methods and the like.
58
+ # Please note that calling this method is destructive.
59
+ # It will reset the state of the prefix_arg in order to avoid persistent
60
+ # arguments.
61
+ # So use it only once while your action is running, and store the result in a
62
+ # variable if you need it more than once.
63
+ def prefix_count
64
+ count = prefix_arg || 1
65
+ update_prefix_arg(self)
66
+ count
67
+ end
43
68
 
44
- attr_accessor :keymap, :view, :status
45
- attr_reader :filename, :encoding, :pristine, :syntax, :undoer
69
+ def persisted?
70
+ return false unless filename
71
+ return false unless filename.file?
72
+ require 'digest/md5'
46
73
 
47
- # attributes for diverse functionality
48
- attr_accessor :selection_mode, :selection_start
74
+ on_disk = Digest::MD5.hexdigest(filename.read)
75
+ in_memory = Digest::MD5.hexdigest(value)
76
+ on_disk == in_memory
77
+ end
78
+
79
+ def store(namespace, key, value = None)
80
+ if None == value
81
+ @store_hash[namespace][key]
82
+ else
83
+ @store_hash[namespace][key] = value
84
+ end
85
+ end
49
86
 
50
- def initialize(view, options = {})
87
+ def inspect
88
+ details = {
89
+ mode: major_mode
90
+ }.map{|key, value| "%s=%p" % [key, value ] }.join(' ')
91
+ "#<VER::Text #{details}>"
92
+ end
93
+
94
+ def value=(string)
51
95
  super
52
- self.view = view
53
- @options = Options.new(:text, VER.options)
96
+ touch!('1.0', 'end')
97
+ end
54
98
 
55
- keymap_name = @options.keymap
56
- self.keymap = Keymap.get(name: keymap_name, receiver: self)
99
+ def peer_create(buffer)
100
+ self.class.new(buffer, peer: self)
101
+ end
57
102
 
58
- apply_mode_style(keymap.mode) # for startup
59
- setup_tags
103
+ def widget_setup(buffer)
104
+ self.buffer = buffer
105
+ @options = Options.new(:text, VER.options)
60
106
 
61
107
  @undoer = VER::Undo::Tree.new(self)
62
108
 
63
- self.selection_start = nil
109
+ self.major_mode = :Fundamental
110
+
111
+ sync_mode_style
112
+ setup_tags
113
+
64
114
  @pristine = true
65
115
  @syntax = nil
66
- @encoding = Encoding.default_internal
67
- @dirty_indices = []
116
+ self.encoding = Encoding.default_internal
117
+
118
+ event_setup
119
+ end
68
120
 
69
- self.mode = keymap.mode
121
+ def event_setup
122
+ bind '<<EnterMinorMode>>' do |event|
123
+ sync_mode_status
124
+ sync_mode_style(event.detail)
125
+ end
126
+
127
+ bind '<<Modified>>' do |event|
128
+ see :insert
129
+ sync_position_status
130
+ end
131
+
132
+ bind '<<Movement>>' do |event|
133
+ see :insert
134
+ Methods::Selection.refresh(self)
135
+ show_matching_brace
136
+ sync_position_status
137
+ end
138
+
139
+ bind('<FocusIn>') do |event|
140
+ on_focus_in(event)
141
+ Tk.callback_break
142
+ end
143
+
144
+ bind('<FocusOut>') do |event|
145
+ on_focus_out(event)
146
+ Tk.callback_break
147
+ end
148
+
149
+ bind '<Destroy>' do |event|
150
+ VER.cancel_block(@highlighter)
151
+ end
152
+ end
153
+
154
+ def on_focus_in(event)
155
+ Dir.chdir(filename.dirname.to_s) if options.auto_chdir
156
+ set_window_title
157
+ see(:insert)
158
+ Tk::Tile::Style.configure(buffer.style, border: 1, background: '#f00')
159
+ end
160
+
161
+ def on_focus_out(event)
162
+ Tk::Tile::Style.configure(buffer.style, border: 1, background: '#fff')
163
+ end
164
+
165
+ def pristine?
166
+ @pristine
70
167
  end
71
168
 
72
169
  def index(idx)
@@ -74,39 +171,63 @@ module VER
74
171
  end
75
172
 
76
173
  def message(*args)
77
- status.message(*args)
174
+ VER.message(*args)
78
175
  end
79
176
 
80
177
  def noop(*args)
81
- message "Noop %p in mode %p" % [args, keymap.mode]
178
+ # message "Noop %p in mode %p" % [args, keymap.mode]
82
179
  end
83
180
 
84
181
  def short_filename
85
- filename.sub(Dir.pwd + '/', '') if filename
182
+ if filename
183
+ if root = @project_root
184
+ filename.relative_path_from(root).to_s
185
+ else
186
+ filename.sub(Dir.pwd + '/', '').to_s
187
+ end
188
+ elsif name
189
+ name.to_s
190
+ end
191
+ end
192
+
193
+ def name=(name)
194
+ @name = name
195
+ status.event :filename if status
86
196
  end
87
197
 
88
198
  def filename=(path)
89
199
  @filename = Pathname(path.to_s).expand_path
200
+ status.event :filename if status
201
+ end
202
+
203
+ def syntax=(syn)
204
+ @syntax = syn
205
+ status.event :syntax if syn && status
206
+ end
207
+
208
+ def encoding=(enc)
209
+ @encoding = enc
210
+ status.event :encoding if enc && status
90
211
  end
91
212
 
92
213
  def layout
93
- view.layout
214
+ buffer.layout
94
215
  end
95
216
 
96
- def status_projection(into)
97
- format = options.statusline.dup
217
+ def sync_mode_status
218
+ status.event :mode
219
+ end
98
220
 
99
- format.gsub!(/%([[:alpha:]]+)/, '#{\1()}')
100
- format.gsub!(/%_([[:alpha:]]+)/, '#{(_ = \1()) ? " #{_}" : ""}')
101
- format.gsub!(/%([+-]?\d+)([[:alpha:]]+)/, '#{\2(\1)}')
102
- format = "%{#{format}}"
221
+ def sync_position_status
222
+ status.event :position, :percent
223
+ end
103
224
 
104
- context = Status::Context.new(self)
105
- line = context.instance_eval(format)
225
+ def sync_encoding_status
226
+ status.event :encoding
227
+ end
106
228
 
107
- into.value = line
108
- rescue => ex
109
- puts ex, ex.backtrace
229
+ def sync_percent_status
230
+ status.event :percent
110
231
  end
111
232
 
112
233
  TAG_ALL_MATCHING_OPTIONS = { from: '1.0', to: 'end - 1 chars' }
@@ -125,39 +246,61 @@ module VER
125
246
 
126
247
  search_all(regexp, from, to) do |match, match_from, match_to|
127
248
  name = yield(match, match_from, match_to) if block_given?
128
- fast_tag_add name, match_from, match_to
249
+ tag_add name, match_from, match_to
129
250
  end
130
251
  end
131
252
 
132
- def search_all(regexp, from = '1.0', to = 'end - 1 chars')
133
- return Enumerator.new(self, :search_all, regexp, from) unless block_given?
134
- from, to = from.to_s, to.to_s
253
+ def search_all(regexp, start = '1.0', stop = 'end - 1 chars')
254
+ unless block_given?
255
+ return Enumerator.new(self, :search_all, regexp, start, stop)
256
+ end
135
257
 
136
- while result = search(regexp, from, to, :count)
258
+ while result = search(regexp, start, stop, :count)
137
259
  pos, len = result
138
- break if !pos || len == 0
260
+ return if !pos || len == 0
139
261
 
140
- match = get(pos, "#{pos} + #{len} chars")
141
- from = "#{pos} + #{len} chars"
262
+ from = index(pos)
263
+ to = index("#{pos} + #{len} chars")
264
+ match = get(from, to)
142
265
 
143
- yield(match, pos, from)
266
+ yield(match, from, to)
267
+
268
+ start = to
144
269
  end
145
270
  end
146
271
 
147
- def rsearch_all(regexp, from = 'end', to = '1.0')
148
- return Enumerator.new(self, :rsearch_all, regexp, from) unless block_given?
272
+ def rsearch_all(regexp, start = 'end', stop = '1.0')
273
+ unless block_given?
274
+ return Enumerator.new(self, :rsearch_all, regexp, start, stop)
275
+ end
149
276
 
150
- while result = rsearch(regexp, from, to, :count)
277
+ while result = rsearch(regexp, start, stop, :count)
151
278
  pos, len = result
152
279
  break if !pos || len == 0
153
280
 
154
- match = get(pos, "#{pos} + #{len} chars")
155
- from = index("#{pos} - #{len} chars")
281
+ from = index(pos)
282
+ to = index("#{pos} + #{len} chars")
283
+ match = get(from, to)
156
284
 
157
- yield(match, pos, from)
285
+ yield(match, from, to)
286
+
287
+ start = from
158
288
  end
159
289
  end
160
290
 
291
+ def up_down_line(count)
292
+ insert = index(:insert)
293
+
294
+ @udl_pos_orig = insert if @udl_pos_prev != insert
295
+
296
+ lines = count(@udl_pos_orig, insert, :displaylines)
297
+ target = index("#@udl_pos_orig + #{lines + count} displaylines")
298
+ @udl_pos_prev = target
299
+
300
+ @udl_pos_orig = target if target.x == @udl_pos_orig.x
301
+ target
302
+ end
303
+
161
304
  def tag_exists?(given_path)
162
305
  tag_names.include?(given_path)
163
306
  rescue RuntimeError => ex
@@ -171,11 +314,11 @@ module VER
171
314
  Tk::Event.generate(self, '<<Movement>>')
172
315
  end
173
316
 
174
- def insert(index, string)
317
+ def insert(index, string, tag = Tk::None)
175
318
  index = index(index) unless index.respond_to?(:to_index)
176
319
 
177
- undo_record do |record|
178
- record.insert(index, string)
320
+ Methods::Undo.record self do |record|
321
+ record.insert(index, string, tag)
179
322
  end
180
323
  end
181
324
 
@@ -197,21 +340,13 @@ module VER
197
340
  index2 = index(index2) unless index2.respond_to?(:to_index)
198
341
  return if index1 == index2
199
342
 
200
- undo_record do |record|
343
+ Methods::Undo.record self do |record|
201
344
  record.replace(index1, index2, string)
202
345
  end
203
346
  end
204
347
 
205
- def focus
206
- super
207
- Tk::Event.generate(self, '<<Focus>>')
208
- end
209
-
210
- def fast_tag_add(tag, *indices)
211
- execute('tag', 'add', tag, *indices)
212
- self
213
- rescue RuntimeError => ex
214
- VER.error(ex)
348
+ def delete(*indices)
349
+ Methods::Delete.delete(self, *indices)
215
350
  end
216
351
 
217
352
  def set_window_title
@@ -225,6 +360,8 @@ module VER
225
360
  else
226
361
  title = "#{file} (#{dir_relative_to_home}) - VER"
227
362
  end
363
+ elsif name
364
+ title = "[#{name}] - VER"
228
365
  else
229
366
  title = "[No Name] - VER"
230
367
  end
@@ -233,67 +370,31 @@ module VER
233
370
  end
234
371
 
235
372
  def setup_highlight
236
- return unless filename
237
- return if @encoding == Encoding::BINARY
238
-
239
- if @syntax = Syntax.from_filename(filename)
240
- defer{ syntax.highlight(self, value) }
241
- status_projection(status) if status
242
- end
243
- end
244
-
245
- def schedule_line_highlight(raw_index)
246
- return unless @syntax
247
- index = index(raw_index)
248
- schedule_line_highlight!(index.y - 1, index.linestart, index.lineend)
249
- end
250
-
251
- def schedule_highlight(options = {})
252
- return unless @syntax
253
- schedule_highlight!
373
+ setup_highlight_for(Syntax.from_filename(filename)) if filename
254
374
  end
255
375
 
256
- # TODO: maybe we can make this one faster when many lines are going to be
257
- # highlighted at once by bundling them.
258
- def touch!(*args)
259
- args.each{|arg| schedule_line_highlight(arg) } if @syntax
260
- Tk::Event.generate(self, '<<Modified>>')
261
- end
376
+ def setup_highlight_for(syntax)
377
+ return if encoding == Encoding::BINARY
378
+ return unless syntax
262
379
 
263
- private
380
+ self.syntax = syntax
381
+ VER.cancel_block(@highlighter)
264
382
 
265
- def schedule_highlight!(*args)
266
- defer do
267
- syntax.highlight(self, value)
268
- tag_all_trailing_whitespace
269
- tag_all_uris
270
- end
271
- end
383
+ interval = options.syntax_highlight_interval.to_int
384
+ @highlighter = VER.when_inactive_for(interval){
385
+ handle_pending_syntax_highlights
386
+ }
272
387
 
273
- # TODO: only tag the current line.
274
- def schedule_line_highlight!(line, from, to)
275
- defer do
276
- syntax.highlight(self, get(from, to), line, from, to)
277
- tag_all_trailing_whitespace(from: from, to: to)
278
- tag_all_uris(from: from, to: to)
279
- end
280
- end
388
+ touch!('1.0', 'end')
281
389
 
282
- def mode=(name)
283
- keymap.mode = mode = name.to_sym
284
- undo_separator
285
- apply_mode_style(mode)
286
- status_projection(status) if status
390
+ sync_mode_status
287
391
  end
288
392
 
289
- def apply_mode_style(mode)
290
- cursor = MODE_CURSOR[mode]
291
- return unless cursor
292
- configure cursor
293
-
294
- return unless status && color = cursor[:insertbackground]
295
- style = status.style
296
- Tk::Tile::Style.configure style, fieldbackground: color
393
+ # TODO: maybe we can make this one faster when many lines are going to be
394
+ # highlighted at once by bundling them.
395
+ def touch!(*indices)
396
+ tag_add('ver.highlight.pending', *indices) if @syntax
397
+ Tk::Event.generate(self, '<<Modified>>')
297
398
  end
298
399
 
299
400
  def load_theme(name)
@@ -301,7 +402,7 @@ module VER
301
402
  return unless found = Theme.find(name)
302
403
 
303
404
  syntax.theme = Theme.load(found)
304
- schedule_highlight
405
+ touch!('1.0', 'end')
305
406
 
306
407
  message "Theme #{found} loaded"
307
408
  end
@@ -312,40 +413,108 @@ module VER
312
413
  theme = syntax.theme
313
414
 
314
415
  if name.is_a?(Syntax)
315
- @syntax = Syntax.new(name.name, theme)
416
+ self.syntax = Syntax.new(name.name, theme)
316
417
  elsif found = Syntax.find(name)
317
- @syntax = Syntax.new(name, theme)
418
+ self.syntax = Syntax.new(name, theme)
318
419
  else
319
420
  return false
320
421
  end
321
422
 
322
- schedule_highlight
423
+ message "Syntax #{syntax.name} loaded"
424
+ end
425
+
426
+ def handle_pending_syntax_highlights
427
+ ignore_tags = %w[ver.highlight.pending sel]
428
+ tag_ranges('ver.highlight.pending').each do |from, to|
429
+ (tag_names(from) - ignore_tags).each do |tag_name|
430
+ tag_from, _ = tag_prevrange(tag_name, from)
431
+ from = tag_from if tag_from && from > tag_from
432
+ end
433
+
434
+ (tag_names(to) - ignore_tags).each do |tag_name|
435
+ _, tag_to = tag_nextrange(tag_name, to)
436
+ to = tag_to if tag_to && to < tag_to
437
+ end
438
+
439
+ from, to = index(from).linestart, index(to).lineend
440
+ lineno = from.y - 1
441
+ syntax.highlight(self, lineno, from, to)
442
+ tag_all_trailing_whitespace(from: from, to: to)
443
+ tag_all_uris(from: from, to: to)
444
+ tag_remove('ver.highlight.pending', from, to)
445
+ end
446
+ end
447
+
448
+ def default_theme_config=(config)
449
+ @default_theme_config = config
450
+ sync_mode_style
451
+ end
323
452
 
324
- message "Syntax #{@syntax.name} loaded"
453
+ def ask(prompt, options = {}, &action)
454
+ options[:caller] ||= self
455
+ VER.minibuf.ask(prompt, options, &action)
325
456
  end
326
457
 
327
458
  def load_preferences
328
- return unless @syntax
459
+ return unless syntax
460
+
461
+ name = syntax.name
462
+ return unless file = VER.find_in_loadpath("preferences/#{name}.rb")
463
+ @preferences = eval(file.read)
464
+ rescue Errno::ENOENT, TypeError => ex
465
+ VER.error(ex)
466
+ end
467
+
468
+ def load_snippets
469
+ return unless syntax
329
470
 
330
- name = @syntax.name
331
- file = VER.find_in_loadpath("preferences/#{name}.json")
332
- @preferences = JSON.load(File.read(file))
471
+ name = syntax.name
472
+ return unless file = VER.find_in_loadpath("snippets/#{name}.rb")
473
+ @snippets = eval(file.read)
333
474
  rescue Errno::ENOENT, TypeError => ex
334
475
  VER.error(ex)
335
476
  end
336
477
 
478
+ def sync_mode_style(given_mode = nil)
479
+ config = (default_theme_config || {}).merge(blockcursor: false)
480
+
481
+ modes = given_mode ? [given_mode] : major_mode.minors
482
+
483
+ modes.each do |mode|
484
+ mode = MinorMode[mode]
485
+
486
+ MODE_STYLES.each do |pattern, style|
487
+ config.merge!(style) if pattern === mode.name
488
+ end
489
+ end
490
+
491
+ configure(config)
492
+ return unless status && color = config[:insertbackground]
493
+
494
+ status.style = {
495
+ background: cget(:background),
496
+ foreground: color,
497
+ }
498
+ end
499
+
500
+ private
501
+
337
502
  def setup_tags
338
503
  setup_highlight_trailing_whitespace
339
504
  setup_highlight_links
505
+ setup_highlight_pending
506
+ end
507
+
508
+ def setup_highlight_pending
509
+ # tag_configure 'ver.highlight.pending', underline: true
340
510
  end
341
511
 
342
512
  def setup_highlight_trailing_whitespace
343
- tag_configure 'invalid.trailing-whitespace', background: '#f00'
344
- tag_all_trailing_whitespace
513
+ tag_configure 'invalid.trailing-whitespace', background: '#400'
345
514
  end
346
515
 
347
516
  def setup_highlight_links
348
- tag_configure 'markup.underline.link' , underline: true, foreground: '#00f'
517
+ tag_configure 'markup.underline.link' , underline: true, foreground: '#0ff'
349
518
 
350
519
  tag_bind('markup.underline.link', '<1>') do |event|
351
520
  pos = index("@#{event.x},#{event.y}")
@@ -362,25 +531,23 @@ module VER
362
531
  message "%p opens the uri: %s" % [browser, uri]
363
532
  end
364
533
  end
365
-
366
- tag_all_uris
367
534
  end
368
535
 
369
536
  def tag_all_uris(given_options = {})
370
- tag_all_matching('markup.underline.link', /https?:\/\/[^)\]}\s'"]+/, given_options)
537
+ tag_all_matching('markup.underline.link', /https?:\/\/[^<>)\]}\s'"]+/, given_options)
371
538
  end
372
539
 
373
540
  def tag_all_trailing_whitespace(given_options = {})
374
541
  tag_all_matching('invalid.trailing-whitespace', /[ \t]+$/, given_options)
375
542
  end
376
543
 
377
- def defer
378
- Tk::After.idle do
379
- begin
380
- yield
381
- rescue Exception => ex
382
- VER.error(ex)
383
- end
544
+ def show_matching_brace(index = :insert)
545
+ tag = 'ver.highlight.brace'
546
+ tag_remove(tag, '1.0', 'end')
547
+
548
+ if pos = Methods::Move.matching_brace_pos(self, index)
549
+ tag_configure(tag, background: '#ff0', foreground: '#00f')
550
+ tag_add(tag, 'insert', 'insert + 1 chars', pos, "#{pos} + 1 chars")
384
551
  end
385
552
  end
386
553