nano-clean-pkg 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (540) hide show
  1. checksums.yaml +7 -0
  2. data/nano-clean-pkg.gemspec +11 -0
  3. data/rouge-5.0.0/Gemfile +48 -0
  4. data/rouge-5.0.0/LICENSE +187 -0
  5. data/rouge-5.0.0/bin/rougify +17 -0
  6. data/rouge-5.0.0/lib/rouge/cli.rb +527 -0
  7. data/rouge-5.0.0/lib/rouge/demos/abap +32 -0
  8. data/rouge-5.0.0/lib/rouge/demos/actionscript +4 -0
  9. data/rouge-5.0.0/lib/rouge/demos/ada +26 -0
  10. data/rouge-5.0.0/lib/rouge/demos/apache +21 -0
  11. data/rouge-5.0.0/lib/rouge/demos/apex +9 -0
  12. data/rouge-5.0.0/lib/rouge/demos/apiblueprint +33 -0
  13. data/rouge-5.0.0/lib/rouge/demos/applescript +2 -0
  14. data/rouge-5.0.0/lib/rouge/demos/armasm +12 -0
  15. data/rouge-5.0.0/lib/rouge/demos/augeas +16 -0
  16. data/rouge-5.0.0/lib/rouge/demos/awk +4 -0
  17. data/rouge-5.0.0/lib/rouge/demos/batchfile +3 -0
  18. data/rouge-5.0.0/lib/rouge/demos/bbcbasic +6 -0
  19. data/rouge-5.0.0/lib/rouge/demos/bibtex +12 -0
  20. data/rouge-5.0.0/lib/rouge/demos/bicep +10 -0
  21. data/rouge-5.0.0/lib/rouge/demos/biml +38 -0
  22. data/rouge-5.0.0/lib/rouge/demos/bpf +7 -0
  23. data/rouge-5.0.0/lib/rouge/demos/brainfuck +5 -0
  24. data/rouge-5.0.0/lib/rouge/demos/brightscript +6 -0
  25. data/rouge-5.0.0/lib/rouge/demos/bsl +7 -0
  26. data/rouge-5.0.0/lib/rouge/demos/c +8 -0
  27. data/rouge-5.0.0/lib/rouge/demos/ceylon +7 -0
  28. data/rouge-5.0.0/lib/rouge/demos/cfscript +18 -0
  29. data/rouge-5.0.0/lib/rouge/demos/cisco_ios +19 -0
  30. data/rouge-5.0.0/lib/rouge/demos/clean +6 -0
  31. data/rouge-5.0.0/lib/rouge/demos/clojure +5 -0
  32. data/rouge-5.0.0/lib/rouge/demos/cmake +7 -0
  33. data/rouge-5.0.0/lib/rouge/demos/cmhg +8 -0
  34. data/rouge-5.0.0/lib/rouge/demos/cobol +103 -0
  35. data/rouge-5.0.0/lib/rouge/demos/codeowners +6 -0
  36. data/rouge-5.0.0/lib/rouge/demos/coffeescript +5 -0
  37. data/rouge-5.0.0/lib/rouge/demos/common_lisp +1 -0
  38. data/rouge-5.0.0/lib/rouge/demos/conf +4 -0
  39. data/rouge-5.0.0/lib/rouge/demos/console +6 -0
  40. data/rouge-5.0.0/lib/rouge/demos/cpp +8 -0
  41. data/rouge-5.0.0/lib/rouge/demos/crystal +45 -0
  42. data/rouge-5.0.0/lib/rouge/demos/csharp +5 -0
  43. data/rouge-5.0.0/lib/rouge/demos/css +4 -0
  44. data/rouge-5.0.0/lib/rouge/demos/csvs +8 -0
  45. data/rouge-5.0.0/lib/rouge/demos/cuda +11 -0
  46. data/rouge-5.0.0/lib/rouge/demos/cypher +5 -0
  47. data/rouge-5.0.0/lib/rouge/demos/cython +6 -0
  48. data/rouge-5.0.0/lib/rouge/demos/d +16 -0
  49. data/rouge-5.0.0/lib/rouge/demos/dafny +16 -0
  50. data/rouge-5.0.0/lib/rouge/demos/dart +6 -0
  51. data/rouge-5.0.0/lib/rouge/demos/datastudio +20 -0
  52. data/rouge-5.0.0/lib/rouge/demos/diff +7 -0
  53. data/rouge-5.0.0/lib/rouge/demos/digdag +19 -0
  54. data/rouge-5.0.0/lib/rouge/demos/docker +9 -0
  55. data/rouge-5.0.0/lib/rouge/demos/dot +5 -0
  56. data/rouge-5.0.0/lib/rouge/demos/dylan +8 -0
  57. data/rouge-5.0.0/lib/rouge/demos/ecl +17 -0
  58. data/rouge-5.0.0/lib/rouge/demos/eex +1 -0
  59. data/rouge-5.0.0/lib/rouge/demos/eiffel +30 -0
  60. data/rouge-5.0.0/lib/rouge/demos/elixir +1 -0
  61. data/rouge-5.0.0/lib/rouge/demos/elm +4 -0
  62. data/rouge-5.0.0/lib/rouge/demos/email +11 -0
  63. data/rouge-5.0.0/lib/rouge/demos/epp +4 -0
  64. data/rouge-5.0.0/lib/rouge/demos/erb +1 -0
  65. data/rouge-5.0.0/lib/rouge/demos/erlang +7 -0
  66. data/rouge-5.0.0/lib/rouge/demos/escape +3 -0
  67. data/rouge-5.0.0/lib/rouge/demos/factor +5 -0
  68. data/rouge-5.0.0/lib/rouge/demos/fluent +13 -0
  69. data/rouge-5.0.0/lib/rouge/demos/fortran +22 -0
  70. data/rouge-5.0.0/lib/rouge/demos/freefem +16 -0
  71. data/rouge-5.0.0/lib/rouge/demos/fsharp +12 -0
  72. data/rouge-5.0.0/lib/rouge/demos/gdscript +18 -0
  73. data/rouge-5.0.0/lib/rouge/demos/ghc-cmm +23 -0
  74. data/rouge-5.0.0/lib/rouge/demos/ghc-core +26 -0
  75. data/rouge-5.0.0/lib/rouge/demos/gherkin +17 -0
  76. data/rouge-5.0.0/lib/rouge/demos/gjs +23 -0
  77. data/rouge-5.0.0/lib/rouge/demos/glsl +14 -0
  78. data/rouge-5.0.0/lib/rouge/demos/go +7 -0
  79. data/rouge-5.0.0/lib/rouge/demos/gradle +10 -0
  80. data/rouge-5.0.0/lib/rouge/demos/graphql +17 -0
  81. data/rouge-5.0.0/lib/rouge/demos/groovy +9 -0
  82. data/rouge-5.0.0/lib/rouge/demos/gts +36 -0
  83. data/rouge-5.0.0/lib/rouge/demos/hack +5 -0
  84. data/rouge-5.0.0/lib/rouge/demos/haml +5 -0
  85. data/rouge-5.0.0/lib/rouge/demos/handlebars +7 -0
  86. data/rouge-5.0.0/lib/rouge/demos/haskell +6 -0
  87. data/rouge-5.0.0/lib/rouge/demos/haxe +4 -0
  88. data/rouge-5.0.0/lib/rouge/demos/hcl +7 -0
  89. data/rouge-5.0.0/lib/rouge/demos/hlsl +20 -0
  90. data/rouge-5.0.0/lib/rouge/demos/hocon +8 -0
  91. data/rouge-5.0.0/lib/rouge/demos/hql +5 -0
  92. data/rouge-5.0.0/lib/rouge/demos/html +8 -0
  93. data/rouge-5.0.0/lib/rouge/demos/http +14 -0
  94. data/rouge-5.0.0/lib/rouge/demos/hylang +10 -0
  95. data/rouge-5.0.0/lib/rouge/demos/idlang +8 -0
  96. data/rouge-5.0.0/lib/rouge/demos/idris +13 -0
  97. data/rouge-5.0.0/lib/rouge/demos/iecst +21 -0
  98. data/rouge-5.0.0/lib/rouge/demos/igorpro +9 -0
  99. data/rouge-5.0.0/lib/rouge/demos/ini +4 -0
  100. data/rouge-5.0.0/lib/rouge/demos/io +11 -0
  101. data/rouge-5.0.0/lib/rouge/demos/irb +4 -0
  102. data/rouge-5.0.0/lib/rouge/demos/irb_output +2 -0
  103. data/rouge-5.0.0/lib/rouge/demos/isabelle +16 -0
  104. data/rouge-5.0.0/lib/rouge/demos/isbl +4 -0
  105. data/rouge-5.0.0/lib/rouge/demos/j +12 -0
  106. data/rouge-5.0.0/lib/rouge/demos/janet +3 -0
  107. data/rouge-5.0.0/lib/rouge/demos/java +5 -0
  108. data/rouge-5.0.0/lib/rouge/demos/javascript +1 -0
  109. data/rouge-5.0.0/lib/rouge/demos/jinja +9 -0
  110. data/rouge-5.0.0/lib/rouge/demos/jsl +3 -0
  111. data/rouge-5.0.0/lib/rouge/demos/json +1 -0
  112. data/rouge-5.0.0/lib/rouge/demos/json-doc +1 -0
  113. data/rouge-5.0.0/lib/rouge/demos/json5 +12 -0
  114. data/rouge-5.0.0/lib/rouge/demos/jsonnet +28 -0
  115. data/rouge-5.0.0/lib/rouge/demos/jsp +29 -0
  116. data/rouge-5.0.0/lib/rouge/demos/jsx +17 -0
  117. data/rouge-5.0.0/lib/rouge/demos/julia +11 -0
  118. data/rouge-5.0.0/lib/rouge/demos/kick_assembler +14 -0
  119. data/rouge-5.0.0/lib/rouge/demos/kotlin +3 -0
  120. data/rouge-5.0.0/lib/rouge/demos/lasso +12 -0
  121. data/rouge-5.0.0/lib/rouge/demos/lean +8 -0
  122. data/rouge-5.0.0/lib/rouge/demos/liquid +10 -0
  123. data/rouge-5.0.0/lib/rouge/demos/literate_coffeescript +3 -0
  124. data/rouge-5.0.0/lib/rouge/demos/literate_haskell +7 -0
  125. data/rouge-5.0.0/lib/rouge/demos/livescript +15 -0
  126. data/rouge-5.0.0/lib/rouge/demos/llvm +20 -0
  127. data/rouge-5.0.0/lib/rouge/demos/lua +12 -0
  128. data/rouge-5.0.0/lib/rouge/demos/lustre +6 -0
  129. data/rouge-5.0.0/lib/rouge/demos/lutin +18 -0
  130. data/rouge-5.0.0/lib/rouge/demos/m68k +16 -0
  131. data/rouge-5.0.0/lib/rouge/demos/magik +6 -0
  132. data/rouge-5.0.0/lib/rouge/demos/make +6 -0
  133. data/rouge-5.0.0/lib/rouge/demos/markdown +4 -0
  134. data/rouge-5.0.0/lib/rouge/demos/mason +22 -0
  135. data/rouge-5.0.0/lib/rouge/demos/mathematica +8 -0
  136. data/rouge-5.0.0/lib/rouge/demos/matlab +6 -0
  137. data/rouge-5.0.0/lib/rouge/demos/meson +10 -0
  138. data/rouge-5.0.0/lib/rouge/demos/minizinc +23 -0
  139. data/rouge-5.0.0/lib/rouge/demos/mojo +10 -0
  140. data/rouge-5.0.0/lib/rouge/demos/moonscript +16 -0
  141. data/rouge-5.0.0/lib/rouge/demos/mosel +10 -0
  142. data/rouge-5.0.0/lib/rouge/demos/msgtrans +4 -0
  143. data/rouge-5.0.0/lib/rouge/demos/mxml +22 -0
  144. data/rouge-5.0.0/lib/rouge/demos/nasm +26 -0
  145. data/rouge-5.0.0/lib/rouge/demos/nesasm +11 -0
  146. data/rouge-5.0.0/lib/rouge/demos/nginx +5 -0
  147. data/rouge-5.0.0/lib/rouge/demos/nial +35 -0
  148. data/rouge-5.0.0/lib/rouge/demos/nim +27 -0
  149. data/rouge-5.0.0/lib/rouge/demos/nix +19 -0
  150. data/rouge-5.0.0/lib/rouge/demos/objective_c +18 -0
  151. data/rouge-5.0.0/lib/rouge/demos/objective_cpp +17 -0
  152. data/rouge-5.0.0/lib/rouge/demos/ocaml +12 -0
  153. data/rouge-5.0.0/lib/rouge/demos/ocl +4 -0
  154. data/rouge-5.0.0/lib/rouge/demos/openedge +4 -0
  155. data/rouge-5.0.0/lib/rouge/demos/opentype_feature_file +5 -0
  156. data/rouge-5.0.0/lib/rouge/demos/p4 +99 -0
  157. data/rouge-5.0.0/lib/rouge/demos/pascal +14 -0
  158. data/rouge-5.0.0/lib/rouge/demos/pdf +29 -0
  159. data/rouge-5.0.0/lib/rouge/demos/perl +5 -0
  160. data/rouge-5.0.0/lib/rouge/demos/php +3 -0
  161. data/rouge-5.0.0/lib/rouge/demos/plaintext +1 -0
  162. data/rouge-5.0.0/lib/rouge/demos/plist +11 -0
  163. data/rouge-5.0.0/lib/rouge/demos/plsql +2 -0
  164. data/rouge-5.0.0/lib/rouge/demos/pony +17 -0
  165. data/rouge-5.0.0/lib/rouge/demos/postscript +9 -0
  166. data/rouge-5.0.0/lib/rouge/demos/powershell +13 -0
  167. data/rouge-5.0.0/lib/rouge/demos/praat +26 -0
  168. data/rouge-5.0.0/lib/rouge/demos/prolog +9 -0
  169. data/rouge-5.0.0/lib/rouge/demos/prometheus +9 -0
  170. data/rouge-5.0.0/lib/rouge/demos/properties +7 -0
  171. data/rouge-5.0.0/lib/rouge/demos/protobuf +5 -0
  172. data/rouge-5.0.0/lib/rouge/demos/puppet +6 -0
  173. data/rouge-5.0.0/lib/rouge/demos/python +6 -0
  174. data/rouge-5.0.0/lib/rouge/demos/q +8 -0
  175. data/rouge-5.0.0/lib/rouge/demos/qml +9 -0
  176. data/rouge-5.0.0/lib/rouge/demos/r +8 -0
  177. data/rouge-5.0.0/lib/rouge/demos/racket +24 -0
  178. data/rouge-5.0.0/lib/rouge/demos/reasonml +12 -0
  179. data/rouge-5.0.0/lib/rouge/demos/rego +8 -0
  180. data/rouge-5.0.0/lib/rouge/demos/rescript +26 -0
  181. data/rouge-5.0.0/lib/rouge/demos/rml +33 -0
  182. data/rouge-5.0.0/lib/rouge/demos/robot_framework +27 -0
  183. data/rouge-5.0.0/lib/rouge/demos/rocq +16 -0
  184. data/rouge-5.0.0/lib/rouge/demos/ruby +9 -0
  185. data/rouge-5.0.0/lib/rouge/demos/rust +12 -0
  186. data/rouge-5.0.0/lib/rouge/demos/sas +13 -0
  187. data/rouge-5.0.0/lib/rouge/demos/sass +3 -0
  188. data/rouge-5.0.0/lib/rouge/demos/scala +3 -0
  189. data/rouge-5.0.0/lib/rouge/demos/scheme +4 -0
  190. data/rouge-5.0.0/lib/rouge/demos/scss +5 -0
  191. data/rouge-5.0.0/lib/rouge/demos/sed +4 -0
  192. data/rouge-5.0.0/lib/rouge/demos/shell +2 -0
  193. data/rouge-5.0.0/lib/rouge/demos/sieve +10 -0
  194. data/rouge-5.0.0/lib/rouge/demos/slice +10 -0
  195. data/rouge-5.0.0/lib/rouge/demos/slim +17 -0
  196. data/rouge-5.0.0/lib/rouge/demos/smalltalk +6 -0
  197. data/rouge-5.0.0/lib/rouge/demos/smarty +11 -0
  198. data/rouge-5.0.0/lib/rouge/demos/sml +4 -0
  199. data/rouge-5.0.0/lib/rouge/demos/sparql +6 -0
  200. data/rouge-5.0.0/lib/rouge/demos/sqf +14 -0
  201. data/rouge-5.0.0/lib/rouge/demos/sql +1 -0
  202. data/rouge-5.0.0/lib/rouge/demos/ssh +4 -0
  203. data/rouge-5.0.0/lib/rouge/demos/stan +13 -0
  204. data/rouge-5.0.0/lib/rouge/demos/stata +14 -0
  205. data/rouge-5.0.0/lib/rouge/demos/supercollider +11 -0
  206. data/rouge-5.0.0/lib/rouge/demos/svelte +29 -0
  207. data/rouge-5.0.0/lib/rouge/demos/swift +5 -0
  208. data/rouge-5.0.0/lib/rouge/demos/systemd +4 -0
  209. data/rouge-5.0.0/lib/rouge/demos/syzlang +15 -0
  210. data/rouge-5.0.0/lib/rouge/demos/syzprog +8 -0
  211. data/rouge-5.0.0/lib/rouge/demos/tap +5 -0
  212. data/rouge-5.0.0/lib/rouge/demos/tcl +1 -0
  213. data/rouge-5.0.0/lib/rouge/demos/terraform +16 -0
  214. data/rouge-5.0.0/lib/rouge/demos/tex +1 -0
  215. data/rouge-5.0.0/lib/rouge/demos/thrift +15 -0
  216. data/rouge-5.0.0/lib/rouge/demos/toml +9 -0
  217. data/rouge-5.0.0/lib/rouge/demos/tsx +17 -0
  218. data/rouge-5.0.0/lib/rouge/demos/ttcn3 +6 -0
  219. data/rouge-5.0.0/lib/rouge/demos/tulip +13 -0
  220. data/rouge-5.0.0/lib/rouge/demos/turtle +26 -0
  221. data/rouge-5.0.0/lib/rouge/demos/twig +9 -0
  222. data/rouge-5.0.0/lib/rouge/demos/typescript +1 -0
  223. data/rouge-5.0.0/lib/rouge/demos/vala +8 -0
  224. data/rouge-5.0.0/lib/rouge/demos/vb +4 -0
  225. data/rouge-5.0.0/lib/rouge/demos/vcl +12 -0
  226. data/rouge-5.0.0/lib/rouge/demos/velocity +9 -0
  227. data/rouge-5.0.0/lib/rouge/demos/verilog +27 -0
  228. data/rouge-5.0.0/lib/rouge/demos/veryl +24 -0
  229. data/rouge-5.0.0/lib/rouge/demos/vhdl +23 -0
  230. data/rouge-5.0.0/lib/rouge/demos/viml +14 -0
  231. data/rouge-5.0.0/lib/rouge/demos/vue +11 -0
  232. data/rouge-5.0.0/lib/rouge/demos/wollok +11 -0
  233. data/rouge-5.0.0/lib/rouge/demos/xml +2 -0
  234. data/rouge-5.0.0/lib/rouge/demos/xojo +14 -0
  235. data/rouge-5.0.0/lib/rouge/demos/xpath +2 -0
  236. data/rouge-5.0.0/lib/rouge/demos/xquery +22 -0
  237. data/rouge-5.0.0/lib/rouge/demos/yaml +4 -0
  238. data/rouge-5.0.0/lib/rouge/demos/yang +17 -0
  239. data/rouge-5.0.0/lib/rouge/demos/zig +6 -0
  240. data/rouge-5.0.0/lib/rouge/eager.rb +3 -0
  241. data/rouge-5.0.0/lib/rouge/formatter.rb +112 -0
  242. data/rouge-5.0.0/lib/rouge/formatters/html.rb +64 -0
  243. data/rouge-5.0.0/lib/rouge/formatters/html_debug.rb +16 -0
  244. data/rouge-5.0.0/lib/rouge/formatters/html_inline.rb +30 -0
  245. data/rouge-5.0.0/lib/rouge/formatters/html_legacy.rb +56 -0
  246. data/rouge-5.0.0/lib/rouge/formatters/html_legacy_table.rb +57 -0
  247. data/rouge-5.0.0/lib/rouge/formatters/html_line_highlighter.rb +31 -0
  248. data/rouge-5.0.0/lib/rouge/formatters/html_line_table.rb +56 -0
  249. data/rouge-5.0.0/lib/rouge/formatters/html_linewise.rb +31 -0
  250. data/rouge-5.0.0/lib/rouge/formatters/html_pygments.rb +23 -0
  251. data/rouge-5.0.0/lib/rouge/formatters/html_table.rb +77 -0
  252. data/rouge-5.0.0/lib/rouge/formatters/null.rb +20 -0
  253. data/rouge-5.0.0/lib/rouge/formatters/terminal256.rb +198 -0
  254. data/rouge-5.0.0/lib/rouge/formatters/terminal_truecolor.rb +37 -0
  255. data/rouge-5.0.0/lib/rouge/formatters/tex.rb +92 -0
  256. data/rouge-5.0.0/lib/rouge/guesser.rb +57 -0
  257. data/rouge-5.0.0/lib/rouge/guessers/disambiguation.rb +172 -0
  258. data/rouge-5.0.0/lib/rouge/guessers/filename.rb +27 -0
  259. data/rouge-5.0.0/lib/rouge/guessers/glob_mapping.rb +45 -0
  260. data/rouge-5.0.0/lib/rouge/guessers/mimetype.rb +16 -0
  261. data/rouge-5.0.0/lib/rouge/guessers/modeline.rb +46 -0
  262. data/rouge-5.0.0/lib/rouge/guessers/source.rb +31 -0
  263. data/rouge-5.0.0/lib/rouge/guessers/util.rb +34 -0
  264. data/rouge-5.0.0/lib/rouge/lexer.rb +556 -0
  265. data/rouge-5.0.0/lib/rouge/lexers/abap/builtins.rb +187 -0
  266. data/rouge-5.0.0/lib/rouge/lexers/abap.rb +132 -0
  267. data/rouge-5.0.0/lib/rouge/lexers/actionscript.rb +196 -0
  268. data/rouge-5.0.0/lib/rouge/lexers/ada.rb +162 -0
  269. data/rouge-5.0.0/lib/rouge/lexers/apache/keywords.rb +16 -0
  270. data/rouge-5.0.0/lib/rouge/lexers/apache.rb +84 -0
  271. data/rouge-5.0.0/lib/rouge/lexers/apex.rb +128 -0
  272. data/rouge-5.0.0/lib/rouge/lexers/apiblueprint.rb +49 -0
  273. data/rouge-5.0.0/lib/rouge/lexers/apple_script.rb +370 -0
  274. data/rouge-5.0.0/lib/rouge/lexers/armasm.rb +145 -0
  275. data/rouge-5.0.0/lib/rouge/lexers/augeas.rb +93 -0
  276. data/rouge-5.0.0/lib/rouge/lexers/awk.rb +162 -0
  277. data/rouge-5.0.0/lib/rouge/lexers/batchfile.rb +165 -0
  278. data/rouge-5.0.0/lib/rouge/lexers/bbcbasic.rb +112 -0
  279. data/rouge-5.0.0/lib/rouge/lexers/bibtex.rb +115 -0
  280. data/rouge-5.0.0/lib/rouge/lexers/bicep.rb +111 -0
  281. data/rouge-5.0.0/lib/rouge/lexers/biml.rb +70 -0
  282. data/rouge-5.0.0/lib/rouge/lexers/bpf.rb +118 -0
  283. data/rouge-5.0.0/lib/rouge/lexers/brainfuck.rb +54 -0
  284. data/rouge-5.0.0/lib/rouge/lexers/brightscript.rb +146 -0
  285. data/rouge-5.0.0/lib/rouge/lexers/bsl.rb +82 -0
  286. data/rouge-5.0.0/lib/rouge/lexers/c.rb +204 -0
  287. data/rouge-5.0.0/lib/rouge/lexers/ceylon.rb +96 -0
  288. data/rouge-5.0.0/lib/rouge/lexers/cfscript.rb +154 -0
  289. data/rouge-5.0.0/lib/rouge/lexers/cisco_ios.rb +83 -0
  290. data/rouge-5.0.0/lib/rouge/lexers/clean.rb +156 -0
  291. data/rouge-5.0.0/lib/rouge/lexers/clojure.rb +113 -0
  292. data/rouge-5.0.0/lib/rouge/lexers/cmake.rb +218 -0
  293. data/rouge-5.0.0/lib/rouge/lexers/cmhg.rb +34 -0
  294. data/rouge-5.0.0/lib/rouge/lexers/cobol.rb +137 -0
  295. data/rouge-5.0.0/lib/rouge/lexers/codeowners.rb +30 -0
  296. data/rouge-5.0.0/lib/rouge/lexers/coffeescript.rb +215 -0
  297. data/rouge-5.0.0/lib/rouge/lexers/common_lisp.rb +346 -0
  298. data/rouge-5.0.0/lib/rouge/lexers/conf.rb +25 -0
  299. data/rouge-5.0.0/lib/rouge/lexers/console.rb +196 -0
  300. data/rouge-5.0.0/lib/rouge/lexers/cpp.rb +102 -0
  301. data/rouge-5.0.0/lib/rouge/lexers/crystal.rb +435 -0
  302. data/rouge-5.0.0/lib/rouge/lexers/csharp.rb +118 -0
  303. data/rouge-5.0.0/lib/rouge/lexers/css.rb +337 -0
  304. data/rouge-5.0.0/lib/rouge/lexers/csvs.rb +44 -0
  305. data/rouge-5.0.0/lib/rouge/lexers/cuda.rb +35 -0
  306. data/rouge-5.0.0/lib/rouge/lexers/cypher.rb +116 -0
  307. data/rouge-5.0.0/lib/rouge/lexers/cython.rb +127 -0
  308. data/rouge-5.0.0/lib/rouge/lexers/d.rb +177 -0
  309. data/rouge-5.0.0/lib/rouge/lexers/dafny.rb +128 -0
  310. data/rouge-5.0.0/lib/rouge/lexers/dart.rb +108 -0
  311. data/rouge-5.0.0/lib/rouge/lexers/datastudio.rb +138 -0
  312. data/rouge-5.0.0/lib/rouge/lexers/diff.rb +47 -0
  313. data/rouge-5.0.0/lib/rouge/lexers/digdag.rb +69 -0
  314. data/rouge-5.0.0/lib/rouge/lexers/docker.rb +55 -0
  315. data/rouge-5.0.0/lib/rouge/lexers/dot.rb +70 -0
  316. data/rouge-5.0.0/lib/rouge/lexers/dylan.rb +109 -0
  317. data/rouge-5.0.0/lib/rouge/lexers/ecl.rb +175 -0
  318. data/rouge-5.0.0/lib/rouge/lexers/eex.rb +52 -0
  319. data/rouge-5.0.0/lib/rouge/lexers/eiffel.rb +65 -0
  320. data/rouge-5.0.0/lib/rouge/lexers/elixir.rb +158 -0
  321. data/rouge-5.0.0/lib/rouge/lexers/elm.rb +90 -0
  322. data/rouge-5.0.0/lib/rouge/lexers/email.rb +39 -0
  323. data/rouge-5.0.0/lib/rouge/lexers/epp.rb +51 -0
  324. data/rouge-5.0.0/lib/rouge/lexers/erb.rb +53 -0
  325. data/rouge-5.0.0/lib/rouge/lexers/erlang.rb +115 -0
  326. data/rouge-5.0.0/lib/rouge/lexers/escape.rb +58 -0
  327. data/rouge-5.0.0/lib/rouge/lexers/factor.rb +303 -0
  328. data/rouge-5.0.0/lib/rouge/lexers/fluent.rb +74 -0
  329. data/rouge-5.0.0/lib/rouge/lexers/fortran.rb +178 -0
  330. data/rouge-5.0.0/lib/rouge/lexers/freefem.rb +240 -0
  331. data/rouge-5.0.0/lib/rouge/lexers/fsharp.rb +120 -0
  332. data/rouge-5.0.0/lib/rouge/lexers/gdscript.rb +171 -0
  333. data/rouge-5.0.0/lib/rouge/lexers/ghc_cmm.rb +340 -0
  334. data/rouge-5.0.0/lib/rouge/lexers/ghc_core.rb +152 -0
  335. data/rouge-5.0.0/lib/rouge/lexers/gherkin/keywords.rb +23 -0
  336. data/rouge-5.0.0/lib/rouge/lexers/gherkin.rb +142 -0
  337. data/rouge-5.0.0/lib/rouge/lexers/gjs.rb +39 -0
  338. data/rouge-5.0.0/lib/rouge/lexers/glsl/builtins.rb +17 -0
  339. data/rouge-5.0.0/lib/rouge/lexers/glsl.rb +69 -0
  340. data/rouge-5.0.0/lib/rouge/lexers/go.rb +177 -0
  341. data/rouge-5.0.0/lib/rouge/lexers/gradle.rb +38 -0
  342. data/rouge-5.0.0/lib/rouge/lexers/graphql.rb +261 -0
  343. data/rouge-5.0.0/lib/rouge/lexers/groovy.rb +119 -0
  344. data/rouge-5.0.0/lib/rouge/lexers/gts.rb +39 -0
  345. data/rouge-5.0.0/lib/rouge/lexers/hack.rb +47 -0
  346. data/rouge-5.0.0/lib/rouge/lexers/haml.rb +226 -0
  347. data/rouge-5.0.0/lib/rouge/lexers/handlebars.rb +91 -0
  348. data/rouge-5.0.0/lib/rouge/lexers/haskell.rb +207 -0
  349. data/rouge-5.0.0/lib/rouge/lexers/haxe.rb +265 -0
  350. data/rouge-5.0.0/lib/rouge/lexers/hcl.rb +166 -0
  351. data/rouge-5.0.0/lib/rouge/lexers/hlsl.rb +166 -0
  352. data/rouge-5.0.0/lib/rouge/lexers/hocon.rb +86 -0
  353. data/rouge-5.0.0/lib/rouge/lexers/hql.rb +135 -0
  354. data/rouge-5.0.0/lib/rouge/lexers/html.rb +141 -0
  355. data/rouge-5.0.0/lib/rouge/lexers/http.rb +87 -0
  356. data/rouge-5.0.0/lib/rouge/lexers/hylang.rb +93 -0
  357. data/rouge-5.0.0/lib/rouge/lexers/idlang.rb +312 -0
  358. data/rouge-5.0.0/lib/rouge/lexers/idris.rb +210 -0
  359. data/rouge-5.0.0/lib/rouge/lexers/iecst.rb +92 -0
  360. data/rouge-5.0.0/lib/rouge/lexers/igorpro/builtins.rb +1530 -0
  361. data/rouge-5.0.0/lib/rouge/lexers/igorpro.rb +193 -0
  362. data/rouge-5.0.0/lib/rouge/lexers/ini.rb +56 -0
  363. data/rouge-5.0.0/lib/rouge/lexers/io.rb +69 -0
  364. data/rouge-5.0.0/lib/rouge/lexers/irb.rb +73 -0
  365. data/rouge-5.0.0/lib/rouge/lexers/isabelle.rb +251 -0
  366. data/rouge-5.0.0/lib/rouge/lexers/isbl.rb +61 -0
  367. data/rouge-5.0.0/lib/rouge/lexers/j.rb +244 -0
  368. data/rouge-5.0.0/lib/rouge/lexers/janet.rb +218 -0
  369. data/rouge-5.0.0/lib/rouge/lexers/java.rb +92 -0
  370. data/rouge-5.0.0/lib/rouge/lexers/javascript.rb +315 -0
  371. data/rouge-5.0.0/lib/rouge/lexers/jinja.rb +169 -0
  372. data/rouge-5.0.0/lib/rouge/lexers/jsl.rb +66 -0
  373. data/rouge-5.0.0/lib/rouge/lexers/json.rb +72 -0
  374. data/rouge-5.0.0/lib/rouge/lexers/json5.rb +74 -0
  375. data/rouge-5.0.0/lib/rouge/lexers/json_doc.rb +26 -0
  376. data/rouge-5.0.0/lib/rouge/lexers/jsonnet.rb +153 -0
  377. data/rouge-5.0.0/lib/rouge/lexers/jsp.rb +119 -0
  378. data/rouge-5.0.0/lib/rouge/lexers/jsx.rb +91 -0
  379. data/rouge-5.0.0/lib/rouge/lexers/julia.rb +293 -0
  380. data/rouge-5.0.0/lib/rouge/lexers/kick_assembler.rb +100 -0
  381. data/rouge-5.0.0/lib/rouge/lexers/kotlin.rb +150 -0
  382. data/rouge-5.0.0/lib/rouge/lexers/lasso/keywords.rb +20 -0
  383. data/rouge-5.0.0/lib/rouge/lexers/lasso.rb +212 -0
  384. data/rouge-5.0.0/lib/rouge/lexers/lean.rb +164 -0
  385. data/rouge-5.0.0/lib/rouge/lexers/liquid.rb +284 -0
  386. data/rouge-5.0.0/lib/rouge/lexers/literate_coffeescript.rb +34 -0
  387. data/rouge-5.0.0/lib/rouge/lexers/literate_haskell.rb +37 -0
  388. data/rouge-5.0.0/lib/rouge/lexers/livescript.rb +310 -0
  389. data/rouge-5.0.0/lib/rouge/lexers/llvm/keywords.rb +16 -0
  390. data/rouge-5.0.0/lib/rouge/lexers/llvm.rb +59 -0
  391. data/rouge-5.0.0/lib/rouge/lexers/lua/keywords.rb +26 -0
  392. data/rouge-5.0.0/lib/rouge/lexers/lua.rb +186 -0
  393. data/rouge-5.0.0/lib/rouge/lexers/lustre.rb +79 -0
  394. data/rouge-5.0.0/lib/rouge/lexers/lutin.rb +34 -0
  395. data/rouge-5.0.0/lib/rouge/lexers/m68k.rb +143 -0
  396. data/rouge-5.0.0/lib/rouge/lexers/magik.rb +127 -0
  397. data/rouge-5.0.0/lib/rouge/lexers/make.rb +148 -0
  398. data/rouge-5.0.0/lib/rouge/lexers/markdown.rb +183 -0
  399. data/rouge-5.0.0/lib/rouge/lexers/mason.rb +110 -0
  400. data/rouge-5.0.0/lib/rouge/lexers/mathematica/keywords.rb +15 -0
  401. data/rouge-5.0.0/lib/rouge/lexers/mathematica.rb +95 -0
  402. data/rouge-5.0.0/lib/rouge/lexers/matlab/keywords.rb +15 -0
  403. data/rouge-5.0.0/lib/rouge/lexers/matlab.rb +81 -0
  404. data/rouge-5.0.0/lib/rouge/lexers/meson.rb +158 -0
  405. data/rouge-5.0.0/lib/rouge/lexers/minizinc.rb +87 -0
  406. data/rouge-5.0.0/lib/rouge/lexers/mojo.rb +39 -0
  407. data/rouge-5.0.0/lib/rouge/lexers/moonscript.rb +117 -0
  408. data/rouge-5.0.0/lib/rouge/lexers/mosel.rb +228 -0
  409. data/rouge-5.0.0/lib/rouge/lexers/msgtrans.rb +26 -0
  410. data/rouge-5.0.0/lib/rouge/lexers/mxml.rb +69 -0
  411. data/rouge-5.0.0/lib/rouge/lexers/nasm.rb +73 -0
  412. data/rouge-5.0.0/lib/rouge/lexers/nesasm.rb +78 -0
  413. data/rouge-5.0.0/lib/rouge/lexers/nginx.rb +73 -0
  414. data/rouge-5.0.0/lib/rouge/lexers/nial.rb +165 -0
  415. data/rouge-5.0.0/lib/rouge/lexers/nim.rb +154 -0
  416. data/rouge-5.0.0/lib/rouge/lexers/nix.rb +213 -0
  417. data/rouge-5.0.0/lib/rouge/lexers/objective_c/common.rb +182 -0
  418. data/rouge-5.0.0/lib/rouge/lexers/objective_c.rb +21 -0
  419. data/rouge-5.0.0/lib/rouge/lexers/objective_cpp.rb +32 -0
  420. data/rouge-5.0.0/lib/rouge/lexers/ocaml/common.rb +53 -0
  421. data/rouge-5.0.0/lib/rouge/lexers/ocaml.rb +65 -0
  422. data/rouge-5.0.0/lib/rouge/lexers/ocl.rb +84 -0
  423. data/rouge-5.0.0/lib/rouge/lexers/openedge.rb +632 -0
  424. data/rouge-5.0.0/lib/rouge/lexers/opentype_feature_file.rb +97 -0
  425. data/rouge-5.0.0/lib/rouge/lexers/p4.rb +81 -0
  426. data/rouge-5.0.0/lib/rouge/lexers/pascal.rb +68 -0
  427. data/rouge-5.0.0/lib/rouge/lexers/pdf.rb +109 -0
  428. data/rouge-5.0.0/lib/rouge/lexers/perl.rb +251 -0
  429. data/rouge-5.0.0/lib/rouge/lexers/php/keywords.rb +150 -0
  430. data/rouge-5.0.0/lib/rouge/lexers/php.rb +470 -0
  431. data/rouge-5.0.0/lib/rouge/lexers/plain_text.rb +27 -0
  432. data/rouge-5.0.0/lib/rouge/lexers/plist.rb +47 -0
  433. data/rouge-5.0.0/lib/rouge/lexers/plsql.rb +577 -0
  434. data/rouge-5.0.0/lib/rouge/lexers/pony.rb +94 -0
  435. data/rouge-5.0.0/lib/rouge/lexers/postscript.rb +93 -0
  436. data/rouge-5.0.0/lib/rouge/lexers/powershell.rb +248 -0
  437. data/rouge-5.0.0/lib/rouge/lexers/praat.rb +438 -0
  438. data/rouge-5.0.0/lib/rouge/lexers/prolog.rb +67 -0
  439. data/rouge-5.0.0/lib/rouge/lexers/prometheus.rb +122 -0
  440. data/rouge-5.0.0/lib/rouge/lexers/properties.rb +52 -0
  441. data/rouge-5.0.0/lib/rouge/lexers/protobuf.rb +71 -0
  442. data/rouge-5.0.0/lib/rouge/lexers/puppet.rb +129 -0
  443. data/rouge-5.0.0/lib/rouge/lexers/python.rb +340 -0
  444. data/rouge-5.0.0/lib/rouge/lexers/q.rb +125 -0
  445. data/rouge-5.0.0/lib/rouge/lexers/qml.rb +74 -0
  446. data/rouge-5.0.0/lib/rouge/lexers/r.rb +89 -0
  447. data/rouge-5.0.0/lib/rouge/lexers/racket.rb +568 -0
  448. data/rouge-5.0.0/lib/rouge/lexers/reasonml.rb +66 -0
  449. data/rouge-5.0.0/lib/rouge/lexers/rego.rb +60 -0
  450. data/rouge-5.0.0/lib/rouge/lexers/rescript.rb +119 -0
  451. data/rouge-5.0.0/lib/rouge/lexers/rml.rb +142 -0
  452. data/rouge-5.0.0/lib/rouge/lexers/robot_framework.rb +249 -0
  453. data/rouge-5.0.0/lib/rouge/lexers/rocq.rb +264 -0
  454. data/rouge-5.0.0/lib/rouge/lexers/ruby.rb +481 -0
  455. data/rouge-5.0.0/lib/rouge/lexers/rust.rb +261 -0
  456. data/rouge-5.0.0/lib/rouge/lexers/sas.rb +562 -0
  457. data/rouge-5.0.0/lib/rouge/lexers/sass/common.rb +182 -0
  458. data/rouge-5.0.0/lib/rouge/lexers/sass.rb +75 -0
  459. data/rouge-5.0.0/lib/rouge/lexers/scala.rb +172 -0
  460. data/rouge-5.0.0/lib/rouge/lexers/scheme.rb +113 -0
  461. data/rouge-5.0.0/lib/rouge/lexers/scss.rb +35 -0
  462. data/rouge-5.0.0/lib/rouge/lexers/sed.rb +173 -0
  463. data/rouge-5.0.0/lib/rouge/lexers/shell.rb +205 -0
  464. data/rouge-5.0.0/lib/rouge/lexers/sieve.rb +97 -0
  465. data/rouge-5.0.0/lib/rouge/lexers/slice.rb +32 -0
  466. data/rouge-5.0.0/lib/rouge/lexers/slim.rb +229 -0
  467. data/rouge-5.0.0/lib/rouge/lexers/smalltalk.rb +117 -0
  468. data/rouge-5.0.0/lib/rouge/lexers/smarty.rb +81 -0
  469. data/rouge-5.0.0/lib/rouge/lexers/sml.rb +345 -0
  470. data/rouge-5.0.0/lib/rouge/lexers/sparql.rb +131 -0
  471. data/rouge-5.0.0/lib/rouge/lexers/sqf/keywords.rb +14 -0
  472. data/rouge-5.0.0/lib/rouge/lexers/sqf.rb +108 -0
  473. data/rouge-5.0.0/lib/rouge/lexers/sql.rb +161 -0
  474. data/rouge-5.0.0/lib/rouge/lexers/ssh.rb +33 -0
  475. data/rouge-5.0.0/lib/rouge/lexers/stan.rb +445 -0
  476. data/rouge-5.0.0/lib/rouge/lexers/stata.rb +165 -0
  477. data/rouge-5.0.0/lib/rouge/lexers/supercollider.rb +115 -0
  478. data/rouge-5.0.0/lib/rouge/lexers/svelte.rb +91 -0
  479. data/rouge-5.0.0/lib/rouge/lexers/swift.rb +202 -0
  480. data/rouge-5.0.0/lib/rouge/lexers/systemd.rb +34 -0
  481. data/rouge-5.0.0/lib/rouge/lexers/syzlang.rb +316 -0
  482. data/rouge-5.0.0/lib/rouge/lexers/syzprog.rb +122 -0
  483. data/rouge-5.0.0/lib/rouge/lexers/tap.rb +88 -0
  484. data/rouge-5.0.0/lib/rouge/lexers/tcl.rb +198 -0
  485. data/rouge-5.0.0/lib/rouge/lexers/terraform.rb +121 -0
  486. data/rouge-5.0.0/lib/rouge/lexers/tex.rb +70 -0
  487. data/rouge-5.0.0/lib/rouge/lexers/thrift.rb +120 -0
  488. data/rouge-5.0.0/lib/rouge/lexers/toml.rb +124 -0
  489. data/rouge-5.0.0/lib/rouge/lexers/tsx.rb +33 -0
  490. data/rouge-5.0.0/lib/rouge/lexers/ttcn3.rb +117 -0
  491. data/rouge-5.0.0/lib/rouge/lexers/tulip.rb +107 -0
  492. data/rouge-5.0.0/lib/rouge/lexers/turtle.rb +61 -0
  493. data/rouge-5.0.0/lib/rouge/lexers/twig.rb +40 -0
  494. data/rouge-5.0.0/lib/rouge/lexers/typescript/common.rb +60 -0
  495. data/rouge-5.0.0/lib/rouge/lexers/typescript.rb +23 -0
  496. data/rouge-5.0.0/lib/rouge/lexers/vala.rb +78 -0
  497. data/rouge-5.0.0/lib/rouge/lexers/varnish.rb +168 -0
  498. data/rouge-5.0.0/lib/rouge/lexers/vb.rb +165 -0
  499. data/rouge-5.0.0/lib/rouge/lexers/velocity.rb +71 -0
  500. data/rouge-5.0.0/lib/rouge/lexers/verilog.rb +163 -0
  501. data/rouge-5.0.0/lib/rouge/lexers/veryl.rb +109 -0
  502. data/rouge-5.0.0/lib/rouge/lexers/vhdl.rb +98 -0
  503. data/rouge-5.0.0/lib/rouge/lexers/viml/keywords.rb +19 -0
  504. data/rouge-5.0.0/lib/rouge/lexers/viml.rb +68 -0
  505. data/rouge-5.0.0/lib/rouge/lexers/vue.rb +127 -0
  506. data/rouge-5.0.0/lib/rouge/lexers/wollok.rb +107 -0
  507. data/rouge-5.0.0/lib/rouge/lexers/xml.rb +56 -0
  508. data/rouge-5.0.0/lib/rouge/lexers/xojo.rb +61 -0
  509. data/rouge-5.0.0/lib/rouge/lexers/xpath.rb +332 -0
  510. data/rouge-5.0.0/lib/rouge/lexers/xquery.rb +146 -0
  511. data/rouge-5.0.0/lib/rouge/lexers/yaml.rb +388 -0
  512. data/rouge-5.0.0/lib/rouge/lexers/yang.rb +115 -0
  513. data/rouge-5.0.0/lib/rouge/lexers/zig.rb +139 -0
  514. data/rouge-5.0.0/lib/rouge/plugins/redcarpet.rb +38 -0
  515. data/rouge-5.0.0/lib/rouge/regex_lexer.rb +522 -0
  516. data/rouge-5.0.0/lib/rouge/template_lexer.rb +21 -0
  517. data/rouge-5.0.0/lib/rouge/tex_theme_renderer.rb +132 -0
  518. data/rouge-5.0.0/lib/rouge/text_analyzer.rb +50 -0
  519. data/rouge-5.0.0/lib/rouge/theme.rb +218 -0
  520. data/rouge-5.0.0/lib/rouge/themes/base16.rb +137 -0
  521. data/rouge-5.0.0/lib/rouge/themes/bw.rb +43 -0
  522. data/rouge-5.0.0/lib/rouge/themes/colorful.rb +70 -0
  523. data/rouge-5.0.0/lib/rouge/themes/github.rb +149 -0
  524. data/rouge-5.0.0/lib/rouge/themes/gruvbox.rb +176 -0
  525. data/rouge-5.0.0/lib/rouge/themes/igor_pro.rb +25 -0
  526. data/rouge-5.0.0/lib/rouge/themes/magritte.rb +80 -0
  527. data/rouge-5.0.0/lib/rouge/themes/molokai.rb +84 -0
  528. data/rouge-5.0.0/lib/rouge/themes/monokai.rb +95 -0
  529. data/rouge-5.0.0/lib/rouge/themes/monokai_sublime.rb +94 -0
  530. data/rouge-5.0.0/lib/rouge/themes/pastie.rb +72 -0
  531. data/rouge-5.0.0/lib/rouge/themes/thankful_eyes.rb +77 -0
  532. data/rouge-5.0.0/lib/rouge/themes/tulip.rb +72 -0
  533. data/rouge-5.0.0/lib/rouge/token.rb +192 -0
  534. data/rouge-5.0.0/lib/rouge/util.rb +102 -0
  535. data/rouge-5.0.0/lib/rouge/version.rb +8 -0
  536. data/rouge-5.0.0/lib/rouge.rb +117 -0
  537. data/rouge-5.0.0/lib/rubocop/cop/rouge/no_building_alternation_pattern_in_regexp.rb +71 -0
  538. data/rouge-5.0.0/lib/rubocop/cop/rouge/no_huge_collections.rb +37 -0
  539. data/rouge-5.0.0/rouge.gemspec +29 -0
  540. metadata +578 -0
@@ -0,0 +1,163 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Lexers
6
+ class Verilog < RegexLexer
7
+ title "Verilog and System Verilog"
8
+ desc "The System Verilog hardware description language"
9
+ tag 'verilog'
10
+ filenames '*.v', '*.sv', '*.svh'
11
+ mimetypes 'text/x-verilog', 'text/x-systemverilog'
12
+
13
+ id = /[a-zA-Z_][a-zA-Z0-9_]*/
14
+
15
+ def self.keywords
16
+ @keywords ||= Set.new %w(
17
+ alias always always_comb always_ff always_latch assert assert_strobe
18
+ assign assume automatic attribute before begin bind bins binsof break
19
+ case casex casez clocking config constraint context continue cover
20
+ covergroup coverpoint cross deassign defparam default design dist do
21
+ else end endattribute endcase endclass endclocking endconfig
22
+ endfunction endgenerate endgroup endinterface endmodule endpackage
23
+ endprimitive endprogram endproperty endspecify endsequence endtable
24
+ endtask expect export extends extern final first_match for force
25
+ foreach fork forkjoin forever function generate genvar if iff ifnone
26
+ ignore_bins illegal_bins import incdir include initial inside instance
27
+ interface intersect join join_any join_none liblist library local
28
+ localparam matches module modport new noshowcancelled null package
29
+ parameter primitive priority program property protected
30
+ pulsestyle_onevent pulsestyle_ondetect pure rand randc randcase
31
+ randsequence release return sequence showcancelled solve specify super
32
+ table task this throughout timeprecision timeunit type typedef unique
33
+ use wait wait_order while wildcard with within
34
+ )
35
+ end
36
+
37
+ def self.keywords_type
38
+ @keywords_type ||= Set.new %w(
39
+ and bit buf bufif0 bufif1 byte cell chandle class cmos const disable
40
+ edge enum event highz0 highz1 initial inout input int integer join
41
+ logic longint macromodule medium nand negedge nmos nor not
42
+ notif0 notif1 or output packed parameter pmos posedge pull0 pull1
43
+ pulldown pullup rcmos real realtime ref reg repeat rnmos rpmos rtran
44
+ rtranif0 rtranif1 scalared shortint shortreal signed specparam
45
+ static string strength strong0 strong1 struct supply0 supply1 tagged
46
+ time tran tranif0 tranif1 tri tri0 tri1 triand trior trireg union
47
+ unsigned uwire var vectored virtual void wait wand weak[01] wire wor
48
+ xnor xor
49
+ )
50
+ end
51
+
52
+ def self.keywords_system_task
53
+ @keyword_system_task ||= Set.new %w(
54
+ acos acosh asin asinh assertfailoff assertfailon assertkill
55
+ assertnonvacuouson assertoff asserton assertpassoff assertpasson
56
+ assertvacuousoff atan atan2 atanh bits bitstoreal bitstoshortreal
57
+ cast ceil changed changed_gclk changing_gclk clog2 cos cosh countones
58
+ coverage_control coverage_get coverage_get_max coverage_merge
59
+ coverage_save dimensions display displayb displayh displayo
60
+ dist_chi_square dist_erlang dist_exponential dist_normal dist_poisson
61
+ dist_t dist_uniform dumpall dumpfile dumpflush dumplimit dumpoff
62
+ dumpon dumpports dumpportsall dumpportsflush dumpportslimit
63
+ dumpportsoff dumpportson dumpvars error exit exp falling_gclk fclose
64
+ fdisplay fdisplayb fdisplayh fdisplayo fell fell_gclk feof ferror
65
+ fflush fgetc fgets finish floor fmonitor fmonitorb fmonitorh fmonitoro
66
+ fopen fread fscanf fseek fstrobe fstrobeb fstrobeh fstrobeo ftell
67
+ future_gclk fwrite fwriteb fwriteh fwriteo get_coverage high hypot
68
+ increment info isunbounded isunknown itor left ln load_coverage_db
69
+ log10 low monitor monitorb monitorh monitoro monitoroff monitoron
70
+ onehot onehot0 past past_gclk pow printtimescale q_add q_exam q_full
71
+ q_initialize q_remove random readmemb readmemh realtime realtobits
72
+ rewind right rising_gclk rose rose_gclk rtoi sampled
73
+ set_coverage_db_name sformat sformatf shortrealtobits signed sin sinh
74
+ size sqrt sscanf stable stable_gclk steady_gclk stime stop strobe
75
+ strobeb strobeh strobeo swrite swriteb swriteh swriteo system tan tanh
76
+ time timeformat typename ungetc unpacked_dimensions unsigned warning
77
+ write writeb writeh writememb writememh writeo
78
+ )
79
+ end
80
+
81
+ state :expr_bol do
82
+ mixin :inline_whitespace
83
+ rule %r/`define/, Comment::Preproc, :macro
84
+
85
+ rule(//) { pop! }
86
+ end
87
+
88
+ # :expr_bol is the same as :bol but without labels, since
89
+ # labels can only appear at the beginning of a statement.
90
+ state :bol do
91
+ rule %r/#{id}:(?!:)/, Name::Label
92
+ mixin :expr_bol
93
+ end
94
+
95
+ state :inline_whitespace do
96
+ rule %r/[ \t\r]+/, Text
97
+ rule %r/\\\n/, Text # line continuation
98
+ rule %r(/(\\\n)?[*].*?[*](\\\n)?/)m, Comment::Multiline
99
+ end
100
+
101
+ state :whitespace do
102
+ rule %r/\n+/m, Text, :bol
103
+ rule %r(//(\\.|.)*?$), Comment::Single, :bol
104
+ mixin :inline_whitespace
105
+ end
106
+
107
+ state :expr_whitespace do
108
+ rule %r/\n+/m, Text, :expr_bol
109
+ mixin :whitespace
110
+ end
111
+
112
+ state :string do
113
+ rule %r/"/, Str, :pop!
114
+ rule %r/\\([\\abfnrtv"']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})/, Str::Escape
115
+ rule %r/[^\\"\n]+/, Str
116
+ rule %r/\\\n/, Str
117
+ rule %r/\\/, Str # stray backslash
118
+ end
119
+
120
+ state :statement do
121
+ mixin :whitespace
122
+ rule %r/L?"/, Str, :string
123
+ rule %r/([0-9_]+\.[0-9_]*|[0-9_]*\.[0-9_]+)(e[+-]?[0-9_]+)?/i, Num::Float
124
+ rule %r/[0-9_]+e[+-]?[0-9_]+/i, Num::Float
125
+ rule %r/[0-9]*'h[0-9a-fA-F_?]+/, Num::Hex
126
+ rule %r/[0-9]*'b?[01xz_?]+/, Num::Bin
127
+ rule %r/[0-9]*'d[0-9_?]+/, Num::Integer
128
+ rule %r/[0-9_]+[lu]*/i, Num::Integer
129
+ rule %r([-~!%^&*+=\|?:<>/@{}]), Operator
130
+ rule %r/[()\[\],.$\#;]/, Punctuation
131
+ rule %r/`(\w+)/, Comment::Preproc
132
+
133
+ rule id do |m|
134
+ name = m[0]
135
+
136
+ if self.class.keywords.include? name
137
+ token Keyword
138
+ elsif self.class.keywords_type.include? name
139
+ token Keyword::Type
140
+ elsif self.class.keywords_system_task.include? name
141
+ token Name::Builtin
142
+ else
143
+ token Name
144
+ end
145
+ end
146
+ end
147
+
148
+ state :root do
149
+ mixin :expr_whitespace
150
+ rule(//) { push :statement }
151
+ end
152
+
153
+ state :macro do
154
+ rule %r/\n/, Comment::Preproc, :pop!
155
+ mixin :inline_whitespace
156
+ rule %r/;/, Punctuation
157
+ rule %r/\=/, Operator
158
+ rule %r/(\w+)/, Text
159
+ end
160
+
161
+ end
162
+ end
163
+ end
@@ -0,0 +1,109 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Lexers
6
+ class Veryl < RegexLexer
7
+ title "Veryl"
8
+ desc "The Veryl hardware description language (https://veryl-lang.org)"
9
+ tag 'veryl'
10
+ filenames '*.veryl'
11
+ mimetypes 'text/x-veryl'
12
+
13
+ # Characters
14
+
15
+ WHITE_SPACE = /\s+/
16
+ NEWLINE = /\n/
17
+
18
+ # Comments
19
+
20
+ LINE_COMMENT = /\/\/(?:(?!#{NEWLINE}).)*/
21
+ GENERAL_COMMENT = /\/\*(?:(?!\*\/).)*\*\//m
22
+ COMMENT = /#{LINE_COMMENT}|#{GENERAL_COMMENT}/
23
+
24
+ # Numeric literals
25
+
26
+ EXPONENT = /[0-9]+(?:_[0-9]+)*\.[0-9]+(?:_[0-9]+)*[eE][+-]?[0-9]+(?:_[0-9]+)*/
27
+ FIXED_POINT = /[0-9]+(?:_[0-9]+)*\.[0-9]+(?:_[0-9]+)*/
28
+ BASED = /(?:[0-9]+(?:_[0-9]+)*)?'s?[bodh][0-9a-fA-FxzXZ]+(?:_[0-9a-fA-FxzXZ]+)*/
29
+ ALL_BIT = /(?:[0-9]+(?:_[0-9]+)*)?'[01xzXZ]/
30
+ BASE_LESS = /[0-9]+(?:_[0-9]+)*/
31
+
32
+ # Operators and delimiters
33
+
34
+ OPERATOR = / -: | -> | \+: | \+= | -=
35
+ | \*= | \/= | %= | &= | \|=
36
+ | \^= | <<= | >>= |<<<= |>>>=
37
+ | <> | \*\* | \/ | \| | %
38
+ | \+ | - | <<< | >>> | <<
39
+ | >> | <= | >= | <: | >:
40
+ | === | ==\? | \!== | \!=\? | ==
41
+ | \!= | && | \|\| | & | \^~
42
+ | \^ | ~\^ | \| | ~& | ~\|
43
+ | \! | ~
44
+ /x
45
+
46
+ SEPARATOR = / ::< | :: | : | , | \.\.=
47
+ | \.\. | \. | = | \# | <
48
+ | \? | ' | '\{ | \{ | \[
49
+ | \( | > | \} | \] | \)
50
+ | ; | \*
51
+ /x
52
+
53
+ # Identifiers
54
+
55
+ DOLLAR_IDENTIFIER = /\$[a-zA-Z_][0-9a-zA-Z_$]*/
56
+ IDENTIFIER = /(?:r#)?[a-zA-Z_][0-9a-zA-Z_$]*/
57
+
58
+ # Keywords
59
+
60
+ def self.keywords
61
+ @keywords ||= Set.new %w(
62
+ embed enum function include interface modport module package proto pub struct union unsafe
63
+ alias always_comb always_ff assign as bind block connect const final import initial inst let param return break type var
64
+ converse inout input output same
65
+ case default else if_reset if inside outside switch
66
+ for in repeat rev step
67
+ )
68
+ end
69
+
70
+ def self.keywords_type
71
+ @keywords_type ||= Set.new %w(
72
+ bit bbool lbool clock clock_posedge clock_negedge f32 f64 i8 i16 i32 i64 logic reset reset_async_high reset_async_low reset_sync_high reset_sync_low signed string tri u8 u16 u32 u64
73
+ )
74
+ end
75
+
76
+ state :root do
77
+ rule(COMMENT , Comment )
78
+ rule(EXPONENT , Num::Float )
79
+ rule(FIXED_POINT , Num::Float )
80
+ rule(BASED , Num::Integer )
81
+ rule(ALL_BIT , Num::Integer )
82
+ rule(BASE_LESS , Num::Integer )
83
+ rule(OPERATOR , Operator )
84
+ rule(SEPARATOR , Punctuation )
85
+ rule(DOLLAR_IDENTIFIER, Name )
86
+ rule(WHITE_SPACE , Text )
87
+ rule(/"/ , Str::Double, :string)
88
+
89
+ rule IDENTIFIER do |m|
90
+ name = m[0]
91
+
92
+ if self.class.keywords.include? name
93
+ token Keyword
94
+ elsif self.class.keywords_type.include? name
95
+ token Keyword::Type
96
+ else
97
+ token Name
98
+ end
99
+ end
100
+ end
101
+
102
+ state :string do
103
+ rule(/[^\\"]+/, Str::Double )
104
+ rule(/\\./ , Str::Escape )
105
+ rule(/"/ , Str::Double, :pop!)
106
+ end
107
+ end
108
+ end
109
+ end
@@ -0,0 +1,98 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Lexers
6
+ class VHDL < RegexLexer
7
+ title "VHDL 2008"
8
+ desc "Very High Speed Integrated Circuit Hardware Description Language"
9
+ tag 'vhdl'
10
+
11
+ filenames '*.vhd', '*.vhdl', '*.vho'
12
+
13
+ mimetypes 'text/x-vhdl'
14
+ def self.keywords
15
+ @keywords ||= Set.new %w(
16
+ access after alias all architecture array assert assume assume_guarantee attribute
17
+ begin block body buffer bus case component configuration constant context cover
18
+ default disconnect downto else elsif end entity exit fairness file for force function
19
+ generate generic group guarded if impure in inertial inout is label library linkage
20
+ literal loop map new next null of on open others out package parameter port postponed
21
+ procedure process property protected pure range record register reject release report
22
+ return select sequence severity shared signal strong subtype then to transport type
23
+ unaffected units until use variable vmode vprop vunit wait when while with
24
+ )
25
+ end
26
+
27
+ def self.keywords_type
28
+ @keywords_type ||= Set.new %w(
29
+ bit bit_vector boolean boolean_vector character integer integer_vector natural positive
30
+ real real_vector severity_level signed std_logic std_logic_vector std_ulogic
31
+ std_ulogic_vector string unsigned time time_vector
32
+ )
33
+ end
34
+
35
+ def self.operator_words
36
+ @operator_words ||= Set.new %w(
37
+ abs and mod nand nor not or rem rol ror sla sll sra srl xnor xor
38
+ )
39
+ end
40
+
41
+ id = /[a-zA-Z][a-zA-Z0-9_]*/
42
+
43
+ state :whitespace do
44
+ rule %r/\s+/, Text
45
+ rule %r/\n/, Text
46
+ # Find Comments (VHDL doesn't support multiline comments)
47
+ rule %r/--.*$/, Comment::Single
48
+ end
49
+
50
+ state :statements do
51
+
52
+ # Find Numbers
53
+ rule %r/-?\d+/i, Num::Integer
54
+ rule %r/-?\d+[.]\d+/i, Num::Float
55
+
56
+ # Find Strings
57
+ rule %r/[box]?"[^"]*"/i, Str::Single
58
+ rule %r/'[^']?'/i, Str::Char
59
+
60
+ # Find Attributes
61
+ rule %r/'#{id}/i, Name::Attribute
62
+
63
+ # Punctuations
64
+ rule %r/[(),:;]/, Punctuation
65
+
66
+ # Boolean and NULL
67
+ rule %r/(?:true|false|null)\b/i, Name::Builtin
68
+
69
+ rule id do |m|
70
+ match = m[0].downcase #convert to lower case
71
+ if self.class.keywords.include? match
72
+ token Keyword
73
+ elsif self.class.keywords_type.include? match
74
+ token Keyword::Type
75
+ elsif self.class.operator_words.include? match
76
+ token Operator::Word
77
+ else
78
+ token Name
79
+ end
80
+ end
81
+
82
+ rule(
83
+ %r(=>|[*][*]|:=|\/=|>=|<=|<>|\?\?|\?=|\?\/=|\?>|\?<|\?>=|\?<=|<<|>>|[#&'*+-.\/:<=>\?@^]),
84
+ Operator
85
+ )
86
+
87
+ end
88
+
89
+ state :root do
90
+
91
+ mixin :whitespace
92
+ mixin :statements
93
+
94
+ end
95
+
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,19 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ # DO NOT EDIT
5
+ # This file is automatically generated by `rake builtins:viml`.
6
+ # See tasks/builtins/viml.rake for more info.
7
+
8
+ module Rouge
9
+ module Lexers
10
+ class VimL
11
+ KEYWORDS = {}.tap do |kw|
12
+ kw[:command] = Set.new ["a", "al", "all", "ar", "arga", "argadd", "argd", "argded", "argdedupe", "argdelete", "arge", "argedit", "argg", "argglobal", "argl", "arglocal", "args", "argu", "argument", "as", "ascii", "b", "bN", "bNext", "ba", "bad", "badd", "ball", "balt", "bd", "bdelete", "bf", "bfirst", "bl", "blast", "bm", "bmodified", "bn", "bnext", "bp", "bprevious", "br", "brea", "break", "brewind", "buffer", "buffers", "bun", "bunload", "bw", "bwipeout", "cN", "cNext", "cNf", "cNfile", "cabo", "cabove", "cad", "caddbuffer", "cadde", "caddexpr", "caddf", "caddfile", "caf", "cafter", "cb", "cbe", "cbefore", "cbel", "cbelow", "cbo", "cbottom", "cbuffer", "cc", "ccl", "cclose", "ce", "center", "cex", "cexpr", "cf", "cfile", "cfir", "cfirst", "cg", "cgetb", "cgetbuffer", "cgete", "cgetexpr", "cgetfile", "changes", "che", "checkpath", "checkt", "checktime", "chi", "chistory", "cl", "cla", "clast", "cle", "clearjumps", "clip", "clipreset", "clist", "clo", "close", "cn", "cnew", "cnewer", "cnext", "cnf", "cnfile", "col", "colder", "colo", "colorscheme", "comc", "comclear", "comp", "compiler", "con", "continue", "cope", "copen", "cp", "cpf", "cpfile", "cprevious", "cq", "cquit", "cr", "crewind", "cs", "cscope", "cst", "cstag", "cw", "cwindow", "defc", "defcompile", "delel", "delep", "deletel", "deletep", "deletl", "deletp", "dell", "delm", "delmarks", "delp", "dep", "di", "dif", "diffg", "diffget", "diffo", "diffoff", "diffp", "diffpatch", "diffpu", "diffput", "diffs", "diffsplit", "difft", "diffthis", "diffupdate", "dig", "digraphs", "disa", "disassemble", "display", "dj", "djump", "dl", "dli", "dlist", "dp", "dr", "drop", "ds", "dsearch", "dsp", "dsplit", "e", "ea", "earlier", "edit", "em", "emenu", "endfo", "endfor", "endt", "endtry", "endw", "endwhile", "ene", "enew", "ex", "exi", "exit", "exu", "exusage", "f", "file", "files", "fin", "fina", "finally", "find", "fini", "finish", "fir", "first", "fix", "fixdel", "fo", "fold", "foldc", "foldclose", "foldo", "foldopen", "g", "global", "go", "goto", "gu", "gui", "gv", "gvim", "ha", "hardcopy", "helpc", "helpclose", "helpf", "helpfind", "helpt", "helptags", "i", "ij", "ijump", "il", "ilist", "int", "intro", "ip", "iput", "is", "isearch", "isp", "isplit", "ju", "jumps", "l", "lN", "lNext", "lNf", "lNfile", "la", "lab", "labove", "lad", "laddb", "laddbuffer", "laddexpr", "laddf", "laddfile", "laf", "lafter", "last", "lat", "later", "lb", "lbe", "lbefore", "lbel", "lbelow", "lbo", "lbottom", "lbuffer", "lcl", "lclose", "lcs", "lcscope", "le", "left", "lex", "lexpr", "lf", "lfile", "lfir", "lfirst", "lg", "lgetb", "lgetbuffer", "lgete", "lgetexpr", "lgetfile", "lhi", "lhistory", "list", "ll", "lla", "llast", "lli", "llist", "lmak", "lmake", "lne", "lnew", "lnewer", "lnext", "lnf", "lnfile", "lo", "loadview", "lockv", "lockvar", "lol", "lolder", "lop", "lopen", "lp", "lpf", "lpfile", "lprevious", "lr", "lrewind", "ls", "lt", "ltag", "lw", "lwindow", "m", "marks", "mes", "messages", "mk", "mkexrc", "mks", "mksession", "mksp", "mkspell", "mkv", "mkvie", "mkview", "mkvimrc", "mod", "mode", "move", "n", "nb", "nbc", "nbclose", "nbkey", "nbs", "nbstart", "next", "nextgroup", "noh", "nohlsearch", "nu", "number", "o", "ol", "oldfiles", "on", "only", "open", "opt", "options", "ow", "ownsyntax", "p", "pa", "packadd", "packl", "packloadall", "pb", "pbuffer", "pc", "pclose", "ped", "pedit", "po", "pop", "pp", "ppop", "pre", "preserve", "prev", "previous", "print", "ps", "psearch", "pt", "ptN", "ptNext", "ptag", "ptf", "ptfirst", "ptj", "ptjump", "ptl", "ptlast", "ptn", "ptnext", "ptp", "ptprevious", "ptr", "ptrewind", "pts", "ptselect", "pu", "put", "pw", "pwd", "q", "qa", "qall", "quit", "quita", "quitall", "r", "read", "rec", "recover", "red", "redo", "redr", "redraw", "redraws", "redrawstatus", "redrawt", "redrawtabline", "redrawtabp", "redrawtabpanel", "reg", "registers", "res", "resize", "ret", "retab", "rew", "rewind", "ri", "right", "ru", "rund", "rundo", "runtime", "rv", "rviminfo", "sN", "sNext", "sa", "sal", "sall", "sargument", "sav", "saveas", "sb", "sbN", "sbNext", "sba", "sball", "sbf", "sbfirst", "sbl", "sblast", "sbm", "sbmodified", "sbn", "sbnext", "sbp", "sbprevious", "sbr", "sbrewind", "sbuffer", "scr", "scripte", "scriptencoding", "scriptnames", "scriptv", "scriptversion", "scs", "scscope", "setf", "setfiletype", "sf", "sfind", "sfir", "sfirst", "sh", "shell", "sig", "sign", "sim", "simalt", "sla", "slast", "smi", "smile", "sn", "snext", "so", "source", "spe", "spelld", "spelldump", "spellgood", "spelli", "spellinfo", "spellr", "spellra", "spellrare", "spellrepall", "spellu", "spellundo", "spellw", "spellwrong", "spr", "sprevious", "sre", "srewind", "st", "sta", "stag", "star", "startg", "startgreplace", "startinsert", "startr", "startreplace", "stj", "stjump", "stop", "stopi", "stopinsert", "sts", "stselect", "sun", "sunhide", "sus", "suspend", "sv", "sview", "sync", "syncbind", "t", "tN", "tNext", "ta", "tabN", "tabNext", "tabc", "tabclose", "tabe", "tabedit", "tabf", "tabfind", "tabfir", "tabfirst", "tabl", "tablast", "tabm", "tabmove", "tabn", "tabnew", "tabnext", "tabo", "tabonly", "tabp", "tabprevious", "tabr", "tabrewind", "tabs", "tag", "tags", "te", "tearoff", "tf", "tfirst", "tj", "tjump", "tl", "tlast", "tn", "tnext", "tp", "tprevious", "tr", "trewind", "try", "ts", "tselect", "u", "undo", "undoj", "undojoin", "undol", "undolist", "unh", "unhide", "up", "update", "v", "ve", "version", "vglobal", "vi", "vie", "view", "vimBang", "visual", "viu", "viusage", "vne", "vnew", "vs", "vsplit", "w", "wN", "wNext", "wa", "wall", "wi", "winp", "winpos", "winsize", "wl", "wlrestore", "wn", "wnext", "wp", "wprevious", "wq", "wqa", "wqall", "write", "wu", "wundo", "wv", "wviminfo", "x", "xa", "xall", "xit", "xr", "xrestore", "y", "yank", "z"]
13
+ kw[:option] = Set.new ["ac", "acd", "acl", "act", "ai", "al", "aleph", "allowrevins", "ambiwidth", "ambw", "ar", "arab", "arabic", "arabicshape", "ari", "arshape", "asd", "autochdir", "autocomplete", "autocompletedelay", "autocompletetimeout", "autoindent", "autoread", "autoshelldir", "autowrite", "autowriteall", "aw", "awa", "background", "backspace", "backup", "backupcopy", "backupdir", "backupext", "backupskip", "balloondelay", "ballooneval", "balloonevalterm", "balloonexpr", "bdir", "bdlay", "belloff", "beval", "bevalterm", "bex", "bexpr", "bg", "bh", "bin", "binary", "bk", "bkc", "bl", "bo", "bomb", "breakat", "breakindent", "breakindentopt", "bri", "briopt", "brk", "browsedir", "bs", "bsdir", "bsk", "bt", "bufhidden", "buflisted", "buftype", "casemap", "cb", "cc", "ccv", "cd", "cdh", "cdhome", "cdpath", "cedit", "cf", "cfu", "ch", "charconvert", "chi", "chistory", "ci", "cia", "cin", "cindent", "cink", "cinkeys", "cino", "cinoptions", "cinscopedecls", "cinsd", "cinw", "cinwords", "clipboard", "clipmethod", "cm", "cmdheight", "cmdwinheight", "cmp", "cms", "co", "cocu", "cole", "colorcolumn", "columns", "com", "comments", "commentstring", "compatible", "complete", "completefunc", "completeitemalign", "completeopt", "completepopup", "completeslash", "completetimeout", "concealcursor", "conceallevel", "confirm", "copyindent", "cot", "cp", "cpm", "cpo", "cpoptions", "cpp", "cpt", "crb", "cryptmethod", "cscopepathcomp", "cscopeprg", "cscopequickfix", "cscoperelative", "cscopetag", "cscopetagorder", "cscopeverbose", "csl", "cspc", "csprg", "csqf", "csre", "cst", "csto", "csverb", "cto", "cuc", "cul", "culopt", "cursorbind", "cursorcolumn", "cursorline", "cursorlineopt", "cwh", "debug", "deco", "def", "define", "delcombine", "dex", "dg", "dia", "dict", "dictionary", "diff", "diffanchors", "diffexpr", "diffopt", "digraph", "dip", "dir", "directory", "display", "dy", "ea", "ead", "eadirection", "eb", "ed", "edcompatible", "ef", "efm", "ei", "eiw", "ek", "emo", "emoji", "enc", "encoding", "endoffile", "endofline", "eof", "eol", "ep", "equalalways", "equalprg", "errorbells", "errorfile", "errorformat", "esckeys", "et", "eventignore", "eventignorewin", "ex", "expandtab", "exrc", "fcl", "fcs", "fdc", "fde", "fdi", "fdl", "fdls", "fdm", "fdn", "fdo", "fdt", "fen", "fenc", "fencs", "fex", "ff", "ffs", "ffu", "fic", "fileencoding", "fileencodings", "fileformat", "fileformats", "fileignorecase", "filetype", "fillchars", "findfunc", "fixendofline", "fixeol", "flp", "fml", "fmr", "fo", "foldclose", "foldcolumn", "foldenable", "foldexpr", "foldignore", "foldlevel", "foldlevelstart", "foldmarker", "foldmethod", "foldminlines", "foldnestmax", "foldopen", "foldtext", "formatexpr", "formatlistpat", "formatoptions", "formatprg", "fp", "fs", "fsync", "ft", "gcr", "gd", "gdefault", "gfm", "gfn", "gfs", "gfw", "ghr", "gli", "go", "gp", "grepformat", "grepprg", "gtl", "gtt", "guicursor", "guifont", "guifontset", "guifontwide", "guiheadroom", "guiligatures", "guioptions", "guipty", "guitablabel", "guitabtooltip", "helpfile", "helpheight", "helplang", "hf", "hh", "hi", "hid", "hidden", "highlight", "history", "hk", "hkmap", "hkmapp", "hkp", "hl", "hlg", "hls", "hlsearch", "ic", "icon", "iconstring", "ignorecase", "im", "imactivatefunc", "imactivatekey", "imaf", "imak", "imc", "imcmdline", "imd", "imdisable", "imi", "iminsert", "ims", "imsearch", "imsf", "imst", "imstatusfunc", "imstyle", "inc", "include", "includeexpr", "incsearch", "inde", "indentexpr", "indentkeys", "indk", "inex", "inf", "infercase", "insertmode", "invac", "invacd", "invai", "invallowrevins", "invar", "invarab", "invarabic", "invarabicshape", "invari", "invarshape", "invasd", "invautochdir", "invautocomplete", "invautoindent", "invautoread", "invautoshelldir", "invautowrite", "invautowriteall", "invaw", "invawa", "invbackup", "invballooneval", "invballoonevalterm", "invbeval", "invbevalterm", "invbin", "invbinary", "invbk", "invbl", "invbomb", "invbreakindent", "invbri", "invbuflisted", "invcdh", "invcdhome", "invcf", "invci", "invcin", "invcindent", "invcompatible", "invconfirm", "invcopyindent", "invcp", "invcrb", "invcscoperelative", "invcscopetag", "invcscopeverbose", "invcsre", "invcst", "invcsverb", "invcuc", "invcul", "invcursorbind", "invcursorcolumn", "invcursorline", "invdeco", "invdelcombine", "invdg", "invdiff", "invdigraph", "invea", "inveb", "inved", "invedcompatible", "invek", "invemo", "invemoji", "invendoffile", "invendofline", "inveof", "inveol", "invequalalways", "inverrorbells", "invesckeys", "invet", "invex", "invexpandtab", "invexrc", "invfen", "invfic", "invfileignorecase", "invfixendofline", "invfixeol", "invfoldenable", "invfs", "invfsync", "invgd", "invgdefault", "invguipty", "invhid", "invhidden", "invhk", "invhkmap", "invhkmapp", "invhkp", "invhls", "invhlsearch", "invic", "invicon", "invignorecase", "invim", "invimc", "invimcmdline", "invimd", "invimdisable", "invincsearch", "invinf", "invinfercase", "invinsertmode", "invis", "invjoinspaces", "invjs", "invlangnoremap", "invlangremap", "invlazyredraw", "invlbr", "invlinebreak", "invlisp", "invlist", "invlnr", "invloadplugins", "invlpl", "invlrm", "invlz", "invma", "invmagic", "invmh", "invml", "invmle", "invmod", "invmodeline", "invmodelineexpr", "invmodifiable", "invmodified", "invmore", "invmousef", "invmousefocus", "invmousehide", "invmousemev", "invmousemoveevent", "invnu", "invnumber", "invodev", "invopendevice", "invpaste", "invpi", "invpreserveindent", "invpreviewwindow", "invprompt", "invpvw", "invreadonly", "invrelativenumber", "invremap", "invrestorescreen", "invrevins", "invri", "invrightleft", "invrl", "invrnu", "invro", "invrs", "invru", "invruler", "invsb", "invsc", "invscb", "invscf", "invscrollbind", "invscrollfocus", "invscs", "invsecure", "invsft", "invshellslash", "invshelltemp", "invshiftround", "invshortname", "invshowcmd", "invshowfulltag", "invshowmatch", "invshowmode", "invsi", "invsm", "invsmartcase", "invsmartindent", "invsmarttab", "invsmd", "invsmoothscroll", "invsms", "invsn", "invsol", "invspell", "invsplitbelow", "invsplitright", "invspr", "invsr", "invssl", "invsta", "invstartofline", "invstmp", "invswapfile", "invswf", "invta", "invtagbsearch", "invtagrelative", "invtagstack", "invtbi", "invtbidi", "invtbs", "invtermbidi", "invtermguicolors", "invterse", "invtextauto", "invtextmode", "invtf", "invtgc", "invtgst", "invtildeop", "invtimeout", "invtitle", "invto", "invtop", "invtr", "invttimeout", "invttybuiltin", "invttyfast", "invtx", "invudf", "invundofile", "invvb", "invvisualbell", "invwa", "invwarn", "invwb", "invweirdinvert", "invwfb", "invwfh", "invwfw", "invwic", "invwildignorecase", "invwildmenu", "invwinfixbuf", "invwinfixheight", "invwinfixwidth", "invwiv", "invwlsteal", "invwmnu", "invwrap", "invwrapscan", "invwrite", "invwriteany", "invwritebackup", "invws", "invwst", "invxtermcodes", "is", "isf", "isfname", "isi", "isident", "isk", "iskeyword", "isp", "isprint", "joinspaces", "jop", "js", "jumpoptions", "key", "keymap", "keymodel", "keyprotocol", "keywordprg", "km", "kmp", "kp", "kpc", "langmap", "langmenu", "langnoremap", "langremap", "laststatus", "lazyredraw", "lbr", "lcs", "lhi", "lhistory", "linebreak", "lines", "linespace", "lisp", "lispoptions", "lispwords", "list", "listchars", "lm", "lmap", "lnr", "loadplugins", "lop", "lpl", "lrm", "ls", "lsp", "luadll", "lw", "lz", "ma", "magic", "makeef", "makeencoding", "makeprg", "mat", "matchpairs", "matchtime", "maxcombine", "maxfuncdepth", "maxmapdepth", "maxmem", "maxmempattern", "maxmemtot", "maxsearchcount", "mco", "mef", "menc", "menuitems", "messagesopt", "mfd", "mh", "mis", "mkspellmem", "ml", "mle", "mls", "mm", "mmd", "mmp", "mmt", "mod", "modeline", "modelineexpr", "modelines", "modifiable", "modified", "mopt", "more", "mouse", "mousef", "mousefocus", "mousehide", "mousem", "mousemev", "mousemodel", "mousemoveevent", "mouses", "mouseshape", "mouset", "mousetime", "mp", "mps", "msc", "msm", "mzq", "mzquantum", "mzschemedll", "mzschemegcdll", "nextgroup", "nf", "noac", "noacd", "noai", "noallowrevins", "noar", "noarab", "noarabic", "noarabicshape", "noari", "noarshape", "noasd", "noautochdir", "noautocomplete", "noautoindent", "noautoread", "noautoshelldir", "noautowrite", "noautowriteall", "noaw", "noawa", "nobackup", "noballooneval", "noballoonevalterm", "nobeval", "nobevalterm", "nobin", "nobinary", "nobk", "nobl", "nobomb", "nobreakindent", "nobri", "nobuflisted", "nocdh", "nocdhome", "nocf", "noci", "nocin", "nocindent", "nocompatible", "noconfirm", "nocopyindent", "nocp", "nocrb", "nocscoperelative", "nocscopetag", "nocscopeverbose", "nocsre", "nocst", "nocsverb", "nocuc", "nocul", "nocursorbind", "nocursorcolumn", "nocursorline", "nodeco", "nodelcombine", "nodg", "nodiff", "nodigraph", "noea", "noeb", "noed", "noedcompatible", "noek", "noemo", "noemoji", "noendoffile", "noendofline", "noeof", "noeol", "noequalalways", "noerrorbells", "noesckeys", "noet", "noex", "noexpandtab", "noexrc", "nofen", "nofic", "nofileignorecase", "nofixendofline", "nofixeol", "nofoldenable", "nofs", "nofsync", "nogd", "nogdefault", "noguipty", "nohid", "nohidden", "nohk", "nohkmap", "nohkmapp", "nohkp", "nohls", "nohlsearch", "noic", "noicon", "noignorecase", "noim", "noimc", "noimcmdline", "noimd", "noimdisable", "noincsearch", "noinf", "noinfercase", "noinsertmode", "nois", "nojoinspaces", "nojs", "nolangnoremap", "nolangremap", "nolazyredraw", "nolbr", "nolinebreak", "nolisp", "nolist", "nolnr", "noloadplugins", "nolpl", "nolrm", "nolz", "noma", "nomagic", "nomh", "noml", "nomle", "nomod", "nomodeline", "nomodelineexpr", "nomodifiable", "nomodified", "nomore", "nomousef", "nomousefocus", "nomousehide", "nomousemev", "nomousemoveevent", "nonu", "nonumber", "noodev", "noopendevice", "nopaste", "nopi", "nopreserveindent", "nopreviewwindow", "noprompt", "nopvw", "noreadonly", "norelativenumber", "noremap", "norestorescreen", "norevins", "nori", "norightleft", "norl", "nornu", "noro", "nors", "noru", "noruler", "nosb", "nosc", "noscb", "noscf", "noscrollbind", "noscrollfocus", "noscs", "nosecure", "nosft", "noshellslash", "noshelltemp", "noshiftround", "noshortname", "noshowcmd", "noshowfulltag", "noshowmatch", "noshowmode", "nosi", "nosm", "nosmartcase", "nosmartindent", "nosmarttab", "nosmd", "nosmoothscroll", "nosms", "nosn", "nosol", "nospell", "nosplitbelow", "nosplitright", "nospr", "nosr", "nossl", "nosta", "nostartofline", "nostmp", "noswapfile", "noswf", "nota", "notagbsearch", "notagrelative", "notagstack", "notbi", "notbidi", "notbs", "notermbidi", "notermguicolors", "noterse", "notextauto", "notextmode", "notf", "notgc", "notgst", "notildeop", "notimeout", "notitle", "noto", "notop", "notr", "nottimeout", "nottybuiltin", "nottyfast", "notx", "noudf", "noundofile", "novb", "novisualbell", "nowa", "nowarn", "nowb", "noweirdinvert", "nowfb", "nowfh", "nowfw", "nowic", "nowildignorecase", "nowildmenu", "nowinfixbuf", "nowinfixheight", "nowinfixwidth", "nowiv", "nowlsteal", "nowmnu", "nowrap", "nowrapscan", "nowrite", "nowriteany", "nowritebackup", "nows", "nowst", "noxtermcodes", "nrformats", "nu", "number", "numberwidth", "nuw", "odev", "ofu", "omnifunc", "opendevice", "operatorfunc", "opfunc", "osctimeoutlen", "ost", "pa", "packpath", "para", "paragraphs", "paste", "pastetoggle", "patchexpr", "patchmode", "path", "pb", "pdev", "penc", "perldll", "pex", "pexpr", "pfn", "ph", "pheader", "pi", "pm", "pmbcs", "pmbfn", "pmw", "popt", "pp", "preserveindent", "previewheight", "previewpopup", "previewwindow", "printdevice", "printencoding", "printexpr", "printfont", "printheader", "printmbcharset", "printmbfont", "printoptions", "prompt", "pt", "pumborder", "pumheight", "pummaxwidth", "pumwidth", "pvh", "pvp", "pvw", "pw", "pythondll", "pythonhome", "pythonthreedll", "pythonthreehome", "pyx", "pyxversion", "qe", "qftf", "quickfixtextfunc", "quoteescape", "rdt", "re", "readonly", "redrawtime", "regexpengine", "relativenumber", "remap", "renderoptions", "report", "restorescreen", "revins", "ri", "rightleft", "rightleftcmd", "rl", "rlc", "rnu", "ro", "rop", "rs", "rtp", "ru", "rubydll", "ruf", "ruler", "rulerformat", "runtimepath", "sb", "sbo", "sbr", "sc", "scb", "scf", "scl", "scr", "scroll", "scrollbind", "scrollfocus", "scrolljump", "scrolloff", "scrollopt", "scs", "sect", "sections", "secure", "sel", "selection", "selectmode", "sessionoptions", "sft", "sh", "shcf", "shell", "shellcmdflag", "shellpipe", "shellquote", "shellredir", "shellslash", "shelltemp", "shelltype", "shellxescape", "shellxquote", "shiftround", "shiftwidth", "shm", "shortmess", "shortname", "showbreak", "showcmd", "showcmdloc", "showfulltag", "showmatch", "showmode", "showtabline", "showtabpanel", "shq", "si", "sidescroll", "sidescrolloff", "signcolumn", "siso", "sj", "skipwhite", "slm", "sloc", "sm", "smartcase", "smartindent", "smarttab", "smc", "smd", "smoothscroll", "sms", "sn", "so", "softtabstop", "sol", "sp", "spc", "spell", "spellcapcheck", "spellfile", "spelllang", "spelloptions", "spellsuggest", "spf", "spk", "spl", "splitbelow", "splitkeep", "splitright", "spo", "spr", "sps", "sr", "srr", "ss", "ssl", "ssop", "st", "sta", "stal", "startofline", "statusline", "stl", "stmp", "stpl", "sts", "su", "sua", "suffixes", "suffixesadd", "sw", "swapfile", "swapsync", "swb", "swf", "switchbuf", "sws", "sxe", "sxq", "syn", "synmaxcol", "syntax", "t_8b", "t_8f", "t_8u", "t_AB", "t_AF", "t_AL", "t_AU", "t_BD", "t_BE", "t_CF", "t_CS", "t_CV", "t_Ce", "t_Co", "t_Cs", "t_DL", "t_Ds", "t_EC", "t_EI", "t_F1", "t_F2", "t_F3", "t_F4", "t_F5", "t_F6", "t_F7", "t_F8", "t_F9", "t_GP", "t_IE", "t_IS", "t_K1", "t_K3", "t_K4", "t_K5", "t_K6", "t_K7", "t_K8", "t_K9", "t_KA", "t_KB", "t_KC", "t_KD", "t_KE", "t_KF", "t_KG", "t_KH", "t_KI", "t_KJ", "t_KK", "t_KL", "t_RB", "t_RC", "t_RF", "t_RI", "t_RK", "t_RS", "t_RT", "t_RV", "t_Ri", "t_SC", "t_SH", "t_SI", "t_SR", "t_ST", "t_Sb", "t_Sf", "t_Si", "t_TE", "t_TI", "t_Te", "t_Ts", "t_Us", "t_VS", "t_WP", "t_WS", "t_XM", "t_ZH", "t_ZR", "t_al", "t_bc", "t_cd", "t_ce", "t_cl", "t_cm", "t_cs", "t_da", "t_db", "t_dl", "t_ds", "t_fd", "t_fe", "t_fs", "t_k1", "t_k2", "t_k3", "t_k4", "t_k5", "t_k6", "t_k7", "t_k8", "t_k9", "t_kB", "t_kD", "t_kI", "t_kN", "t_kP", "t_kb", "t_kd", "t_ke", "t_kh", "t_kl", "t_kr", "t_ks", "t_ku", "t_le", "t_mb", "t_md", "t_me", "t_mr", "t_ms", "t_nd", "t_op", "t_se", "t_so", "t_sr", "t_te", "t_ti", "t_ts", "t_u7", "t_ue", "t_us", "t_ut", "t_vb", "t_ve", "t_vi", "t_vs", "t_xn", "t_xo", "t_xs", "ta", "tabclose", "tabline", "tabpagemax", "tabpanel", "tabpanelopt", "tabstop", "tag", "tagbsearch", "tagcase", "tagfunc", "taglength", "tagrelative", "tags", "tagstack", "tal", "tb", "tbi", "tbidi", "tbis", "tbs", "tc", "tcl", "tcldll", "tenc", "term", "termbidi", "termencoding", "termguicolors", "termwinkey", "termwinscroll", "termwinsize", "termwintype", "terse", "textauto", "textmode", "textwidth", "tf", "tfu", "tgc", "tgst", "thesaurus", "thesaurusfunc", "tildeop", "timeout", "timeoutlen", "title", "titlelen", "titleold", "titlestring", "tl", "tm", "to", "toolbar", "toolbariconsize", "top", "tpl", "tplo", "tpm", "tr", "ts", "tsl", "tsr", "tsrfu", "ttimeout", "ttimeoutlen", "ttm", "tty", "ttybuiltin", "ttyfast", "ttym", "ttymouse", "ttyscroll", "ttytype", "tw", "twk", "tws", "twsl", "twt", "tx", "uc", "udf", "udir", "ul", "undodir", "undofile", "undolevels", "undoreload", "updatecount", "updatetime", "ur", "ut", "varsofttabstop", "vartabstop", "vb", "vbs", "vdir", "ve", "verbose", "verbosefile", "vfile", "vi", "viewdir", "viewoptions", "vif", "vimSetEqual", "vimSetMod", "viminfo", "viminfofile", "virtualedit", "visualbell", "vop", "vsts", "vts", "wa", "wak", "warn", "wb", "wc", "wcm", "wcr", "wd", "weirdinvert", "wfb", "wfh", "wfw", "wh", "whichwrap", "wi", "wic", "wig", "wildchar", "wildcharm", "wildignore", "wildignorecase", "wildmenu", "wildmode", "wildoptions", "wim", "winaltkeys", "wincolor", "window", "winfixbuf", "winfixheight", "winfixwidth", "winheight", "winminheight", "winminwidth", "winptydll", "winwidth", "wiv", "wiw", "wlseat", "wlsteal", "wltimeoutlen", "wm", "wmh", "wmnu", "wmw", "wop", "wrap", "wrapmargin", "wrapscan", "write", "writeany", "writebackup", "writedelay", "ws", "wse", "wst", "wtm", "ww", "xtermcodes"]
14
+ kw[:auto] = Set.new ["BufAdd", "BufCreate", "BufDelete", "BufEnter", "BufFilePost", "BufFilePre", "BufHidden", "BufLeave", "BufNew", "BufNewFile", "BufRead", "BufReadCmd", "BufReadPost", "BufReadPre", "BufUnload", "BufWinEnter", "BufWinLeave", "BufWipeout", "BufWrite", "BufWriteCmd", "BufWritePost", "BufWritePre", "CmdUndefined", "CmdlineChanged", "CmdlineEnter", "CmdlineLeave", "CmdlineLeavePre", "CmdwinEnter", "CmdwinLeave", "ColorScheme", "ColorSchemePre", "CompleteChanged", "CompleteDone", "CompleteDonePre", "CursorHold", "CursorHoldI", "CursorMoved", "CursorMovedC", "CursorMovedI", "DiffUpdated", "DirChanged", "DirChangedPre", "EncodingChanged", "ExitPre", "FileAppendCmd", "FileAppendPost", "FileAppendPre", "FileChangedRO", "FileChangedShell", "FileChangedShellPost", "FileEncoding", "FileReadCmd", "FileReadPost", "FileReadPre", "FileType", "FileWriteCmd", "FileWritePost", "FileWritePre", "FilterReadPost", "FilterReadPre", "FilterWritePost", "FilterWritePre", "FocusGained", "FocusLost", "FuncUndefined", "GUIEnter", "GUIFailed", "InsertChange", "InsertCharPre", "InsertEnter", "InsertLeave", "InsertLeavePre", "KeyInputPre", "MenuPopup", "ModeChanged", "OptionSet", "QuickFixCmdPost", "QuickFixCmdPre", "QuitPre", "RemoteReply", "SafeState", "SafeStateAgain", "SessionLoadPost", "SessionWritePost", "ShellCmdPost", "ShellFilterPost", "SigUSR1", "SourceCmd", "SourcePost", "SourcePre", "SpellFileMissing", "StdinReadPost", "StdinReadPre", "SwapExists", "Syntax", "TabClosed", "TabClosedPre", "TabEnter", "TabLeave", "TabNew", "TermChanged", "TermResponse", "TermResponseAll", "TerminalOpen", "TerminalWinOpen", "TextChanged", "TextChangedI", "TextChangedP", "TextChangedT", "TextYankPost", "VimEnter", "VimLeave", "VimLeavePre", "VimResized", "VimResume", "VimSuspend", "WinClosed", "WinEnter", "WinLeave", "WinNew", "WinNewPre", "WinResized", "WinScrolled", "nextgroup", "skipwhite", "vimAutoEventSep", "vimAutocmdPattern"]
15
+ kw[:function] = Set.new ["abs", "acos", "add", "and", "append", "appendbufline", "argc", "argidx", "arglistid", "argv", "asin", "assert_beeps", "assert_equal", "assert_equalfile", "assert_exception", "assert_fails", "assert_false", "assert_inrange", "assert_match", "assert_nobeep", "assert_notequal", "assert_notmatch", "assert_report", "assert_true", "atan", "atan2", "autocmd_add", "autocmd_delete", "autocmd_get", "balloon_gettext", "balloon_show", "balloon_split", "base64_decode", "base64_encode", "bindtextdomain", "blob2list", "blob2str", "browse", "browsedir", "bufadd", "bufexists", "buflisted", "bufload", "bufloaded", "bufname", "bufnr", "bufwinid", "bufwinnr", "byte2line", "byteidx", "byteidxcomp", "call", "ceil", "ch_canread", "ch_close", "ch_close_in", "ch_evalexpr", "ch_evalraw", "ch_getbufnr", "ch_getjob", "ch_info", "ch_log", "ch_logfile", "ch_open", "ch_read", "ch_readblob", "ch_readraw", "ch_sendexpr", "ch_sendraw", "ch_setoptions", "ch_status", "changenr", "char2nr", "charclass", "charcol", "charidx", "chdir", "cindent", "clearmatches", "cmdcomplete_info", "col", "complete", "complete_add", "complete_check", "complete_info", "confirm", "copy", "cos", "cosh", "count", "cscope_connection", "cursor", "debugbreak", "deepcopy", "delete", "deletebufline", "did_filetype", "diff", "diff_filler", "diff_hlID", "digraph_get", "digraph_getlist", "digraph_set", "digraph_setlist", "echoraw", "empty", "environ", "err_teapot", "escape", "eval", "eventhandler", "executable", "execute", "exepath", "exists", "exists_compiled", "exp", "expand", "expandcmd", "extend", "extendnew", "feedkeys", "filecopy", "filereadable", "filewritable", "filter", "finddir", "findfile", "flatten", "flattennew", "float2nr", "floor", "fmod", "fnameescape", "fnamemodify", "foldclosed", "foldclosedend", "foldlevel", "foldtext", "foldtextresult", "foreach", "foreground", "fullcommand", "funcref", "function", "garbagecollect", "get", "getbufinfo", "getbufline", "getbufoneline", "getbufvar", "getcellpixels", "getcellwidths", "getchangelist", "getchar", "getcharmod", "getcharpos", "getcharsearch", "getcharstr", "getcmdcomplpat", "getcmdcompltype", "getcmdline", "getcmdpos", "getcmdprompt", "getcmdscreenpos", "getcmdtype", "getcmdwintype", "getcompletion", "getcompletiontype", "getcurpos", "getcursorcharpos", "getcwd", "getenv", "getfontname", "getfperm", "getfsize", "getftime", "getftype", "getimstatus", "getjumplist", "getline", "getloclist", "getmarklist", "getmatches", "getmousepos", "getmouseshape", "getpid", "getpos", "getqflist", "getreg", "getreginfo", "getregion", "getregionpos", "getregtype", "getscriptinfo", "getstacktrace", "gettabinfo", "gettabvar", "gettabwinvar", "gettagstack", "gettext", "getwininfo", "getwinpos", "getwinposx", "getwinposy", "getwinvar", "glob", "glob2regpat", "globpath", "has", "has_key", "haslocaldir", "hasmapto", "histadd", "histdel", "histget", "histnr", "hlID", "hlexists", "hlget", "hlset", "hostname", "iconv", "id", "indent", "index", "indexof", "input", "inputdialog", "inputlist", "inputrestore", "inputsave", "inputsecret", "insert", "instanceof", "interrupt", "invert", "isabsolutepath", "isdirectory", "isinf", "islocked", "isnan", "items", "job_getchannel", "job_info", "job_setoptions", "job_start", "job_status", "job_stop", "join", "js_decode", "js_encode", "json_decode", "json_encode", "keys", "keytrans", "len", "libcall", "libcallnr", "line", "line2byte", "lispindent", "list2blob", "list2str", "list2tuple", "listener_add", "listener_flush", "listener_remove", "localtime", "log", "log10", "luaeval", "map", "maparg", "mapcheck", "maplist", "mapnew", "mapset", "match", "matchadd", "matchaddpos", "matcharg", "matchbufline", "matchdelete", "matchend", "matchfuzzy", "matchfuzzypos", "matchlist", "matchstr", "matchstrlist", "matchstrpos", "max", "menu_info", "min", "mkdir", "mode", "mzeval", "nextnonblank", "ngettext", "nr2char", "or", "pathshorten", "perleval", "popup_atcursor", "popup_beval", "popup_clear", "popup_close", "popup_create", "popup_dialog", "popup_filter_menu", "popup_filter_yesno", "popup_findecho", "popup_findinfo", "popup_findpreview", "popup_getoptions", "popup_getpos", "popup_hide", "popup_list", "popup_locate", "popup_menu", "popup_move", "popup_notification", "popup_setbuf", "popup_setoptions", "popup_settext", "popup_show", "pow", "preinserted", "prevnonblank", "printf", "prompt_getprompt", "prompt_setcallback", "prompt_setinterrupt", "prompt_setprompt", "prop_add", "prop_add_list", "prop_clear", "prop_find", "prop_list", "prop_remove", "prop_type_add", "prop_type_change", "prop_type_delete", "prop_type_get", "prop_type_list", "pum_getpos", "pumvisible", "py3eval", "pyeval", "pyxeval", "rand", "range", "readblob", "readdir", "readdirex", "readfile", "redraw_listener_add", "redraw_listener_remove", "reduce", "reg_executing", "reg_recording", "reltime", "reltimefloat", "reltimestr", "remote_expr", "remote_foreground", "remote_peek", "remote_read", "remote_send", "remote_startserver", "remove", "rename", "repeat", "resolve", "reverse", "round", "rubyeval", "screenattr", "screenchar", "screenchars", "screencol", "screenpos", "screenrow", "screenstring", "search", "searchcount", "searchdecl", "searchpair", "searchpairpos", "searchpos", "server2client", "serverlist", "setbufline", "setbufvar", "setcellwidths", "setcharpos", "setcharsearch", "setcmdline", "setcmdpos", "setcursorcharpos", "setenv", "setfperm", "setline", "setloclist", "setmatches", "setpos", "setqflist", "setreg", "settabvar", "settabwinvar", "settagstack", "setwinvar", "sha256", "shellescape", "shiftwidth", "sign_define", "sign_getdefined", "sign_getplaced", "sign_jump", "sign_place", "sign_placelist", "sign_undefine", "sign_unplace", "sign_unplacelist", "simplify", "sin", "sinh", "slice", "sort", "sound_clear", "sound_playevent", "sound_playfile", "sound_stop", "soundfold", "spellbadword", "spellsuggest", "split", "sqrt", "srand", "state", "str2blob", "str2float", "str2list", "str2nr", "strcharlen", "strcharpart", "strchars", "strdisplaywidth", "strftime", "strgetchar", "stridx", "string", "strlen", "strpart", "strptime", "strridx", "strtrans", "strutf16len", "strwidth", "submatch", "substitute", "swapfilelist", "swapinfo", "swapname", "synID", "synIDattr", "synIDtrans", "synconcealed", "synstack", "system", "systemlist", "tabpagebuflist", "tabpagenr", "tabpagewinnr", "tagfiles", "taglist", "tan", "tanh", "tempname", "term_dumpdiff", "term_dumpload", "term_dumpwrite", "term_getaltscreen", "term_getansicolors", "term_getattr", "term_getcursor", "term_getjob", "term_getline", "term_getscrolled", "term_getsize", "term_getstatus", "term_gettitle", "term_gettty", "term_list", "term_scrape", "term_sendkeys", "term_setansicolors", "term_setapi", "term_setkill", "term_setrestore", "term_setsize", "term_start", "term_wait", "terminalprops", "test_alloc_fail", "test_autochdir", "test_feedinput", "test_garbagecollect_now", "test_garbagecollect_soon", "test_getvalue", "test_gui_event", "test_ignore_error", "test_mswin_event", "test_null_blob", "test_null_channel", "test_null_dict", "test_null_function", "test_null_job", "test_null_list", "test_null_partial", "test_null_string", "test_null_tuple", "test_option_not_set", "test_override", "test_refcount", "test_setmouse", "test_settime", "test_srand_seed", "test_unknown", "test_void", "timer_info", "timer_pause", "timer_start", "timer_stop", "timer_stopall", "tolower", "toupper", "tr", "trim", "trunc", "tuple2list", "type", "typename", "undofile", "undotree", "uniq", "uri_decode", "uri_encode", "utf16idx", "values", "virtcol", "virtcol2col", "visualmode", "wildmenumode", "wildtrigger", "win_execute", "win_findbuf", "win_getid", "win_gettype", "win_gotoid", "win_id2tabwin", "win_id2win", "win_move_separator", "win_move_statusline", "win_screenpos", "win_splitmove", "winbufnr", "wincol", "windowsversion", "winheight", "winlayout", "winline", "winnr", "winrestcmd", "winrestview", "winsaveview", "winwidth", "wordcount", "writefile", "xor"]
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,68 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Lexers
6
+ class VimL < RegexLexer
7
+ title "VimL"
8
+ desc "VimL, the scripting language for the Vim editor (vim.org)"
9
+ tag 'viml'
10
+ aliases 'vim', 'vimscript', 'ex'
11
+ filenames '*.vim', '*.vba', '.vimrc', '.exrc', '.gvimrc',
12
+ '_vimrc', '_exrc', '_gvimrc' # _ names for windows
13
+
14
+ mimetypes 'text/x-vim'
15
+
16
+ lazy do
17
+ require_relative 'viml/keywords'
18
+ end
19
+
20
+ state :root do
21
+ rule %r/^(\s*)(".*?)$/ do
22
+ groups Text, Comment
23
+ end
24
+
25
+ rule %r/^\s*\\/, Str::Escape
26
+
27
+ rule %r/[ \t]+/, Text
28
+
29
+ # TODO: regexes can have other delimiters
30
+ rule %r(/(\\\\|\\/|[^\n/])*/), Str::Regex
31
+ rule %r("(\\\\|\\"|[^\n"])*"), Str::Double
32
+ rule %r('(\\\\|\\'|[^\n'])*'), Str::Single
33
+
34
+ # if it's not a string, it's a comment.
35
+ rule %r/(?<=\s)"[^-:.%#=*].*?$/, Comment
36
+
37
+ rule %r/-?\d+/, Num
38
+ rule %r/#[0-9a-f]{6}/i, Num::Hex
39
+ rule %r/^:/, Punctuation
40
+ rule %r/[():<>+=!\[\]{}\|,~.-]/, Punctuation
41
+ rule %r/\b(let|if|else|endif|elseif|fun|function|endfunction)\b/,
42
+ Keyword
43
+
44
+ rule %r/\b(NONE|bold|italic|underline|dark|light)\b/, Name::Builtin
45
+
46
+ rule %r/[absg]:\w+\b/, Name::Variable
47
+ rule %r/\b\w+\b/ do |m|
48
+ name = m[0]
49
+
50
+ if KEYWORDS[:command].include? name
51
+ token Keyword
52
+ elsif (
53
+ KEYWORDS[:function].include?(name) ||
54
+ KEYWORDS[:option].include?(name) ||
55
+ KEYWORDS[:auto].include?(name)
56
+ )
57
+ token Name::Builtin
58
+ else
59
+ token Text
60
+ end
61
+ end
62
+
63
+ # no errors in VimL!
64
+ rule %r/./m, Text
65
+ end
66
+ end
67
+ end
68
+ end