rouge 3.17.0
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.
- checksums.yaml +7 -0
- data/Gemfile +40 -0
- data/LICENSE +186 -0
- data/bin/rougify +18 -0
- data/lib/rouge.rb +93 -0
- data/lib/rouge/cli.rb +498 -0
- data/lib/rouge/demos/abap +6 -0
- data/lib/rouge/demos/actionscript +4 -0
- data/lib/rouge/demos/ada +26 -0
- data/lib/rouge/demos/apache +21 -0
- data/lib/rouge/demos/apex +9 -0
- data/lib/rouge/demos/apiblueprint +33 -0
- data/lib/rouge/demos/applescript +2 -0
- data/lib/rouge/demos/armasm +12 -0
- data/lib/rouge/demos/awk +4 -0
- data/lib/rouge/demos/batchfile +3 -0
- data/lib/rouge/demos/bbcbasic +6 -0
- data/lib/rouge/demos/biml +38 -0
- data/lib/rouge/demos/bpf +7 -0
- data/lib/rouge/demos/brainfuck +5 -0
- data/lib/rouge/demos/bsl +7 -0
- data/lib/rouge/demos/c +8 -0
- data/lib/rouge/demos/ceylon +7 -0
- data/lib/rouge/demos/cfscript +18 -0
- data/lib/rouge/demos/clean +6 -0
- data/lib/rouge/demos/clojure +5 -0
- data/lib/rouge/demos/cmake +7 -0
- data/lib/rouge/demos/cmhg +8 -0
- data/lib/rouge/demos/coffeescript +5 -0
- data/lib/rouge/demos/common_lisp +1 -0
- data/lib/rouge/demos/conf +4 -0
- data/lib/rouge/demos/console +6 -0
- data/lib/rouge/demos/coq +13 -0
- data/lib/rouge/demos/cpp +8 -0
- data/lib/rouge/demos/crystal +45 -0
- data/lib/rouge/demos/csharp +5 -0
- data/lib/rouge/demos/css +4 -0
- data/lib/rouge/demos/csvs +8 -0
- data/lib/rouge/demos/cuda +11 -0
- data/lib/rouge/demos/cython +6 -0
- data/lib/rouge/demos/d +16 -0
- data/lib/rouge/demos/dart +6 -0
- data/lib/rouge/demos/diff +7 -0
- data/lib/rouge/demos/digdag +19 -0
- data/lib/rouge/demos/docker +9 -0
- data/lib/rouge/demos/dot +5 -0
- data/lib/rouge/demos/ecl +18 -0
- data/lib/rouge/demos/eex +1 -0
- data/lib/rouge/demos/eiffel +30 -0
- data/lib/rouge/demos/elixir +1 -0
- data/lib/rouge/demos/elm +4 -0
- data/lib/rouge/demos/epp +4 -0
- data/lib/rouge/demos/erb +1 -0
- data/lib/rouge/demos/erlang +7 -0
- data/lib/rouge/demos/escape +3 -0
- data/lib/rouge/demos/factor +5 -0
- data/lib/rouge/demos/fortran +22 -0
- data/lib/rouge/demos/freefem +16 -0
- data/lib/rouge/demos/fsharp +12 -0
- data/lib/rouge/demos/gdscript +18 -0
- data/lib/rouge/demos/ghc-core +26 -0
- data/lib/rouge/demos/gherkin +17 -0
- data/lib/rouge/demos/glsl +14 -0
- data/lib/rouge/demos/go +7 -0
- data/lib/rouge/demos/gradle +10 -0
- data/lib/rouge/demos/graphql +17 -0
- data/lib/rouge/demos/groovy +9 -0
- data/lib/rouge/demos/hack +5 -0
- data/lib/rouge/demos/haml +5 -0
- data/lib/rouge/demos/handlebars +7 -0
- data/lib/rouge/demos/haskell +6 -0
- data/lib/rouge/demos/haxe +5 -0
- data/lib/rouge/demos/hcl +7 -0
- data/lib/rouge/demos/hocon +8 -0
- data/lib/rouge/demos/hql +5 -0
- data/lib/rouge/demos/html +8 -0
- data/lib/rouge/demos/http +14 -0
- data/lib/rouge/demos/hylang +10 -0
- data/lib/rouge/demos/idlang +8 -0
- data/lib/rouge/demos/igorpro +9 -0
- data/lib/rouge/demos/ini +4 -0
- data/lib/rouge/demos/io +11 -0
- data/lib/rouge/demos/irb +4 -0
- data/lib/rouge/demos/irb_output +2 -0
- data/lib/rouge/demos/java +5 -0
- data/lib/rouge/demos/javascript +1 -0
- data/lib/rouge/demos/jinja +9 -0
- data/lib/rouge/demos/jsl +3 -0
- data/lib/rouge/demos/json +1 -0
- data/lib/rouge/demos/json-doc +1 -0
- data/lib/rouge/demos/jsonnet +28 -0
- data/lib/rouge/demos/jsp +29 -0
- data/lib/rouge/demos/jsx +17 -0
- data/lib/rouge/demos/julia +11 -0
- data/lib/rouge/demos/kotlin +3 -0
- data/lib/rouge/demos/lasso +12 -0
- data/lib/rouge/demos/liquid +10 -0
- data/lib/rouge/demos/literate_coffeescript +3 -0
- data/lib/rouge/demos/literate_haskell +7 -0
- data/lib/rouge/demos/llvm +20 -0
- data/lib/rouge/demos/lua +12 -0
- data/lib/rouge/demos/lustre +6 -0
- data/lib/rouge/demos/lutin +18 -0
- data/lib/rouge/demos/m68k +16 -0
- data/lib/rouge/demos/magik +6 -0
- data/lib/rouge/demos/make +6 -0
- data/lib/rouge/demos/markdown +4 -0
- data/lib/rouge/demos/mason +22 -0
- data/lib/rouge/demos/mathematica +8 -0
- data/lib/rouge/demos/matlab +6 -0
- data/lib/rouge/demos/minizinc +23 -0
- data/lib/rouge/demos/moonscript +16 -0
- data/lib/rouge/demos/mosel +10 -0
- data/lib/rouge/demos/msgtrans +4 -0
- data/lib/rouge/demos/mxml +22 -0
- data/lib/rouge/demos/nasm +26 -0
- data/lib/rouge/demos/nesasm +11 -0
- data/lib/rouge/demos/nginx +5 -0
- data/lib/rouge/demos/nim +27 -0
- data/lib/rouge/demos/nix +19 -0
- data/lib/rouge/demos/objective_c +18 -0
- data/lib/rouge/demos/objective_cpp +17 -0
- data/lib/rouge/demos/ocaml +12 -0
- data/lib/rouge/demos/openedge +4 -0
- data/lib/rouge/demos/opentype_feature_file +6 -0
- data/lib/rouge/demos/pascal +14 -0
- data/lib/rouge/demos/perl +5 -0
- data/lib/rouge/demos/php +3 -0
- data/lib/rouge/demos/plaintext +1 -0
- data/lib/rouge/demos/plist +11 -0
- data/lib/rouge/demos/pony +17 -0
- data/lib/rouge/demos/powershell +13 -0
- data/lib/rouge/demos/praat +26 -0
- data/lib/rouge/demos/prolog +9 -0
- data/lib/rouge/demos/prometheus +9 -0
- data/lib/rouge/demos/properties +7 -0
- data/lib/rouge/demos/protobuf +5 -0
- data/lib/rouge/demos/puppet +6 -0
- data/lib/rouge/demos/python +6 -0
- data/lib/rouge/demos/q +8 -0
- data/lib/rouge/demos/qml +9 -0
- data/lib/rouge/demos/r +8 -0
- data/lib/rouge/demos/racket +24 -0
- data/lib/rouge/demos/reasonml +12 -0
- data/lib/rouge/demos/robot_framework +27 -0
- data/lib/rouge/demos/ruby +9 -0
- data/lib/rouge/demos/rust +12 -0
- data/lib/rouge/demos/sas +13 -0
- data/lib/rouge/demos/sass +3 -0
- data/lib/rouge/demos/scala +3 -0
- data/lib/rouge/demos/scheme +4 -0
- data/lib/rouge/demos/scss +5 -0
- data/lib/rouge/demos/sed +4 -0
- data/lib/rouge/demos/shell +2 -0
- data/lib/rouge/demos/sieve +10 -0
- data/lib/rouge/demos/slice +10 -0
- data/lib/rouge/demos/slim +17 -0
- data/lib/rouge/demos/smalltalk +6 -0
- data/lib/rouge/demos/smarty +12 -0
- data/lib/rouge/demos/sml +4 -0
- data/lib/rouge/demos/sparql +6 -0
- data/lib/rouge/demos/sqf +14 -0
- data/lib/rouge/demos/sql +1 -0
- data/lib/rouge/demos/supercollider +11 -0
- data/lib/rouge/demos/swift +5 -0
- data/lib/rouge/demos/tap +5 -0
- data/lib/rouge/demos/tcl +1 -0
- data/lib/rouge/demos/terraform +16 -0
- data/lib/rouge/demos/tex +1 -0
- data/lib/rouge/demos/toml +9 -0
- data/lib/rouge/demos/tsx +17 -0
- data/lib/rouge/demos/ttcn3 +6 -0
- data/lib/rouge/demos/tulip +13 -0
- data/lib/rouge/demos/turtle +26 -0
- data/lib/rouge/demos/twig +9 -0
- data/lib/rouge/demos/typescript +1 -0
- data/lib/rouge/demos/vala +8 -0
- data/lib/rouge/demos/vb +4 -0
- data/lib/rouge/demos/vcl +12 -0
- data/lib/rouge/demos/verilog +27 -0
- data/lib/rouge/demos/vhdl +23 -0
- data/lib/rouge/demos/viml +14 -0
- data/lib/rouge/demos/vue +11 -0
- data/lib/rouge/demos/wollok +11 -0
- data/lib/rouge/demos/xml +2 -0
- data/lib/rouge/demos/xojo +14 -0
- data/lib/rouge/demos/xpath +2 -0
- data/lib/rouge/demos/xquery +22 -0
- data/lib/rouge/demos/yaml +4 -0
- data/lib/rouge/formatter.rb +112 -0
- data/lib/rouge/formatters/html.rb +56 -0
- data/lib/rouge/formatters/html_inline.rb +31 -0
- data/lib/rouge/formatters/html_legacy.rb +45 -0
- data/lib/rouge/formatters/html_line_table.rb +53 -0
- data/lib/rouge/formatters/html_linewise.rb +23 -0
- data/lib/rouge/formatters/html_pygments.rb +18 -0
- data/lib/rouge/formatters/html_table.rb +51 -0
- data/lib/rouge/formatters/null.rb +20 -0
- data/lib/rouge/formatters/terminal256.rb +198 -0
- data/lib/rouge/formatters/terminal_truecolor.rb +37 -0
- data/lib/rouge/formatters/tex.rb +92 -0
- data/lib/rouge/guesser.rb +57 -0
- data/lib/rouge/guessers/disambiguation.rb +136 -0
- data/lib/rouge/guessers/filename.rb +27 -0
- data/lib/rouge/guessers/glob_mapping.rb +45 -0
- data/lib/rouge/guessers/mimetype.rb +16 -0
- data/lib/rouge/guessers/modeline.rb +46 -0
- data/lib/rouge/guessers/source.rb +31 -0
- data/lib/rouge/guessers/util.rb +34 -0
- data/lib/rouge/lexer.rb +516 -0
- data/lib/rouge/lexers/abap.rb +240 -0
- data/lib/rouge/lexers/actionscript.rb +196 -0
- data/lib/rouge/lexers/ada.rb +162 -0
- data/lib/rouge/lexers/apache.rb +73 -0
- data/lib/rouge/lexers/apache/keywords.yml +764 -0
- data/lib/rouge/lexers/apex.rb +126 -0
- data/lib/rouge/lexers/apiblueprint.rb +49 -0
- data/lib/rouge/lexers/apple_script.rb +370 -0
- data/lib/rouge/lexers/armasm.rb +145 -0
- data/lib/rouge/lexers/awk.rb +162 -0
- data/lib/rouge/lexers/batchfile.rb +164 -0
- data/lib/rouge/lexers/bbcbasic.rb +112 -0
- data/lib/rouge/lexers/biml.rb +43 -0
- data/lib/rouge/lexers/bpf.rb +118 -0
- data/lib/rouge/lexers/brainfuck.rb +53 -0
- data/lib/rouge/lexers/bsl.rb +82 -0
- data/lib/rouge/lexers/c.rb +190 -0
- data/lib/rouge/lexers/ceylon.rb +96 -0
- data/lib/rouge/lexers/cfscript.rb +154 -0
- data/lib/rouge/lexers/clean.rb +156 -0
- data/lib/rouge/lexers/clojure.rb +113 -0
- data/lib/rouge/lexers/cmake.rb +207 -0
- data/lib/rouge/lexers/cmhg.rb +34 -0
- data/lib/rouge/lexers/coffeescript.rb +215 -0
- data/lib/rouge/lexers/common_lisp.rb +346 -0
- data/lib/rouge/lexers/conf.rb +25 -0
- data/lib/rouge/lexers/console.rb +174 -0
- data/lib/rouge/lexers/coq.rb +191 -0
- data/lib/rouge/lexers/cpp.rb +82 -0
- data/lib/rouge/lexers/crystal.rb +430 -0
- data/lib/rouge/lexers/csharp.rb +114 -0
- data/lib/rouge/lexers/css.rb +274 -0
- data/lib/rouge/lexers/csvs.rb +44 -0
- data/lib/rouge/lexers/cuda.rb +35 -0
- data/lib/rouge/lexers/cython.rb +151 -0
- data/lib/rouge/lexers/d.rb +177 -0
- data/lib/rouge/lexers/dart.rb +105 -0
- data/lib/rouge/lexers/diff.rb +37 -0
- data/lib/rouge/lexers/digdag.rb +70 -0
- data/lib/rouge/lexers/docker.rb +51 -0
- data/lib/rouge/lexers/dot.rb +69 -0
- data/lib/rouge/lexers/ecl.rb +175 -0
- data/lib/rouge/lexers/eex.rb +52 -0
- data/lib/rouge/lexers/eiffel.rb +66 -0
- data/lib/rouge/lexers/elixir.rb +149 -0
- data/lib/rouge/lexers/elm.rb +90 -0
- data/lib/rouge/lexers/epp.rb +51 -0
- data/lib/rouge/lexers/erb.rb +53 -0
- data/lib/rouge/lexers/erlang.rb +115 -0
- data/lib/rouge/lexers/escape.rb +58 -0
- data/lib/rouge/lexers/factor.rb +303 -0
- data/lib/rouge/lexers/fortran.rb +178 -0
- data/lib/rouge/lexers/freefem.rb +240 -0
- data/lib/rouge/lexers/fsharp.rb +119 -0
- data/lib/rouge/lexers/gdscript.rb +171 -0
- data/lib/rouge/lexers/ghc_core.rb +151 -0
- data/lib/rouge/lexers/gherkin.rb +140 -0
- data/lib/rouge/lexers/gherkin/keywords.rb +16 -0
- data/lib/rouge/lexers/glsl.rb +132 -0
- data/lib/rouge/lexers/go.rb +175 -0
- data/lib/rouge/lexers/gradle.rb +38 -0
- data/lib/rouge/lexers/graphql.rb +261 -0
- data/lib/rouge/lexers/groovy.rb +111 -0
- data/lib/rouge/lexers/hack.rb +49 -0
- data/lib/rouge/lexers/haml.rb +226 -0
- data/lib/rouge/lexers/handlebars.rb +91 -0
- data/lib/rouge/lexers/haskell.rb +199 -0
- data/lib/rouge/lexers/haxe.rb +246 -0
- data/lib/rouge/lexers/hcl.rb +163 -0
- data/lib/rouge/lexers/hocon.rb +86 -0
- data/lib/rouge/lexers/hql.rb +139 -0
- data/lib/rouge/lexers/html.rb +141 -0
- data/lib/rouge/lexers/http.rb +81 -0
- data/lib/rouge/lexers/hylang.rb +94 -0
- data/lib/rouge/lexers/idlang.rb +312 -0
- data/lib/rouge/lexers/igorpro.rb +664 -0
- data/lib/rouge/lexers/ini.rb +54 -0
- data/lib/rouge/lexers/io.rb +69 -0
- data/lib/rouge/lexers/irb.rb +67 -0
- data/lib/rouge/lexers/java.rb +91 -0
- data/lib/rouge/lexers/javascript.rb +279 -0
- data/lib/rouge/lexers/jinja.rb +154 -0
- data/lib/rouge/lexers/jsl.rb +55 -0
- data/lib/rouge/lexers/json.rb +69 -0
- data/lib/rouge/lexers/json_doc.rb +25 -0
- data/lib/rouge/lexers/jsonnet.rb +152 -0
- data/lib/rouge/lexers/jsp.rb +120 -0
- data/lib/rouge/lexers/jsx.rb +104 -0
- data/lib/rouge/lexers/julia.rb +290 -0
- data/lib/rouge/lexers/kotlin.rb +127 -0
- data/lib/rouge/lexers/lasso.rb +215 -0
- data/lib/rouge/lexers/lasso/keywords.yml +446 -0
- data/lib/rouge/lexers/liquid.rb +285 -0
- data/lib/rouge/lexers/literate_coffeescript.rb +34 -0
- data/lib/rouge/lexers/literate_haskell.rb +37 -0
- data/lib/rouge/lexers/llvm.rb +97 -0
- data/lib/rouge/lexers/lua.rb +164 -0
- data/lib/rouge/lexers/lua/builtins.rb +24 -0
- data/lib/rouge/lexers/lustre.rb +79 -0
- data/lib/rouge/lexers/lutin.rb +33 -0
- data/lib/rouge/lexers/m68k.rb +143 -0
- data/lib/rouge/lexers/magik.rb +127 -0
- data/lib/rouge/lexers/make.rb +135 -0
- data/lib/rouge/lexers/markdown.rb +182 -0
- data/lib/rouge/lexers/mason.rb +110 -0
- data/lib/rouge/lexers/mathematica.rb +96 -0
- data/lib/rouge/lexers/mathematica/builtins.rb +13 -0
- data/lib/rouge/lexers/matlab.rb +81 -0
- data/lib/rouge/lexers/matlab/builtins.yml +3515 -0
- data/lib/rouge/lexers/minizinc.rb +87 -0
- data/lib/rouge/lexers/moonscript.rb +115 -0
- data/lib/rouge/lexers/mosel.rb +232 -0
- data/lib/rouge/lexers/msgtrans.rb +26 -0
- data/lib/rouge/lexers/mxml.rb +69 -0
- data/lib/rouge/lexers/nasm.rb +72 -0
- data/lib/rouge/lexers/nesasm.rb +78 -0
- data/lib/rouge/lexers/nginx.rb +72 -0
- data/lib/rouge/lexers/nim.rb +154 -0
- data/lib/rouge/lexers/nix.rb +211 -0
- data/lib/rouge/lexers/objective_c.rb +21 -0
- data/lib/rouge/lexers/objective_c/common.rb +184 -0
- data/lib/rouge/lexers/objective_cpp.rb +31 -0
- data/lib/rouge/lexers/ocaml.rb +65 -0
- data/lib/rouge/lexers/ocaml/common.rb +53 -0
- data/lib/rouge/lexers/openedge.rb +429 -0
- data/lib/rouge/lexers/opentype_feature_file.rb +113 -0
- data/lib/rouge/lexers/pascal.rb +67 -0
- data/lib/rouge/lexers/perl.rb +231 -0
- data/lib/rouge/lexers/php.rb +216 -0
- data/lib/rouge/lexers/php/builtins.rb +203 -0
- data/lib/rouge/lexers/plain_text.rb +27 -0
- data/lib/rouge/lexers/plist.rb +47 -0
- data/lib/rouge/lexers/pony.rb +94 -0
- data/lib/rouge/lexers/powershell.rb +230 -0
- data/lib/rouge/lexers/praat.rb +351 -0
- data/lib/rouge/lexers/prolog.rb +67 -0
- data/lib/rouge/lexers/prometheus.rb +123 -0
- data/lib/rouge/lexers/properties.rb +52 -0
- data/lib/rouge/lexers/protobuf.rb +71 -0
- data/lib/rouge/lexers/puppet.rb +129 -0
- data/lib/rouge/lexers/python.rb +248 -0
- data/lib/rouge/lexers/q.rb +126 -0
- data/lib/rouge/lexers/qml.rb +74 -0
- data/lib/rouge/lexers/r.rb +89 -0
- data/lib/rouge/lexers/racket.rb +545 -0
- data/lib/rouge/lexers/reasonml.rb +65 -0
- data/lib/rouge/lexers/robot_framework.rb +249 -0
- data/lib/rouge/lexers/ruby.rb +444 -0
- data/lib/rouge/lexers/rust.rb +193 -0
- data/lib/rouge/lexers/sas.rb +563 -0
- data/lib/rouge/lexers/sass.rb +75 -0
- data/lib/rouge/lexers/sass/common.rb +181 -0
- data/lib/rouge/lexers/scala.rb +169 -0
- data/lib/rouge/lexers/scheme.rb +113 -0
- data/lib/rouge/lexers/scss.rb +35 -0
- data/lib/rouge/lexers/sed.rb +173 -0
- data/lib/rouge/lexers/shell.rb +201 -0
- data/lib/rouge/lexers/sieve.rb +97 -0
- data/lib/rouge/lexers/slice.rb +32 -0
- data/lib/rouge/lexers/slim.rb +229 -0
- data/lib/rouge/lexers/smalltalk.rb +117 -0
- data/lib/rouge/lexers/smarty.rb +81 -0
- data/lib/rouge/lexers/sml.rb +345 -0
- data/lib/rouge/lexers/sparql.rb +129 -0
- data/lib/rouge/lexers/sqf.rb +109 -0
- data/lib/rouge/lexers/sqf/commands.rb +15 -0
- data/lib/rouge/lexers/sql.rb +161 -0
- data/lib/rouge/lexers/supercollider.rb +116 -0
- data/lib/rouge/lexers/swift.rb +186 -0
- data/lib/rouge/lexers/tap.rb +89 -0
- data/lib/rouge/lexers/tcl.rb +193 -0
- data/lib/rouge/lexers/terraform.rb +113 -0
- data/lib/rouge/lexers/tex.rb +70 -0
- data/lib/rouge/lexers/toml.rb +106 -0
- data/lib/rouge/lexers/tsx.rb +20 -0
- data/lib/rouge/lexers/ttcn3.rb +119 -0
- data/lib/rouge/lexers/tulip.rb +108 -0
- data/lib/rouge/lexers/turtle.rb +61 -0
- data/lib/rouge/lexers/twig.rb +40 -0
- data/lib/rouge/lexers/typescript.rb +30 -0
- data/lib/rouge/lexers/typescript/common.rb +34 -0
- data/lib/rouge/lexers/vala.rb +78 -0
- data/lib/rouge/lexers/varnish.rb +168 -0
- data/lib/rouge/lexers/vb.rb +165 -0
- data/lib/rouge/lexers/verilog.rb +163 -0
- data/lib/rouge/lexers/vhdl.rb +98 -0
- data/lib/rouge/lexers/viml.rb +102 -0
- data/lib/rouge/lexers/viml/keywords.rb +14 -0
- data/lib/rouge/lexers/vue.rb +124 -0
- data/lib/rouge/lexers/wollok.rb +104 -0
- data/lib/rouge/lexers/xml.rb +54 -0
- data/lib/rouge/lexers/xojo.rb +61 -0
- data/lib/rouge/lexers/xpath.rb +332 -0
- data/lib/rouge/lexers/xquery.rb +145 -0
- data/lib/rouge/lexers/yaml.rb +376 -0
- data/lib/rouge/plugins/redcarpet.rb +37 -0
- data/lib/rouge/regex_lexer.rb +443 -0
- data/lib/rouge/template_lexer.rb +21 -0
- data/lib/rouge/tex_theme_renderer.rb +132 -0
- data/lib/rouge/text_analyzer.rb +50 -0
- data/lib/rouge/theme.rb +218 -0
- data/lib/rouge/themes/base16.rb +131 -0
- data/lib/rouge/themes/bw.rb +41 -0
- data/lib/rouge/themes/colorful.rb +68 -0
- data/lib/rouge/themes/github.rb +72 -0
- data/lib/rouge/themes/gruvbox.rb +168 -0
- data/lib/rouge/themes/igor_pro.rb +21 -0
- data/lib/rouge/themes/magritte.rb +78 -0
- data/lib/rouge/themes/molokai.rb +83 -0
- data/lib/rouge/themes/monokai.rb +93 -0
- data/lib/rouge/themes/monokai_sublime.rb +93 -0
- data/lib/rouge/themes/pastie.rb +70 -0
- data/lib/rouge/themes/thankful_eyes.rb +75 -0
- data/lib/rouge/themes/tulip.rb +70 -0
- data/lib/rouge/token.rb +191 -0
- data/lib/rouge/util.rb +102 -0
- data/lib/rouge/version.rb +8 -0
- data/rouge.gemspec +26 -0
- metadata +476 -0
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class Liquid < RegexLexer
|
|
7
|
+
title "Liquid"
|
|
8
|
+
desc 'Liquid is a templating engine for Ruby (liquidmarkup.org)'
|
|
9
|
+
tag 'liquid'
|
|
10
|
+
filenames '*.liquid'
|
|
11
|
+
|
|
12
|
+
state :root do
|
|
13
|
+
rule %r/[^\{]+/, Text
|
|
14
|
+
|
|
15
|
+
rule %r/(\{%-?)(\s*)/ do
|
|
16
|
+
groups Punctuation, Text::Whitespace
|
|
17
|
+
push :tag_or_block
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
rule %r/(\{\{-?)(\s*)/ do
|
|
21
|
+
groups Punctuation, Text::Whitespace
|
|
22
|
+
push :output
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
rule %r/\{/, Text
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
state :tag_or_block do
|
|
29
|
+
# builtin logic blocks
|
|
30
|
+
rule %r/(if|elsif|unless|case)\b/, Keyword::Reserved, :condition
|
|
31
|
+
rule %r/(when)\b/, Keyword::Reserved, :when
|
|
32
|
+
|
|
33
|
+
rule %r/(else)(\s*)(-?%\})/ do
|
|
34
|
+
groups Keyword::Reserved, Text::Whitespace, Punctuation
|
|
35
|
+
pop!
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# other builtin blocks
|
|
39
|
+
rule %r/(capture|(?:in|de)crement)(\s+)([^\s%]+)(\s*)(-?%\})/ do
|
|
40
|
+
groups Name::Tag, Text::Whitespace, Name::Variable, Text::Whitespace, Punctuation
|
|
41
|
+
pop!
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
rule %r/(comment)(\s*)(-?%\})/ do
|
|
45
|
+
groups Name::Tag, Text::Whitespace, Punctuation
|
|
46
|
+
push :comment
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
rule %r/(raw)(\s*)(-?%\})/ do
|
|
50
|
+
groups Name::Tag, Text::Whitespace, Punctuation
|
|
51
|
+
push :raw
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# end of block
|
|
55
|
+
rule %r/(end(?:if|unless|case))(\s*)(-?%\})/ do
|
|
56
|
+
groups Keyword::Reserved, Text::Whitespace, Punctuation
|
|
57
|
+
pop!
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
rule %r/(end(?:[^\s%]+))(\s*)(-?%\})/ do
|
|
61
|
+
groups Name::Tag, Text::Whitespace, Punctuation
|
|
62
|
+
pop!
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# builtin tags
|
|
66
|
+
rule %r/(assign|echo)\b/, Name::Tag, :assign
|
|
67
|
+
rule %r/(include|render)\b/, Name::Tag, :include
|
|
68
|
+
|
|
69
|
+
rule %r/(cycle)(\s+)(?:([^\s:]*)(\s*)(:))?(\s*)/ do |m|
|
|
70
|
+
token_class = case m[3]
|
|
71
|
+
when %r/'[^']*'/ then Str::Single
|
|
72
|
+
when %r/"[^"]*"/ then Str::Double
|
|
73
|
+
else
|
|
74
|
+
Name::Attribute
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
groups Name::Tag, Text::Whitespace, token_class,
|
|
78
|
+
Text::Whitespace, Punctuation, Text::Whitespace
|
|
79
|
+
|
|
80
|
+
push :variable_tag_markup
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
# iteration
|
|
84
|
+
rule %r/
|
|
85
|
+
(for|tablerow)(\s+)
|
|
86
|
+
([\w-]+)(\s+)
|
|
87
|
+
(in)(\s+)
|
|
88
|
+
(
|
|
89
|
+
(?: [^\s%,\|'"] | (?:"[^"]*"|'[^']*') )+
|
|
90
|
+
)(\s*)
|
|
91
|
+
/x do |m|
|
|
92
|
+
groups Name::Tag, Text::Whitespace, Name::Variable, Text::Whitespace,
|
|
93
|
+
Name::Tag, Text::Whitespace
|
|
94
|
+
|
|
95
|
+
token_class = case m[7]
|
|
96
|
+
when %r/'[^']*'/ then Str::Single
|
|
97
|
+
when %r/"[^"]*"/ then Str::Double
|
|
98
|
+
else
|
|
99
|
+
Name::Variable
|
|
100
|
+
end
|
|
101
|
+
token token_class, m[7]
|
|
102
|
+
token Text::Whitespace, m[8]
|
|
103
|
+
push :tag_markup
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
# other tags or blocks
|
|
107
|
+
rule %r/([^\s%]+)(\s*)/ do
|
|
108
|
+
groups Name::Tag, Text::Whitespace
|
|
109
|
+
push :tag_markup
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
state :output do
|
|
114
|
+
rule %r/(\|)(\s*)([a-zA-Z_][^\s}\|:]*)/ do
|
|
115
|
+
groups Punctuation, Text::Whitespace, Name::Function
|
|
116
|
+
push :filters
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
mixin :end_of_tag
|
|
120
|
+
mixin :generic
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
state :filters do
|
|
124
|
+
rule %r/(\|)(\s*)([a-zA-Z_][^\s%}\|:]*)/ do
|
|
125
|
+
groups Punctuation, Text::Whitespace, Name::Function
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
mixin :end_of_tag
|
|
129
|
+
mixin :end_of_block
|
|
130
|
+
mixin :variable_param_markup
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
state :condition do
|
|
134
|
+
rule %r/([=!]=|[<>]=?)/, Operator
|
|
135
|
+
rule %r/(and|or|contains)\b/, Operator::Word
|
|
136
|
+
|
|
137
|
+
mixin :end_of_block
|
|
138
|
+
mixin :generic
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
state :when do
|
|
142
|
+
mixin :end_of_block
|
|
143
|
+
mixin :generic
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
state :end_of_tag do
|
|
147
|
+
rule(/-?\}\}/) { token Punctuation; reset_stack }
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
state :end_of_block do
|
|
151
|
+
rule(/-?%\}/) { token Punctuation; reset_stack }
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
# states for unknown markup
|
|
155
|
+
state :param_markup do
|
|
156
|
+
mixin :whitespace
|
|
157
|
+
mixin :keyword
|
|
158
|
+
mixin :string
|
|
159
|
+
mixin :number
|
|
160
|
+
|
|
161
|
+
rule %r/([^\s=:]+)(\s*)(=|:)/ do
|
|
162
|
+
groups Name::Attribute, Text::Whitespace, Operator
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
rule %r/[,:]/, Punctuation
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
state :default_param_markup do
|
|
169
|
+
mixin :param_markup
|
|
170
|
+
|
|
171
|
+
rule %r/\S+/, Text
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
state :variable_param_markup do
|
|
175
|
+
mixin :param_markup
|
|
176
|
+
mixin :variable
|
|
177
|
+
|
|
178
|
+
rule %r/\S+/, Text
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
state :tag_markup do
|
|
182
|
+
rule %r/(reversed)\b/, Name::Attribute
|
|
183
|
+
|
|
184
|
+
mixin :end_of_block
|
|
185
|
+
mixin :default_param_markup
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
state :variable_tag_markup do
|
|
189
|
+
mixin :end_of_block
|
|
190
|
+
mixin :variable_param_markup
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
# states for different values types
|
|
194
|
+
state :keyword do
|
|
195
|
+
rule %r/(false|true|nil)\b/, Keyword::Constant
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
state :variable do
|
|
199
|
+
rule %r/(empty|blank|forloop\.[^\s%}\|:]+)\b/, Name::Builtin
|
|
200
|
+
rule %r/\.(?=\w)|\[|\]/, Punctuation
|
|
201
|
+
rule %r/(first|last|size)\b/, Name::Function
|
|
202
|
+
rule %r/[a-zA-Z_][\w-]*\??/, Name::Variable
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
state :string do
|
|
206
|
+
rule %r/'[^']*'/, Str::Single
|
|
207
|
+
rule %r/"[^"]*"/, Str::Double
|
|
208
|
+
end
|
|
209
|
+
|
|
210
|
+
state :number do
|
|
211
|
+
rule %r/-/, Operator
|
|
212
|
+
rule %r/\d+\.\d+/, Num::Float
|
|
213
|
+
rule %r/\d+/, Num::Integer
|
|
214
|
+
end
|
|
215
|
+
|
|
216
|
+
state :generic do
|
|
217
|
+
mixin :whitespace
|
|
218
|
+
mixin :keyword
|
|
219
|
+
mixin :string
|
|
220
|
+
mixin :number
|
|
221
|
+
mixin :variable
|
|
222
|
+
end
|
|
223
|
+
|
|
224
|
+
state :whitespace do
|
|
225
|
+
rule %r/[ \t]+/, Text::Whitespace
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
state :comment do
|
|
229
|
+
rule %r/[^\{]+/, Comment
|
|
230
|
+
|
|
231
|
+
rule %r/(\{%-?)(\s*)(endcomment)(\s*)(-?%\})/ do
|
|
232
|
+
groups Punctuation, Text::Whitespace, Name::Tag, Text::Whitespace, Punctuation
|
|
233
|
+
reset_stack
|
|
234
|
+
end
|
|
235
|
+
|
|
236
|
+
rule %r/\{/, Comment
|
|
237
|
+
end
|
|
238
|
+
|
|
239
|
+
state :raw do
|
|
240
|
+
rule %r/[^\{]+/, Text
|
|
241
|
+
|
|
242
|
+
rule %r/(\{%-?)(\s*)(endraw)(\s*)(-?%\})/ do
|
|
243
|
+
groups Punctuation, Text::Whitespace, Name::Tag, Text::Whitespace, Punctuation
|
|
244
|
+
reset_stack
|
|
245
|
+
end
|
|
246
|
+
|
|
247
|
+
rule %r/\{/, Text
|
|
248
|
+
end
|
|
249
|
+
|
|
250
|
+
state :assign do
|
|
251
|
+
rule %r/=/, Operator
|
|
252
|
+
|
|
253
|
+
rule %r/(\|)(\s*)([a-zA-Z_][^\s%\|:]*)/ do
|
|
254
|
+
groups Punctuation, Text::Whitespace, Name::Function
|
|
255
|
+
push :filters
|
|
256
|
+
end
|
|
257
|
+
|
|
258
|
+
mixin :end_of_block
|
|
259
|
+
mixin :generic
|
|
260
|
+
end
|
|
261
|
+
|
|
262
|
+
state :include do
|
|
263
|
+
rule %r/(\{\{-?)(\s*)/ do
|
|
264
|
+
groups Punctuation, Text::Whitespace
|
|
265
|
+
push :output_embed
|
|
266
|
+
end
|
|
267
|
+
|
|
268
|
+
rule %r/(with|for)\b/, Name::Tag
|
|
269
|
+
rule %r/[\/\w-]+(\.[\w-]+)+\b/, Text
|
|
270
|
+
|
|
271
|
+
mixin :variable_tag_markup
|
|
272
|
+
end
|
|
273
|
+
|
|
274
|
+
state :output_embed do
|
|
275
|
+
rule %r/(\|)(\s*)([a-zA-Z_][^\s}\|:]*)/ do
|
|
276
|
+
groups Punctuation, Text::Whitespace, Name::Function
|
|
277
|
+
end
|
|
278
|
+
|
|
279
|
+
rule %r/-?\}\}/, Punctuation, :pop!
|
|
280
|
+
|
|
281
|
+
mixin :variable_param_markup
|
|
282
|
+
end
|
|
283
|
+
end
|
|
284
|
+
end
|
|
285
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class LiterateCoffeescript < RegexLexer
|
|
7
|
+
tag 'literate_coffeescript'
|
|
8
|
+
title "Literate CoffeeScript"
|
|
9
|
+
desc 'Literate coffeescript'
|
|
10
|
+
aliases 'litcoffee'
|
|
11
|
+
filenames '*.litcoffee'
|
|
12
|
+
|
|
13
|
+
def markdown
|
|
14
|
+
@markdown ||= Markdown.new(options)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def coffee
|
|
18
|
+
@coffee ||= Coffeescript.new(options)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
start { markdown.reset!; coffee.reset! }
|
|
22
|
+
|
|
23
|
+
state :root do
|
|
24
|
+
rule %r/^( .*?\n)+/m do
|
|
25
|
+
delegate coffee
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
rule %r/^([ ]{0,3}(\S.*?|)\n)*/m do
|
|
29
|
+
delegate markdown
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class LiterateHaskell < RegexLexer
|
|
7
|
+
title "Literate Haskell"
|
|
8
|
+
desc 'Literate haskell'
|
|
9
|
+
tag 'literate_haskell'
|
|
10
|
+
aliases 'lithaskell', 'lhaskell', 'lhs'
|
|
11
|
+
filenames '*.lhs'
|
|
12
|
+
mimetypes 'text/x-literate-haskell'
|
|
13
|
+
|
|
14
|
+
def haskell
|
|
15
|
+
@haskell ||= Haskell.new(options)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
start { haskell.reset! }
|
|
19
|
+
|
|
20
|
+
# TODO: support TeX versions as well.
|
|
21
|
+
state :root do
|
|
22
|
+
rule %r/\s*?\n(?=>)/, Text, :code
|
|
23
|
+
rule %r/.*?\n/, Text
|
|
24
|
+
rule %r/.+\z/, Text
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
state :code do
|
|
28
|
+
rule %r/(>)( .*?(\n|\z))/ do |m|
|
|
29
|
+
token Name::Label, m[1]
|
|
30
|
+
delegate haskell, m[2]
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
rule %r/\s*\n(?=\s*[^>])/, Text, :pop!
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class LLVM < RegexLexer
|
|
7
|
+
title "LLVM"
|
|
8
|
+
desc 'The LLVM Compiler Infrastructure (http://llvm.org/)'
|
|
9
|
+
tag 'llvm'
|
|
10
|
+
|
|
11
|
+
filenames '*.ll'
|
|
12
|
+
mimetypes 'text/x-llvm'
|
|
13
|
+
|
|
14
|
+
string = /"[^"]*?"/
|
|
15
|
+
identifier = /([-a-zA-Z$._][-a-zA-Z$._0-9]*|#{string})/
|
|
16
|
+
|
|
17
|
+
def self.keywords
|
|
18
|
+
@keywords ||= Set.new %w(
|
|
19
|
+
addrspace addrspacecast alias align alignstack allocsize alwaysinline
|
|
20
|
+
appending arcp argmemonly arm_aapcs_vfpcc arm_aapcscc arm_apcscc asm
|
|
21
|
+
attributes available_externally begin builtin byval c cc ccc cold
|
|
22
|
+
coldcc common constant convergent datalayout dbg declare default
|
|
23
|
+
define dllexport dllimport end eq exact extern_weak external false
|
|
24
|
+
fast fastcc gc global hidden inaccessiblemem_or_argmemonly
|
|
25
|
+
inaccessiblememonly inbounds inlinehint inreg internal jumptable
|
|
26
|
+
landingpad linker_private linkonce linkonce_odr minsize module naked
|
|
27
|
+
ne nest ninf nnan no-jump-tables noalias nobuiltin nocapture
|
|
28
|
+
nocf_check noduplicate noimplicitfloat noinline nonlazybind norecurse
|
|
29
|
+
noredzone noredzone noreturn nounwind nsw nsz null nuw oeq oge ogt
|
|
30
|
+
ole olt one opaque optforfuzzing optnone optsize ord personality
|
|
31
|
+
private protected ptx_device ptx_kernel readnone readonly
|
|
32
|
+
returns_twice safestack sanitize_address sanitize_hwaddress
|
|
33
|
+
sanitize_memory sanitize_thread section sge sgt shadowcallstack
|
|
34
|
+
sideeffect signext sle slt speculatable speculative_load_hardening
|
|
35
|
+
sret ssp sspreq sspstrong strictfp tail target thread_local to triple
|
|
36
|
+
true type ueq uge ugt ule ult undef une unnamed_addr uno uwtable
|
|
37
|
+
volatile weak weak_odr writeonly x x86_fastcallcc x86_stdcallcc
|
|
38
|
+
zeroext zeroinitializer
|
|
39
|
+
)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def self.instructions
|
|
43
|
+
@instructions ||= Set.new %w(
|
|
44
|
+
add alloca and ashr bitcast br call catch cleanup extractelement
|
|
45
|
+
extractvalue fadd fcmp fdiv fmul fpext fptosi fptoui fptrunc free
|
|
46
|
+
frem fsub getelementptr getresult icmp insertelement insertvalue
|
|
47
|
+
inttoptr invoke load lshr malloc mul or phi ptrtoint resume ret sdiv
|
|
48
|
+
select sext shl shufflevector sitofp srem store sub switch trunc udiv
|
|
49
|
+
uitofp unreachable unwind urem va_arg xor zext
|
|
50
|
+
)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def self.types
|
|
54
|
+
@types ||= Set.new %w(
|
|
55
|
+
double float fp128 half label metadata ppc_fp128 void x86_fp80 x86mmx
|
|
56
|
+
)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
state :basic do
|
|
60
|
+
rule %r/;.*?$/, Comment::Single
|
|
61
|
+
rule %r/\s+/, Text
|
|
62
|
+
|
|
63
|
+
rule %r/#{identifier}\s*:/, Name::Label
|
|
64
|
+
|
|
65
|
+
rule %r/@(#{identifier}|\d+)/, Name::Variable::Global
|
|
66
|
+
rule %r/#\d+/, Name::Variable::Global
|
|
67
|
+
rule %r/(%|!)#{identifier}/, Name::Variable
|
|
68
|
+
rule %r/(%|!)\d+/, Name::Variable
|
|
69
|
+
|
|
70
|
+
rule %r/c?#{string}/, Str
|
|
71
|
+
|
|
72
|
+
rule %r/0[xX][a-fA-F0-9]+/, Num
|
|
73
|
+
rule %r/-?\d+(?:[.]\d+)?(?:[eE][-+]?\d+(?:[.]\d+)?)?/, Num
|
|
74
|
+
|
|
75
|
+
rule %r/[=<>{}\[\]()*.,!]|x/, Punctuation
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
state :root do
|
|
79
|
+
mixin :basic
|
|
80
|
+
|
|
81
|
+
rule %r/i[1-9]\d*/, Keyword::Type
|
|
82
|
+
|
|
83
|
+
rule %r/\w+/ do |m|
|
|
84
|
+
if self.class.types.include? m[0]
|
|
85
|
+
token Keyword::Type
|
|
86
|
+
elsif self.class.instructions.include? m[0]
|
|
87
|
+
token Keyword
|
|
88
|
+
elsif self.class.keywords.include? m[0]
|
|
89
|
+
token Keyword
|
|
90
|
+
else
|
|
91
|
+
token Error
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|