gitlab-rouge 1.9.2

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 (185) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +23 -0
  3. data/LICENSE +186 -0
  4. data/bin/rougify +16 -0
  5. data/gitlab-rouge.gemspec +17 -0
  6. data/lib/rouge.rb +57 -0
  7. data/lib/rouge/cli.rb +363 -0
  8. data/lib/rouge/demos/apache +21 -0
  9. data/lib/rouge/demos/applescript +2 -0
  10. data/lib/rouge/demos/c +8 -0
  11. data/lib/rouge/demos/clojure +5 -0
  12. data/lib/rouge/demos/coffeescript +5 -0
  13. data/lib/rouge/demos/common_lisp +1 -0
  14. data/lib/rouge/demos/conf +4 -0
  15. data/lib/rouge/demos/cpp +8 -0
  16. data/lib/rouge/demos/csharp +5 -0
  17. data/lib/rouge/demos/css +4 -0
  18. data/lib/rouge/demos/dart +6 -0
  19. data/lib/rouge/demos/diff +7 -0
  20. data/lib/rouge/demos/elixir +1 -0
  21. data/lib/rouge/demos/erb +1 -0
  22. data/lib/rouge/demos/erlang +7 -0
  23. data/lib/rouge/demos/factor +5 -0
  24. data/lib/rouge/demos/gherkin +17 -0
  25. data/lib/rouge/demos/glsl +14 -0
  26. data/lib/rouge/demos/go +7 -0
  27. data/lib/rouge/demos/groovy +9 -0
  28. data/lib/rouge/demos/haml +5 -0
  29. data/lib/rouge/demos/handlebars +7 -0
  30. data/lib/rouge/demos/haskell +6 -0
  31. data/lib/rouge/demos/html +8 -0
  32. data/lib/rouge/demos/http +14 -0
  33. data/lib/rouge/demos/ini +4 -0
  34. data/lib/rouge/demos/io +11 -0
  35. data/lib/rouge/demos/java +5 -0
  36. data/lib/rouge/demos/javascript +1 -0
  37. data/lib/rouge/demos/json +1 -0
  38. data/lib/rouge/demos/json-doc +1 -0
  39. data/lib/rouge/demos/liquid +11 -0
  40. data/lib/rouge/demos/literate_coffeescript +3 -0
  41. data/lib/rouge/demos/literate_haskell +7 -0
  42. data/lib/rouge/demos/llvm +20 -0
  43. data/lib/rouge/demos/lua +12 -0
  44. data/lib/rouge/demos/make +6 -0
  45. data/lib/rouge/demos/markdown +4 -0
  46. data/lib/rouge/demos/matlab +6 -0
  47. data/lib/rouge/demos/moonscript +16 -0
  48. data/lib/rouge/demos/nginx +5 -0
  49. data/lib/rouge/demos/nim +27 -0
  50. data/lib/rouge/demos/objective_c +14 -0
  51. data/lib/rouge/demos/ocaml +12 -0
  52. data/lib/rouge/demos/perl +5 -0
  53. data/lib/rouge/demos/php +3 -0
  54. data/lib/rouge/demos/plaintext +1 -0
  55. data/lib/rouge/demos/powershell +49 -0
  56. data/lib/rouge/demos/prolog +9 -0
  57. data/lib/rouge/demos/properties +7 -0
  58. data/lib/rouge/demos/puppet +6 -0
  59. data/lib/rouge/demos/python +6 -0
  60. data/lib/rouge/demos/qml +9 -0
  61. data/lib/rouge/demos/r +8 -0
  62. data/lib/rouge/demos/racket +24 -0
  63. data/lib/rouge/demos/ruby +9 -0
  64. data/lib/rouge/demos/rust +12 -0
  65. data/lib/rouge/demos/sass +3 -0
  66. data/lib/rouge/demos/scala +3 -0
  67. data/lib/rouge/demos/scheme +4 -0
  68. data/lib/rouge/demos/scss +5 -0
  69. data/lib/rouge/demos/sed +4 -0
  70. data/lib/rouge/demos/shell +2 -0
  71. data/lib/rouge/demos/slim +17 -0
  72. data/lib/rouge/demos/smalltalk +6 -0
  73. data/lib/rouge/demos/sml +4 -0
  74. data/lib/rouge/demos/sql +1 -0
  75. data/lib/rouge/demos/swift +5 -0
  76. data/lib/rouge/demos/tcl +1 -0
  77. data/lib/rouge/demos/tex +1 -0
  78. data/lib/rouge/demos/toml +9 -0
  79. data/lib/rouge/demos/tulip +14 -0
  80. data/lib/rouge/demos/vb +4 -0
  81. data/lib/rouge/demos/viml +5 -0
  82. data/lib/rouge/demos/xml +2 -0
  83. data/lib/rouge/demos/yaml +4 -0
  84. data/lib/rouge/formatter.rb +50 -0
  85. data/lib/rouge/formatters/html.rb +117 -0
  86. data/lib/rouge/formatters/null.rb +19 -0
  87. data/lib/rouge/formatters/terminal256.rb +176 -0
  88. data/lib/rouge/lexer.rb +443 -0
  89. data/lib/rouge/lexers/apache.rb +68 -0
  90. data/lib/rouge/lexers/apache/keywords.yml +453 -0
  91. data/lib/rouge/lexers/apple_script.rb +367 -0
  92. data/lib/rouge/lexers/c.rb +212 -0
  93. data/lib/rouge/lexers/clojure.rb +112 -0
  94. data/lib/rouge/lexers/coffeescript.rb +174 -0
  95. data/lib/rouge/lexers/common_lisp.rb +345 -0
  96. data/lib/rouge/lexers/conf.rb +24 -0
  97. data/lib/rouge/lexers/cpp.rb +66 -0
  98. data/lib/rouge/lexers/csharp.rb +88 -0
  99. data/lib/rouge/lexers/css.rb +271 -0
  100. data/lib/rouge/lexers/dart.rb +104 -0
  101. data/lib/rouge/lexers/diff.rb +31 -0
  102. data/lib/rouge/lexers/elixir.rb +108 -0
  103. data/lib/rouge/lexers/erb.rb +56 -0
  104. data/lib/rouge/lexers/erlang.rb +118 -0
  105. data/lib/rouge/lexers/factor.rb +302 -0
  106. data/lib/rouge/lexers/gherkin.rb +137 -0
  107. data/lib/rouge/lexers/gherkin/keywords.rb +14 -0
  108. data/lib/rouge/lexers/glsl.rb +135 -0
  109. data/lib/rouge/lexers/go.rb +178 -0
  110. data/lib/rouge/lexers/groovy.rb +104 -0
  111. data/lib/rouge/lexers/haml.rb +228 -0
  112. data/lib/rouge/lexers/handlebars.rb +79 -0
  113. data/lib/rouge/lexers/haskell.rb +183 -0
  114. data/lib/rouge/lexers/html.rb +94 -0
  115. data/lib/rouge/lexers/http.rb +80 -0
  116. data/lib/rouge/lexers/ini.rb +57 -0
  117. data/lib/rouge/lexers/io.rb +68 -0
  118. data/lib/rouge/lexers/java.rb +76 -0
  119. data/lib/rouge/lexers/javascript.rb +297 -0
  120. data/lib/rouge/lexers/liquid.rb +287 -0
  121. data/lib/rouge/lexers/literate_coffeescript.rb +33 -0
  122. data/lib/rouge/lexers/literate_haskell.rb +36 -0
  123. data/lib/rouge/lexers/llvm.rb +84 -0
  124. data/lib/rouge/lexers/lua.rb +122 -0
  125. data/lib/rouge/lexers/lua/builtins.rb +22 -0
  126. data/lib/rouge/lexers/make.rb +116 -0
  127. data/lib/rouge/lexers/markdown.rb +154 -0
  128. data/lib/rouge/lexers/matlab.rb +74 -0
  129. data/lib/rouge/lexers/matlab/builtins.rb +11 -0
  130. data/lib/rouge/lexers/moonscript.rb +110 -0
  131. data/lib/rouge/lexers/nginx.rb +71 -0
  132. data/lib/rouge/lexers/nim.rb +152 -0
  133. data/lib/rouge/lexers/objective_c.rb +197 -0
  134. data/lib/rouge/lexers/ocaml.rb +111 -0
  135. data/lib/rouge/lexers/perl.rb +197 -0
  136. data/lib/rouge/lexers/php.rb +173 -0
  137. data/lib/rouge/lexers/php/builtins.rb +204 -0
  138. data/lib/rouge/lexers/plain_text.rb +25 -0
  139. data/lib/rouge/lexers/powershell.rb +96 -0
  140. data/lib/rouge/lexers/prolog.rb +64 -0
  141. data/lib/rouge/lexers/properties.rb +55 -0
  142. data/lib/rouge/lexers/puppet.rb +128 -0
  143. data/lib/rouge/lexers/python.rb +228 -0
  144. data/lib/rouge/lexers/qml.rb +72 -0
  145. data/lib/rouge/lexers/r.rb +56 -0
  146. data/lib/rouge/lexers/racket.rb +542 -0
  147. data/lib/rouge/lexers/ruby.rb +415 -0
  148. data/lib/rouge/lexers/rust.rb +191 -0
  149. data/lib/rouge/lexers/sass.rb +74 -0
  150. data/lib/rouge/lexers/sass/common.rb +180 -0
  151. data/lib/rouge/lexers/scala.rb +142 -0
  152. data/lib/rouge/lexers/scheme.rb +112 -0
  153. data/lib/rouge/lexers/scss.rb +34 -0
  154. data/lib/rouge/lexers/sed.rb +170 -0
  155. data/lib/rouge/lexers/shell.rb +152 -0
  156. data/lib/rouge/lexers/slim.rb +228 -0
  157. data/lib/rouge/lexers/smalltalk.rb +116 -0
  158. data/lib/rouge/lexers/sml.rb +347 -0
  159. data/lib/rouge/lexers/sql.rb +140 -0
  160. data/lib/rouge/lexers/swift.rb +144 -0
  161. data/lib/rouge/lexers/tcl.rb +192 -0
  162. data/lib/rouge/lexers/tex.rb +72 -0
  163. data/lib/rouge/lexers/toml.rb +71 -0
  164. data/lib/rouge/lexers/tulip.rb +75 -0
  165. data/lib/rouge/lexers/vb.rb +164 -0
  166. data/lib/rouge/lexers/viml.rb +101 -0
  167. data/lib/rouge/lexers/viml/keywords.rb +12 -0
  168. data/lib/rouge/lexers/xml.rb +59 -0
  169. data/lib/rouge/lexers/yaml.rb +364 -0
  170. data/lib/rouge/plugins/redcarpet.rb +30 -0
  171. data/lib/rouge/regex_lexer.rb +439 -0
  172. data/lib/rouge/template_lexer.rb +22 -0
  173. data/lib/rouge/text_analyzer.rb +48 -0
  174. data/lib/rouge/theme.rb +195 -0
  175. data/lib/rouge/themes/base16.rb +130 -0
  176. data/lib/rouge/themes/colorful.rb +67 -0
  177. data/lib/rouge/themes/github.rb +71 -0
  178. data/lib/rouge/themes/molokai.rb +82 -0
  179. data/lib/rouge/themes/monokai.rb +92 -0
  180. data/lib/rouge/themes/monokai_sublime.rb +90 -0
  181. data/lib/rouge/themes/thankful_eyes.rb +71 -0
  182. data/lib/rouge/token.rb +182 -0
  183. data/lib/rouge/util.rb +101 -0
  184. data/lib/rouge/version.rb +7 -0
  185. metadata +231 -0
@@ -0,0 +1,12 @@
1
+ # encoding: utf-8
2
+ # DO NOT EDIT: automatically generated by `rake builtins:vim`.
3
+ # see tasks/vim.rake for more info.
4
+ module Rouge
5
+ module Lexers
6
+ class VimL
7
+ def self.keywords
8
+ @keywords ||= {:command=>[["a", "a"], ["ab", "ab"], ["abc", "abclear"], ["abo", "aboveleft"], ["al", "all"], ["ar", "ar"], ["ar", "args"], ["arga", "argadd"], ["argd", "argdelete"], ["argdo", "argdo"], ["arge", "argedit"], ["argg", "argglobal"], ["argl", "arglocal"], ["argu", "argument"], ["as", "ascii"], ["au", "au"], ["b", "buffer"], ["bN", "bNext"], ["ba", "ball"], ["bad", "badd"], ["bd", "bdelete"], ["bel", "belowright"], ["bf", "bfirst"], ["bl", "blast"], ["bm", "bmodified"], ["bn", "bnext"], ["bo", "botright"], ["bp", "bprevious"], ["br", "br"], ["br", "brewind"], ["brea", "break"], ["breaka", "breakadd"], ["breakd", "breakdel"], ["breakl", "breaklist"], ["bro", "browse"], ["bu", "bu"], ["buf", "buf"], ["bufdo", "bufdo"], ["buffers", "buffers"], ["bun", "bunload"], ["bw", "bwipeout"], ["c", "c"], ["c", "change"], ["cN", "cN"], ["cN", "cNext"], ["cNf", "cNf"], ["cNf", "cNfile"], ["cabc", "cabclear"], ["cad", "cad"], ["cad", "caddexpr"], ["caddb", "caddbuffer"], ["caddf", "caddfile"], ["cal", "call"], ["cat", "catch"], ["cb", "cbuffer"], ["cc", "cc"], ["ccl", "cclose"], ["cd", "cd"], ["ce", "center"], ["cex", "cexpr"], ["cf", "cfile"], ["cfir", "cfirst"], ["cg", "cgetfile"], ["cgetb", "cgetbuffer"], ["cgete", "cgetexpr"], ["changes", "changes"], ["chd", "chdir"], ["che", "checkpath"], ["checkt", "checktime"], ["cl", "cl"], ["cl", "clist"], ["cla", "clast"], ["clo", "close"], ["cmapc", "cmapclear"], ["cn", "cn"], ["cn", "cnext"], ["cnew", "cnewer"], ["cnf", "cnf"], ["cnf", "cnfile"], ["co", "copy"], ["col", "colder"], ["colo", "colorscheme"], ["com", "com"], ["comc", "comclear"], ["comp", "compiler"], ["con", "con"], ["con", "continue"], ["conf", "confirm"], ["cope", "copen"], ["cp", "cprevious"], ["cpf", "cpfile"], ["cq", "cquit"], ["cr", "crewind"], ["cs", "cs"], ["cscope", "cscope"], ["cstag", "cstag"], ["cuna", "cunabbrev"], ["cw", "cwindow"], ["d", "d"], ["d", "delete"], ["de", "de"], ["debug", "debug"], ["debugg", "debuggreedy"], ["del", "del"], ["delc", "delcommand"], ["delel", "delel"], ["delep", "delep"], ["deletel", "deletel"], ["deletep", "deletep"], ["deletl", "deletl"], ["deletp", "deletp"], ["delf", "delf"], ["delf", "delfunction"], ["dell", "dell"], ["delm", "delmarks"], ["delp", "delp"], ["dep", "dep"], ["di", "di"], ["di", "display"], ["diffg", "diffget"], ["diffo", "diffoff"], ["diffp", "diffpatch"], ["diffpu", "diffput"], ["diffs", "diffsplit"], ["difft", "diffthis"], ["diffu", "diffupdate"], ["dig", "dig"], ["dig", "digraphs"], ["dir", "dir"], ["dj", "djump"], ["dl", "dl"], ["dli", "dlist"], ["do", "do"], ["doau", "doau"], ["dp", "dp"], ["dr", "drop"], ["ds", "dsearch"], ["dsp", "dsplit"], ["e", "e"], ["e", "edit"], ["ea", "ea"], ["earlier", "earlier"], ["ec", "ec"], ["echoe", "echoerr"], ["echom", "echomsg"], ["echon", "echon"], ["el", "else"], ["elsei", "elseif"], ["em", "emenu"], ["en", "en"], ["en", "endif"], ["endf", "endf"], ["endf", "endfunction"], ["endfo", "endfor"], ["endfun", "endfun"], ["endt", "endtry"], ["endw", "endwhile"], ["ene", "enew"], ["ex", "ex"], ["exi", "exit"], ["exu", "exusage"], ["f", "f"], ["f", "file"], ["files", "files"], ["filet", "filet"], ["filetype", "filetype"], ["fin", "fin"], ["fin", "find"], ["fina", "finally"], ["fini", "finish"], ["fir", "first"], ["fix", "fixdel"], ["fo", "fold"], ["foldc", "foldclose"], ["foldd", "folddoopen"], ["folddoc", "folddoclosed"], ["foldo", "foldopen"], ["for", "for"], ["fu", "fu"], ["fu", "function"], ["fun", "fun"], ["g", "g"], ["go", "goto"], ["gr", "grep"], ["grepa", "grepadd"], ["gui", "gui"], ["gvim", "gvim"], ["h", "h"], ["h", "help"], ["ha", "hardcopy"], ["helpf", "helpfind"], ["helpg", "helpgrep"], ["helpt", "helptags"], ["hi", "hi"], ["hid", "hide"], ["his", "history"], ["i", "i"], ["ia", "ia"], ["iabc", "iabclear"], ["if", "if"], ["ij", "ijump"], ["il", "ilist"], ["imapc", "imapclear"], ["in", "in"], ["intro", "intro"], ["is", "isearch"], ["isp", "isplit"], ["iuna", "iunabbrev"], ["j", "join"], ["ju", "jumps"], ["k", "k"], ["kee", "keepmarks"], ["keepa", "keepa"], ["keepalt", "keepalt"], ["keepj", "keepjumps"], ["keepp", "keeppatterns"], ["l", "l"], ["l", "list"], ["lN", "lN"], ["lN", "lNext"], ["lNf", "lNf"], ["lNf", "lNfile"], ["la", "la"], ["la", "last"], ["lad", "lad"], ["lad", "laddexpr"], ["laddb", "laddbuffer"], ["laddf", "laddfile"], ["lan", "lan"], ["lan", "language"], ["lat", "lat"], ["later", "later"], ["lb", "lbuffer"], ["lc", "lcd"], ["lch", "lchdir"], ["lcl", "lclose"], ["lcs", "lcs"], ["lcscope", "lcscope"], ["le", "left"], ["lefta", "leftabove"], ["lex", "lexpr"], ["lf", "lfile"], ["lfir", "lfirst"], ["lg", "lgetfile"], ["lgetb", "lgetbuffer"], ["lgete", "lgetexpr"], ["lgr", "lgrep"], ["lgrepa", "lgrepadd"], ["lh", "lhelpgrep"], ["ll", "ll"], ["lla", "llast"], ["lli", "llist"], ["lmak", "lmake"], ["lmapc", "lmapclear"], ["lne", "lne"], ["lne", "lnext"], ["lnew", "lnewer"], ["lnf", "lnf"], ["lnf", "lnfile"], ["lo", "lo"], ["lo", "loadview"], ["loadk", "loadk"], ["loadkeymap", "loadkeymap"], ["loc", "lockmarks"], ["lockv", "lockvar"], ["lol", "lolder"], ["lop", "lopen"], ["lp", "lprevious"], ["lpf", "lpfile"], ["lr", "lrewind"], ["ls", "ls"], ["lt", "ltag"], ["lua", "lua"], ["luado", "luado"], ["luafile", "luafile"], ["lv", "lvimgrep"], ["lvimgrepa", "lvimgrepadd"], ["lw", "lwindow"], ["m", "move"], ["ma", "ma"], ["ma", "mark"], ["mak", "make"], ["marks", "marks"], ["mat", "match"], ["menut", "menut"], ["menut", "menutranslate"], ["mes", "mes"], ["messages", "messages"], ["mk", "mk"], ["mk", "mkexrc"], ["mks", "mksession"], ["mksp", "mkspell"], ["mkv", "mkv"], ["mkv", "mkvimrc"], ["mkvie", "mkview"], ["mo", "mo"], ["mod", "mode"], ["mz", "mz"], ["mz", "mzscheme"], ["mzf", "mzfile"], ["n", "n"], ["n", "next"], ["nb", "nbkey"], ["nbc", "nbclose"], ["nbs", "nbstart"], ["ne", "ne"], ["new", "new"], ["nmapc", "nmapclear"], ["noa", "noa"], ["noautocmd", "noautocmd"], ["noh", "nohlsearch"], ["nu", "number"], ["o", "o"], ["o", "open"], ["ol", "oldfiles"], ["omapc", "omapclear"], ["on", "only"], ["opt", "options"], ["ownsyntax", "ownsyntax"], ["p", "p"], ["p", "print"], ["pc", "pclose"], ["pe", "pe"], ["pe", "perl"], ["ped", "pedit"], ["perld", "perldo"], ["po", "pop"], ["popu", "popu"], ["popu", "popup"], ["pp", "ppop"], ["pr", "pr"], ["pre", "preserve"], ["prev", "previous"], ["pro", "pro"], ["prof", "profile"], ["profd", "profdel"], ["promptf", "promptfind"], ["promptr", "promptrepl"], ["ps", "psearch"], ["ptN", "ptN"], ["ptN", "ptNext"], ["pta", "ptag"], ["ptf", "ptfirst"], ["ptj", "ptjump"], ["ptl", "ptlast"], ["ptn", "ptn"], ["ptn", "ptnext"], ["ptp", "ptprevious"], ["ptr", "ptrewind"], ["pts", "ptselect"], ["pu", "put"], ["pw", "pwd"], ["py", "py"], ["py", "python"], ["py3", "py3"], ["py3", "py3"], ["py3do", "py3do"], ["pydo", "pydo"], ["pyf", "pyfile"], ["python3", "python3"], ["q", "q"], ["q", "quit"], ["qa", "qall"], ["quita", "quitall"], ["r", "r"], ["r", "read"], ["re", "re"], ["rec", "recover"], ["red", "red"], ["red", "redo"], ["redi", "redir"], ["redr", "redraw"], ["redraws", "redrawstatus"], ["reg", "registers"], ["res", "resize"], ["ret", "retab"], ["retu", "return"], ["rew", "rewind"], ["ri", "right"], ["rightb", "rightbelow"], ["ru", "ru"], ["ru", "runtime"], ["rub", "ruby"], ["rubyd", "rubydo"], ["rubyf", "rubyfile"], ["rundo", "rundo"], ["rv", "rviminfo"], ["sN", "sNext"], ["sa", "sargument"], ["sal", "sall"], ["san", "sandbox"], ["sav", "saveas"], ["sb", "sbuffer"], ["sbN", "sbNext"], ["sba", "sball"], ["sbf", "sbfirst"], ["sbl", "sblast"], ["sbm", "sbmodified"], ["sbn", "sbnext"], ["sbp", "sbprevious"], ["sbr", "sbrewind"], ["scrip", "scrip"], ["scrip", "scriptnames"], ["scripte", "scriptencoding"], ["scs", "scs"], ["scscope", "scscope"], ["se", "set"], ["setf", "setfiletype"], ["setg", "setglobal"], ["setl", "setlocal"], ["sf", "sfind"], ["sfir", "sfirst"], ["sh", "shell"], ["si", "si"], ["sig", "sig"], ["sign", "sign"], ["sil", "silent"], ["sim", "simalt"], ["sl", "sl"], ["sl", "sleep"], ["sla", "slast"], ["sm", "smagic"], ["sm", "smap"], ["sme", "sme"], ["smenu", "smenu"], ["sn", "snext"], ["sni", "sniff"], ["sno", "snomagic"], ["snoreme", "snoreme"], ["snoremenu", "snoremenu"], ["so", "so"], ["so", "source"], ["sor", "sort"], ["sp", "split"], ["spe", "spe"], ["spe", "spellgood"], ["spelld", "spelldump"], ["spelli", "spellinfo"], ["spellr", "spellrepall"], ["spellu", "spellundo"], ["spellw", "spellwrong"], ["spr", "sprevious"], ["sre", "srewind"], ["st", "st"], ["st", "stop"], ["sta", "stag"], ["star", "star"], ["star", "startinsert"], ["start", "start"], ["startg", "startgreplace"], ["startr", "startreplace"], ["stj", "stjump"], ["stopi", "stopinsert"], ["sts", "stselect"], ["sun", "sunhide"], ["sunme", "sunme"], ["sunmenu", "sunmenu"], ["sus", "suspend"], ["sv", "sview"], ["sw", "swapname"], ["sy", "sy"], ["syn", "syn"], ["sync", "sync"], ["syncbind", "syncbind"], ["syntime", "syntime"], ["t", "t"], ["tN", "tN"], ["tN", "tNext"], ["ta", "ta"], ["ta", "tag"], ["tab", "tab"], ["tabN", "tabN"], ["tabN", "tabNext"], ["tabc", "tabclose"], ["tabd", "tabdo"], ["tabe", "tabedit"], ["tabf", "tabfind"], ["tabfir", "tabfirst"], ["tabl", "tablast"], ["tabm", "tabmove"], ["tabn", "tabnext"], ["tabnew", "tabnew"], ["tabo", "tabonly"], ["tabp", "tabprevious"], ["tabr", "tabrewind"], ["tabs", "tabs"], ["tags", "tags"], ["tc", "tcl"], ["tcld", "tcldo"], ["tclf", "tclfile"], ["te", "tearoff"], ["tf", "tfirst"], ["th", "throw"], ["tj", "tjump"], ["tl", "tlast"], ["tm", "tm"], ["tm", "tmenu"], ["tn", "tn"], ["tn", "tnext"], ["to", "topleft"], ["tp", "tprevious"], ["tr", "tr"], ["tr", "trewind"], ["try", "try"], ["ts", "tselect"], ["tu", "tu"], ["tu", "tunmenu"], ["u", "u"], ["u", "undo"], ["un", "un"], ["una", "unabbreviate"], ["undoj", "undojoin"], ["undol", "undolist"], ["unh", "unhide"], ["unl", "unl"], ["unlo", "unlockvar"], ["uns", "unsilent"], ["up", "update"], ["v", "v"], ["ve", "ve"], ["ve", "version"], ["verb", "verbose"], ["vert", "vertical"], ["vi", "vi"], ["vi", "visual"], ["vie", "view"], ["vim", "vimgrep"], ["vimgrepa", "vimgrepadd"], ["viu", "viusage"], ["vmapc", "vmapclear"], ["vne", "vnew"], ["vs", "vsplit"], ["w", "w"], ["w", "write"], ["wN", "wNext"], ["wa", "wall"], ["wh", "while"], ["win", "win"], ["win", "winsize"], ["winc", "wincmd"], ["windo", "windo"], ["winp", "winpos"], ["wn", "wnext"], ["wp", "wprevious"], ["wq", "wq"], ["wqa", "wqall"], ["ws", "wsverb"], ["wundo", "wundo"], ["wv", "wviminfo"], ["x", "x"], ["x", "xit"], ["xa", "xall"], ["xmapc", "xmapclear"], ["xme", "xme"], ["xmenu", "xmenu"], ["xnoreme", "xnoreme"], ["xnoremenu", "xnoremenu"], ["xunme", "xunme"], ["xunmenu", "xunmenu"], ["xwininfo", "xwininfo"], ["y", "yank"]], :option=>[], :auto=>[["BufAdd", "BufAdd"], ["BufCreate", "BufCreate"], ["BufDelete", "BufDelete"], ["BufEnter", "BufEnter"], ["BufFilePost", "BufFilePost"], ["BufFilePre", "BufFilePre"], ["BufHidden", "BufHidden"], ["BufLeave", "BufLeave"], ["BufNew", "BufNew"], ["BufNewFile", "BufNewFile"], ["BufRead", "BufRead"], ["BufReadCmd", "BufReadCmd"], ["BufReadPost", "BufReadPost"], ["BufReadPre", "BufReadPre"], ["BufUnload", "BufUnload"], ["BufWinEnter", "BufWinEnter"], ["BufWinLeave", "BufWinLeave"], ["BufWipeout", "BufWipeout"], ["BufWrite", "BufWrite"], ["BufWriteCmd", "BufWriteCmd"], ["BufWritePost", "BufWritePost"], ["BufWritePre", "BufWritePre"], ["Cmd", "Cmd"], ["CmdwinEnter", "CmdwinEnter"], ["CmdwinLeave", "CmdwinLeave"], ["ColorScheme", "ColorScheme"], ["CompleteDone", "CompleteDone"], ["CursorHold", "CursorHold"], ["CursorHoldI", "CursorHoldI"], ["CursorMoved", "CursorMoved"], ["CursorMovedI", "CursorMovedI"], ["EncodingChanged", "EncodingChanged"], ["FileAppendCmd", "FileAppendCmd"], ["FileAppendPost", "FileAppendPost"], ["FileAppendPre", "FileAppendPre"], ["FileChangedRO", "FileChangedRO"], ["FileChangedShell", "FileChangedShell"], ["FileChangedShellPost", "FileChangedShellPost"], ["FileEncoding", "FileEncoding"], ["FileReadCmd", "FileReadCmd"], ["FileReadPost", "FileReadPost"], ["FileReadPre", "FileReadPre"], ["FileType", "FileType"], ["FileWriteCmd", "FileWriteCmd"], ["FileWritePost", "FileWritePost"], ["FileWritePre", "FileWritePre"], ["FilterReadPost", "FilterReadPost"], ["FilterReadPre", "FilterReadPre"], ["FilterWritePost", "FilterWritePost"], ["FilterWritePre", "FilterWritePre"], ["FocusGained", "FocusGained"], ["FocusLost", "FocusLost"], ["FuncUndefined", "FuncUndefined"], ["GUIEnter", "GUIEnter"], ["GUIFailed", "GUIFailed"], ["InsertChange", "InsertChange"], ["InsertCharPre", "InsertCharPre"], ["InsertEnter", "InsertEnter"], ["InsertLeave", "InsertLeave"], ["MenuPopup", "MenuPopup"], ["QuickFixCmdPost", "QuickFixCmdPost"], ["QuickFixCmdPre", "QuickFixCmdPre"], ["QuitPre", "QuitPre"], ["RemoteReply", "RemoteReply"], ["SessionLoadPost", "SessionLoadPost"], ["ShellCmdPost", "ShellCmdPost"], ["ShellFilterPost", "ShellFilterPost"], ["SourceCmd", "SourceCmd"], ["SourcePre", "SourcePre"], ["SpellFileMissing", "SpellFileMissing"], ["StdinReadPost", "StdinReadPost"], ["StdinReadPre", "StdinReadPre"], ["SwapExists", "SwapExists"], ["Syntax", "Syntax"], ["TabEnter", "TabEnter"], ["TabLeave", "TabLeave"], ["TermChanged", "TermChanged"], ["TermResponse", "TermResponse"], ["TextChanged", "TextChanged"], ["TextChangedI", "TextChangedI"], ["User", "User"], ["UserGettingBored", "UserGettingBored"], ["VimEnter", "VimEnter"], ["VimLeave", "VimLeave"], ["VimLeavePre", "VimLeavePre"], ["VimResized", "VimResized"], ["WinEnter", "WinEnter"], ["WinLeave", "WinLeave"], ["event", "event"]]}
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,59 @@
1
+ # -*- coding: utf-8 -*- #
2
+
3
+ module Rouge
4
+ module Lexers
5
+ class XML < RegexLexer
6
+ title "XML"
7
+ desc %q(<desc for="this-lexer">XML</desc>)
8
+ tag 'xml'
9
+ filenames *%w(*.xml *.xsl *.rss *.xslt *.xsd *.wsdl)
10
+ mimetypes *%w(
11
+ text/xml
12
+ application/xml
13
+ image/svg+xml
14
+ application/rss+xml
15
+ application/atom+xml
16
+ )
17
+
18
+ def self.analyze_text(text)
19
+ return 0.9 if text.doctype?
20
+ return 0.8 if text =~ /\A<\?xml\b/
21
+ start = text[0..1000]
22
+ return 0.6 if start =~ %r(<xml\b)
23
+ return 0.3 if start =~ %r(<.+?>.*?</.+?>)m
24
+ end
25
+
26
+ state :root do
27
+ rule /[^<&]+/, Text
28
+ rule /&\S*?;/, Name::Entity
29
+ rule /<!\[CDATA\[.*?\]\]\>/, Comment::Preproc
30
+ rule /<!--/, Comment, :comment
31
+ rule /<\?.*?\?>/, Comment::Preproc
32
+ rule /<![^>]*>/, Comment::Preproc
33
+
34
+ # open tags
35
+ rule %r(<\s*[\w:.-]+)m, Name::Tag, :tag
36
+
37
+ # self-closing tags
38
+ rule %r(<\s*/\s*[\w:.-]+\s*>)m, Name::Tag
39
+ end
40
+
41
+ state :comment do
42
+ rule /[^-]+/m, Comment
43
+ rule /-->/, Comment, :pop!
44
+ rule /-/, Comment
45
+ end
46
+
47
+ state :tag do
48
+ rule /\s+/m, Text
49
+ rule /[\w.:-]+\s*=/m, Name::Attribute, :attr
50
+ rule %r(/?\s*>), Name::Tag, :pop!
51
+ end
52
+
53
+ state :attr do
54
+ rule /\s+/m, Text
55
+ rule /".*?"|'.*?'|[^\s>]+/, Str, :pop!
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,364 @@
1
+ # -*- coding: utf-8 -*- #
2
+
3
+ module Rouge
4
+ module Lexers
5
+ class YAML < RegexLexer
6
+ title "YAML"
7
+ desc "Yaml Ain't Markup Language (yaml.org)"
8
+ mimetypes 'text/x-yaml'
9
+ tag 'yaml'
10
+ aliases 'yml'
11
+
12
+ def self.analyze_text(text)
13
+ # look for the %YAML directive
14
+ return 1 if text =~ /\A\s*%YAML/m
15
+ end
16
+
17
+ filenames '*.yaml', '*.yml'
18
+ # NB: Tabs are forbidden in YAML, which is why you see things
19
+ # like /[ ]+/.
20
+
21
+ # reset the indentation levels
22
+ def reset_indent
23
+ puts " yaml: reset_indent" if @debug
24
+ @indent_stack = [0]
25
+ @next_indent = 0
26
+ @block_scalar_indent = nil
27
+ end
28
+
29
+ def indent
30
+ raise 'empty indent stack!' if @indent_stack.empty?
31
+ @indent_stack.last
32
+ end
33
+
34
+ def dedent?(level)
35
+ level < self.indent
36
+ end
37
+
38
+ def indent?(level)
39
+ level > self.indent
40
+ end
41
+
42
+ # Save a possible indentation level
43
+ def save_indent(match)
44
+ @next_indent = match.size
45
+ puts " yaml: indent: #{self.indent}/#@next_indent" if @debug
46
+ puts " yaml: popping indent stack - before: #@indent_stack" if @debug
47
+ if dedent?(@next_indent)
48
+ @indent_stack.pop while dedent?(@next_indent)
49
+ puts " yaml: popping indent stack - after: #@indent_stack" if @debug
50
+ puts " yaml: indent: #{self.indent}/#@next_indent" if @debug
51
+
52
+ # dedenting to a state not previously indented to is an error
53
+ [match[0...self.indent], match[self.indent..-1]]
54
+ else
55
+ [match, '']
56
+ end
57
+ end
58
+
59
+ def continue_indent(match)
60
+ puts " yaml: continue_indent" if @debug
61
+ @next_indent += match.size
62
+ end
63
+
64
+ def set_indent(match, opts={})
65
+ if indent < @next_indent
66
+ @indent_stack << @next_indent
67
+ end
68
+
69
+ @next_indent += match.size unless opts[:implicit]
70
+ end
71
+
72
+ plain_scalar_start = /[^ \t\n\r\f\v?:,\[\]{}#&*!\|>'"%@`]/
73
+
74
+ start { reset_indent }
75
+
76
+ state :basic do
77
+ rule /#.*$/, Comment::Single
78
+ end
79
+
80
+ state :root do
81
+ mixin :basic
82
+
83
+ rule /\n+/, Text
84
+
85
+ # trailing or pre-comment whitespace
86
+ rule /[ ]+(?=#|$)/, Text
87
+
88
+ rule /^%YAML\b/ do
89
+ token Name::Tag
90
+ reset_indent
91
+ push :yaml_directive
92
+ end
93
+
94
+ rule /^%TAG\b/ do
95
+ token Name::Tag
96
+ reset_indent
97
+ push :tag_directive
98
+ end
99
+
100
+ # doc-start and doc-end indicators
101
+ rule /^(?:---|\.\.\.)(?= |$)/ do
102
+ token Name::Namespace
103
+ reset_indent
104
+ push :block_line
105
+ end
106
+
107
+ # indentation spaces
108
+ rule /[ ]*(?!\s|$)/ do |m|
109
+ text, err = save_indent(m[0])
110
+ token Text, text
111
+ token Error, err
112
+ push :block_line; push :indentation
113
+ end
114
+ end
115
+
116
+ state :indentation do
117
+ rule(/\s*?\n/) { token Text; pop! 2 }
118
+ # whitespace preceding block collection indicators
119
+ rule /[ ]+(?=[-:?](?:[ ]|$))/ do |m|
120
+ token Text
121
+ continue_indent(m[0])
122
+ end
123
+
124
+ # block collection indicators
125
+ rule(/[?:-](?=[ ]|$)/) { |m| token Punctuation::Indicator; set_indent m[0] }
126
+
127
+ # the beginning of a block line
128
+ rule(/[ ]*/) { |m| token Text; continue_indent(m[0]); pop! }
129
+ end
130
+
131
+ # indented line in the block context
132
+ state :block_line do
133
+ # line end
134
+ rule /[ ]*(?=#|$)/, Text, :pop!
135
+ rule /[ ]+/, Text
136
+ # tags, anchors, and aliases
137
+ mixin :descriptors
138
+ # block collections and scalars
139
+ mixin :block_nodes
140
+ # flow collections and quoed scalars
141
+ mixin :flow_nodes
142
+
143
+ # a plain scalar
144
+ rule /(?=#{plain_scalar_start}|[?:-][^ \t\n\r\f\v])/ do
145
+ token Name::Variable
146
+ push :plain_scalar_in_block_context
147
+ end
148
+ end
149
+
150
+ state :descriptors do
151
+ # a full-form tag
152
+ rule /!<[0-9A-Za-z;\/?:@&=+$,_.!~*'()\[\]%-]+>/, Keyword::Type
153
+
154
+ # a tag in the form '!', '!suffix' or '!handle!suffix'
155
+ rule %r(
156
+ (?:![\w-]+)? # handle
157
+ !(?:[\w;/?:@&=+$,.!~*\'()\[\]%-]*) # suffix
158
+ )x, Keyword::Type
159
+
160
+ # an anchor
161
+ rule /&[\w-]+/, Name::Label
162
+
163
+ # an alias
164
+ rule /\*[\w-]+/, Name::Variable
165
+ end
166
+
167
+ state :block_nodes do
168
+ # implicit key
169
+ rule /:(?=\s|$)/ do |m|
170
+ token Punctuation::Indicator
171
+ set_indent m[0], :implicit => true
172
+ end
173
+
174
+ # literal and folded scalars
175
+ rule /[\|>]/ do
176
+ token Punctuation::Indicator
177
+ push :block_scalar_content
178
+ push :block_scalar_header
179
+ end
180
+ end
181
+
182
+ state :flow_nodes do
183
+ rule /\[/, Punctuation::Indicator, :flow_sequence
184
+ rule /\{/, Punctuation::Indicator, :flow_mapping
185
+ rule /'/, Str::Single, :single_quoted_scalar
186
+ rule /"/, Str::Double, :double_quoted_scalar
187
+ end
188
+
189
+ state :flow_collection do
190
+ rule /\s+/m, Text
191
+ mixin :basic
192
+ rule /[?:,]/, Punctuation::Indicator
193
+ mixin :descriptors
194
+ mixin :flow_nodes
195
+
196
+ rule /(?=#{plain_scalar_start})/ do
197
+ push :plain_scalar_in_flow_context
198
+ end
199
+ end
200
+
201
+ state :flow_sequence do
202
+ rule /\]/, Punctuation::Indicator, :pop!
203
+ mixin :flow_collection
204
+ end
205
+
206
+ state :flow_mapping do
207
+ rule /\}/, Punctuation::Indicator, :pop!
208
+ mixin :flow_collection
209
+ end
210
+
211
+ state :block_scalar_content do
212
+ rule /\n+/, Text
213
+
214
+ # empty lines never dedent, but they might be part of the scalar.
215
+ rule /^[ ]+$/ do |m|
216
+ text = m[0]
217
+ indent_size = text.size
218
+
219
+ indent_mark = @block_scalar_indent || indent_size
220
+
221
+ token Text, text[0...indent_mark]
222
+ token Name::Constant, text[indent_mark..-1]
223
+ end
224
+
225
+ # TODO: ^ doesn't actually seem to affect the match at all.
226
+ # Find a way to work around this limitation.
227
+ rule /^[ ]*/ do |m|
228
+ token Text
229
+
230
+ indent_size = m[0].size
231
+
232
+ dedent_level = @block_scalar_indent || self.indent
233
+ @block_scalar_indent ||= indent_size
234
+
235
+ if indent_size < dedent_level
236
+ pop! 2
237
+ end
238
+ end
239
+
240
+ rule /[^\n\r\f\v]+/, Name::Constant
241
+ end
242
+
243
+ state :block_scalar_header do
244
+ # optional indentation indicator and chomping flag, in either order
245
+ rule %r(
246
+ (
247
+ ([1-9])[+-]? | [+-]?([1-9])?
248
+ )(?=[ ]|$)
249
+ )x do |m|
250
+ @block_scalar_indent = nil
251
+ goto :ignored_line
252
+ next if m[0].empty?
253
+
254
+ increment = m[1] || m[2]
255
+ if increment
256
+ @block_scalar_indent = indent + increment.to_i
257
+ end
258
+
259
+ token Punctuation::Indicator
260
+ end
261
+ end
262
+
263
+ state :ignored_line do
264
+ mixin :basic
265
+ rule /[ ]+/, Text
266
+ rule /\n/, Text, :pop!
267
+ end
268
+
269
+ state :quoted_scalar_whitespaces do
270
+ # leading and trailing whitespace is ignored
271
+ rule /^[ ]+/, Text
272
+ rule /[ ]+$/, Text
273
+
274
+ rule /\n+/m, Text
275
+
276
+ rule /[ ]+/, Name::Variable
277
+ end
278
+
279
+ state :single_quoted_scalar do
280
+ mixin :quoted_scalar_whitespaces
281
+ rule /\\'/, Str::Escape
282
+ rule /'/, Str, :pop!
283
+ rule /[^\s']+/, Str
284
+ end
285
+
286
+ state :double_quoted_scalar do
287
+ rule /"/, Str, :pop!
288
+ mixin :quoted_scalar_whitespaces
289
+ # escapes
290
+ rule /\\[0abt\tn\nvfre "\\N_LP]/, Str::Escape
291
+ rule /\\(?:x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,
292
+ Str::Escape
293
+ rule /[^ \t\n\r\f\v"\\]+/, Str
294
+ end
295
+
296
+ state :plain_scalar_in_block_context_new_line do
297
+ rule /^[ ]+\n/, Text
298
+ rule /\n+/m, Text
299
+ rule /^(?=---|\.\.\.)/ do
300
+ pop! 3
301
+ end
302
+
303
+ # dedent detection
304
+ rule /^[ ]*/ do |m|
305
+ token Text
306
+ pop!
307
+
308
+ indent_size = m[0].size
309
+
310
+ # dedent = end of scalar
311
+ if indent_size <= self.indent
312
+ pop!
313
+ save_indent(m[0])
314
+ push :indentation
315
+ end
316
+ end
317
+ end
318
+
319
+ state :plain_scalar_in_block_context do
320
+ # the : indicator ends a scalar
321
+ rule /[ ]*(?=:[ \n]|:$)/, Text, :pop!
322
+ rule /[ ]*:/, Str
323
+ rule /[ ]+(?=#)/, Text, :pop!
324
+ rule /[ ]+$/, Text
325
+ # check for new documents or dedents at the new line
326
+ rule /\n+/ do
327
+ token Text
328
+ push :plain_scalar_in_block_context_new_line
329
+ end
330
+
331
+ rule /[ ]+/, Str
332
+ # regular non-whitespace characters
333
+ rule /[^\s:]+/, Str
334
+ end
335
+
336
+ state :plain_scalar_in_flow_context do
337
+ rule /[ ]*(?=[,:?\[\]{}])/, Text, :pop!
338
+ rule /[ ]+(?=#)/, Text, :pop!
339
+ rule /^[ ]+/, Text
340
+ rule /[ ]+$/, Text
341
+ rule /\n+/, Text
342
+ rule /[ ]+/, Name::Variable
343
+ rule /[^\s,:?\[\]{}]+/, Name::Variable
344
+ end
345
+
346
+ state :yaml_directive do
347
+ rule /([ ]+)(\d+\.\d+)/ do
348
+ groups Text, Num
349
+ goto :ignored_line
350
+ end
351
+ end
352
+
353
+ state :tag_directive do
354
+ rule %r(
355
+ ([ ]+)(!|![\w-]*!) # prefix
356
+ ([ ]+)(!|!?[\w;/?:@&=+$,.!~*'()\[\]%-]+) # tag handle
357
+ )x do
358
+ groups Text, Keyword::Type, Text, Keyword::Type
359
+ goto :ignored_line
360
+ end
361
+ end
362
+ end
363
+ end
364
+ end
@@ -0,0 +1,30 @@
1
+ # -*- coding: utf-8 -*- #
2
+
3
+ # this file is not require'd from the root. To use this plugin, run:
4
+ #
5
+ # require 'rouge/plugins/redcarpet'
6
+
7
+ module Rouge
8
+ module Plugins
9
+ module Redcarpet
10
+ def block_code(code, language)
11
+ lexer = Lexer.find_fancy(language, code) || Lexers::PlainText
12
+
13
+ # XXX HACK: Redcarpet strips hard tabs out of code blocks,
14
+ # so we assume you're not using leading spaces that aren't tabs,
15
+ # and just replace them here.
16
+ if lexer.tag == 'make'
17
+ code.gsub! /^ /, "\t"
18
+ end
19
+
20
+ formatter = rouge_formatter(lexer)
21
+ formatter.format(lexer.lex(code))
22
+ end
23
+
24
+ # override this method for custom formatting behavior
25
+ def rouge_formatter(lexer)
26
+ Formatters::HTML.new(:css_class => "highlight #{lexer.tag}")
27
+ end
28
+ end
29
+ end
30
+ end