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,87 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
# Based on Chroma's MiniZinc lexer:
|
|
5
|
+
# https://github.com/alecthomas/chroma/blob/5152194c717b394686d3d7a7e1946a360ec0728f/lexers/m/minizinc.go
|
|
6
|
+
|
|
7
|
+
module Rouge
|
|
8
|
+
module Lexers
|
|
9
|
+
class MiniZinc < RegexLexer
|
|
10
|
+
title "MiniZinc"
|
|
11
|
+
desc "MiniZinc is a free and open-source constraint modeling language (minizinc.org)"
|
|
12
|
+
tag 'minizinc'
|
|
13
|
+
filenames '*.mzn', '*.fzn', '*.dzn'
|
|
14
|
+
mimetypes 'text/minizinc'
|
|
15
|
+
|
|
16
|
+
def self.builtins
|
|
17
|
+
@builtins = Set.new %w[
|
|
18
|
+
abort abs acosh array_intersect array_union array1d array2d array3d
|
|
19
|
+
array4d array5d array6d asin assert atan bool2int card ceil concat
|
|
20
|
+
cos cosh dom dom_array dom_size fix exp floor index_set
|
|
21
|
+
index_set_1of2 index_set_2of2 index_set_1of3 index_set_2of3
|
|
22
|
+
index_set_3of3 int2float is_fixed join lb lb_array length ln log log2
|
|
23
|
+
log10 min max pow product round set2array show show_int show_float
|
|
24
|
+
sin sinh sqrt sum tan tanh trace ub ub_array
|
|
25
|
+
]
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def self.keywords
|
|
29
|
+
@keywords = Set.new %w[
|
|
30
|
+
ann annotation any constraint else endif function for forall if
|
|
31
|
+
include list of op output minimize maximize par predicate record
|
|
32
|
+
satisfy solve test then type var where
|
|
33
|
+
]
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def self.keywords_type
|
|
37
|
+
@keywords_type ||= Set.new %w(
|
|
38
|
+
array set bool enum float int string tuple
|
|
39
|
+
)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def self.operators
|
|
43
|
+
@operators ||= Set.new %w(
|
|
44
|
+
in subset superset union diff symdiff intersect
|
|
45
|
+
)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
id = /[$a-zA-Z_]\w*/
|
|
49
|
+
|
|
50
|
+
state :root do
|
|
51
|
+
rule %r(\s+)m, Text::Whitespace
|
|
52
|
+
rule %r(\\\n)m, Text::Whitespace
|
|
53
|
+
rule %r(%.*), Comment::Single
|
|
54
|
+
rule %r(/(\\\n)?[*](.|\n)*?[*](\\\n)?/)m, Comment::Multiline
|
|
55
|
+
rule %r/"(\\\\|\\"|[^"])*"/, Literal::String
|
|
56
|
+
|
|
57
|
+
rule %r(not|<->|->|<-|\\/|xor|/\\), Operator
|
|
58
|
+
rule %r(<|>|<=|>=|==|=|!=), Operator
|
|
59
|
+
rule %r(\+|-|\*|/|div|mod), Operator
|
|
60
|
+
rule %r(\\|\.\.|\+\+), Operator
|
|
61
|
+
rule %r([|()\[\]{},:;]), Punctuation
|
|
62
|
+
rule %r((true|false)\b), Keyword::Constant
|
|
63
|
+
rule %r(([+-]?)\d+(\.(?!\.)\d*)?([eE][-+]?\d+)?), Literal::Number
|
|
64
|
+
|
|
65
|
+
rule id do |m|
|
|
66
|
+
if self.class.keywords.include? m[0]
|
|
67
|
+
token Keyword
|
|
68
|
+
elsif self.class.keywords_type.include? m[0]
|
|
69
|
+
token Keyword::Type
|
|
70
|
+
elsif self.class.builtins.include? m[0]
|
|
71
|
+
token Name::Builtin
|
|
72
|
+
elsif self.class.operators.include? m[0]
|
|
73
|
+
token Operator
|
|
74
|
+
else
|
|
75
|
+
token Name::Other
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
rule %r(::\s*([^\W\d]\w*)(\s*\([^\)]*\))?), Name::Decorator
|
|
80
|
+
rule %r(\b([^\W\d]\w*)\b(\()) do
|
|
81
|
+
groups Name::Function, Punctuation
|
|
82
|
+
end
|
|
83
|
+
rule %r([^\W\d]\w*), Name::Other
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
end
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
load_lexer 'lua.rb'
|
|
7
|
+
|
|
8
|
+
class Moonscript < RegexLexer
|
|
9
|
+
title "MoonScript"
|
|
10
|
+
desc "Moonscript (http://www.moonscript.org)"
|
|
11
|
+
tag 'moonscript'
|
|
12
|
+
aliases 'moon'
|
|
13
|
+
filenames '*.moon'
|
|
14
|
+
mimetypes 'text/x-moonscript', 'application/x-moonscript'
|
|
15
|
+
|
|
16
|
+
option :function_highlighting, 'Whether to highlight builtin functions (default: true)'
|
|
17
|
+
option :disabled_modules, 'builtin modules to disable'
|
|
18
|
+
|
|
19
|
+
def initialize(*)
|
|
20
|
+
super
|
|
21
|
+
|
|
22
|
+
@function_highlighting = bool_option(:function_highlighting) { true }
|
|
23
|
+
@disabled_modules = list_option(:disabled_modules)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def self.detect?(text)
|
|
27
|
+
return true if text.shebang? 'moon'
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def builtins
|
|
31
|
+
return [] unless @function_highlighting
|
|
32
|
+
|
|
33
|
+
@builtins ||= Set.new.tap do |builtins|
|
|
34
|
+
Rouge::Lexers::Lua.builtins.each do |mod, fns|
|
|
35
|
+
next if @disabled_modules.include? mod
|
|
36
|
+
builtins.merge(fns)
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
state :root do
|
|
42
|
+
rule %r(#!(.*?)$), Comment::Preproc # shebang
|
|
43
|
+
rule %r//, Text, :main
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
state :base do
|
|
47
|
+
ident = '(?:\w\w*)'
|
|
48
|
+
|
|
49
|
+
rule %r((?i)(\d*\.\d+|\d+\.\d*)(e[+-]?\d+)?'), Num::Float
|
|
50
|
+
rule %r((?i)\d+e[+-]?\d+), Num::Float
|
|
51
|
+
rule %r((?i)0x[0-9a-f]*), Num::Hex
|
|
52
|
+
rule %r(\d+), Num::Integer
|
|
53
|
+
rule %r(@#{ident}*), Name::Variable::Instance
|
|
54
|
+
rule %r([A-Z]\w*), Name::Class
|
|
55
|
+
rule %r("?[^"]+":), Literal::String::Symbol
|
|
56
|
+
rule %r(#{ident}:), Literal::String::Symbol
|
|
57
|
+
rule %r(:#{ident}), Literal::String::Symbol
|
|
58
|
+
|
|
59
|
+
rule %r(\s+), Text::Whitespace
|
|
60
|
+
rule %r((==|~=|!=|<=|>=|\.\.\.|\.\.|->|=>|[=+\-*/%^<>#!\\])), Operator
|
|
61
|
+
rule %r([\[\]\{\}\(\)\.,:;]), Punctuation
|
|
62
|
+
rule %r((and|or|not)\b), Operator::Word
|
|
63
|
+
|
|
64
|
+
keywords = %w{
|
|
65
|
+
break class continue do else elseif end extends for if import in
|
|
66
|
+
repeat return switch super then unless until using when with while
|
|
67
|
+
}
|
|
68
|
+
rule %r((#{keywords.join('|')})\b), Keyword
|
|
69
|
+
rule %r((local|export)\b), Keyword::Declaration
|
|
70
|
+
rule %r((true|false|nil)\b), Keyword::Constant
|
|
71
|
+
|
|
72
|
+
rule %r([A-Za-z_][A-Za-z0-9_]*(\.[A-Za-z_][A-Za-z0-9_]*)?) do |m|
|
|
73
|
+
name = m[0]
|
|
74
|
+
if self.builtins.include?(name)
|
|
75
|
+
token Name::Builtin
|
|
76
|
+
elsif name =~ /\./
|
|
77
|
+
a, b = name.split('.', 2)
|
|
78
|
+
token Name, a
|
|
79
|
+
token Punctuation, '.'
|
|
80
|
+
token Name, b
|
|
81
|
+
else
|
|
82
|
+
token Name
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
state :main do
|
|
88
|
+
rule %r(--.*$), Comment::Single
|
|
89
|
+
rule %r(\[(=*)\[.*?\]\1\])m, Str::Heredoc
|
|
90
|
+
|
|
91
|
+
mixin :base
|
|
92
|
+
|
|
93
|
+
rule %r('), Str::Single, :sqs
|
|
94
|
+
rule %r("), Str::Double, :dqs
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
state :sqs do
|
|
98
|
+
rule %r('), Str::Single, :pop!
|
|
99
|
+
rule %r([^']+), Str::Single
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
state :interpolation do
|
|
103
|
+
rule %r(\}), Str::Interpol, :pop!
|
|
104
|
+
mixin :base
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
state :dqs do
|
|
108
|
+
rule %r(#\{), Str::Interpol, :interpolation
|
|
109
|
+
rule %r("), Str::Double, :pop!
|
|
110
|
+
rule %r(#[^{]), Str::Double
|
|
111
|
+
rule %r([^"#]+), Str::Double
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
end
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class Mosel < RegexLexer
|
|
7
|
+
tag 'mosel'
|
|
8
|
+
filenames '*.mos'
|
|
9
|
+
title "Mosel"
|
|
10
|
+
desc "An optimization language used by Fico's Xpress."
|
|
11
|
+
# http://www.fico.com/en/products/fico-xpress-optimization-suite
|
|
12
|
+
filenames '*.mos'
|
|
13
|
+
|
|
14
|
+
mimetypes 'text/x-mosel'
|
|
15
|
+
|
|
16
|
+
def self.detect?(text)
|
|
17
|
+
return true if text =~ /^\s*(model|package)\s+/
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
id = /[a-zA-Z_][a-zA-Z0-9_]*/
|
|
21
|
+
|
|
22
|
+
############################################################################################################################
|
|
23
|
+
# General language lements
|
|
24
|
+
############################################################################################################################
|
|
25
|
+
|
|
26
|
+
core_keywords = %w(
|
|
27
|
+
and array as
|
|
28
|
+
boolean break
|
|
29
|
+
case count counter
|
|
30
|
+
declarations div do dynamic
|
|
31
|
+
elif else end evaluation exit
|
|
32
|
+
false forall forward from function
|
|
33
|
+
if imports in include initialisations initializations integer inter is_binary is_continuous is_free is_integer is_partint is_semcont is_semint is_sos1 is_sos2
|
|
34
|
+
linctr list
|
|
35
|
+
max min mod model mpvar
|
|
36
|
+
next not of options or
|
|
37
|
+
package parameters procedure
|
|
38
|
+
public prod range real record repeat requirements
|
|
39
|
+
set string sum
|
|
40
|
+
then to true
|
|
41
|
+
union until uses
|
|
42
|
+
version
|
|
43
|
+
while with
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
core_functions = %w(
|
|
47
|
+
abs arctan assert
|
|
48
|
+
bitflip bitneg bitset bitshift bittest bitval
|
|
49
|
+
ceil cos create currentdate currenttime cuthead cuttail
|
|
50
|
+
delcell exists exit exp exportprob
|
|
51
|
+
fclose fflush finalize findfirst findlast floor fopen fselect fskipline
|
|
52
|
+
getact getcoeff getcoeffs getdual getfid getfirst gethead getfname getlast getobjval getparam getrcost getreadcnt getreverse getsize getslack getsol gettail gettype getvars
|
|
53
|
+
iseof ishidden isodd ln log
|
|
54
|
+
makesos1 makesos2 maxlist minlist
|
|
55
|
+
publish
|
|
56
|
+
random read readln reset reverse round
|
|
57
|
+
setcoeff sethidden setioerr setname setparam setrandseed settype sin splithead splittail sqrt strfmt substr
|
|
58
|
+
timestamp
|
|
59
|
+
unpublish
|
|
60
|
+
write writeln
|
|
61
|
+
)
|
|
62
|
+
|
|
63
|
+
############################################################################################################################
|
|
64
|
+
# mmxprs module elements
|
|
65
|
+
############################################################################################################################
|
|
66
|
+
|
|
67
|
+
mmxprs_functions = %w(
|
|
68
|
+
addmipsol
|
|
69
|
+
basisstability
|
|
70
|
+
calcsolinfo clearmipdir clearmodcut command copysoltoinit
|
|
71
|
+
defdelayedrows defsecurevecs
|
|
72
|
+
estimatemarginals
|
|
73
|
+
fixglobal
|
|
74
|
+
getbstat getdualray getiis getiissense getiistype getinfcause getinfeas getlb getloadedlinctrs getloadedmpvars getname getprimalray getprobstat getrange getsensrng getsize getsol getub getvars
|
|
75
|
+
implies indicator isiisvalid isintegral loadbasis
|
|
76
|
+
loadmipsol loadprob
|
|
77
|
+
maximize minimize
|
|
78
|
+
postsolve
|
|
79
|
+
readbasis readdirs readsol refinemipsol rejectintsol repairinfeas resetbasis resetiis resetsol
|
|
80
|
+
savebasis savemipsol savesol savestate selectsol setbstat setcallback setcbcutoff setgndata setlb setmipdir setmodcut setsol setub setucbdata stopoptimize
|
|
81
|
+
unloadprob
|
|
82
|
+
writebasis writedirs writeprob writesol
|
|
83
|
+
xor
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
mmxpres_constants = %w(XPRS_OPT XPRS_UNF XPRS_INF XPRS_UNB XPRS_OTH)
|
|
87
|
+
|
|
88
|
+
mmxprs_parameters = %w(XPRS_colorder XPRS_enumduplpol XPRS_enummaxsol XPRS_enumsols XPRS_fullversion XPRS_loadnames XPRS_problem XPRS_probname XPRS_verbose)
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
############################################################################################################################
|
|
92
|
+
# mmsystem module elements
|
|
93
|
+
############################################################################################################################
|
|
94
|
+
|
|
95
|
+
mmsystem_functions = %w(
|
|
96
|
+
addmonths
|
|
97
|
+
copytext cuttext
|
|
98
|
+
deltext
|
|
99
|
+
endswith expandpath
|
|
100
|
+
fcopy fdelete findfiles findtext fmove
|
|
101
|
+
getasnumber getchar getcwd getdate getday getdaynum getdays getdirsep
|
|
102
|
+
getendparse setendparse
|
|
103
|
+
getenv getfsize getfstat getftime gethour getminute getmonth getmsec getpathsep
|
|
104
|
+
getqtype setqtype
|
|
105
|
+
getsecond
|
|
106
|
+
getsepchar setsepchar
|
|
107
|
+
getsize
|
|
108
|
+
getstart setstart
|
|
109
|
+
getsucc setsucc
|
|
110
|
+
getsysinfo getsysstat gettime
|
|
111
|
+
gettmpdir
|
|
112
|
+
gettrim settrim
|
|
113
|
+
getweekday getyear
|
|
114
|
+
inserttext isvalid
|
|
115
|
+
makedir makepath newtar
|
|
116
|
+
newzip nextfield
|
|
117
|
+
openpipe
|
|
118
|
+
parseextn parseint parsereal parsetext pastetext pathmatch pathsplit
|
|
119
|
+
qsort quote
|
|
120
|
+
readtextline regmatch regreplace removedir removefiles
|
|
121
|
+
setchar setdate setday setenv sethour
|
|
122
|
+
setminute setmonth setmsec setsecond settime setyear sleep startswith system
|
|
123
|
+
tarlist textfmt tolower toupper trim
|
|
124
|
+
untar unzip
|
|
125
|
+
ziplist
|
|
126
|
+
)
|
|
127
|
+
|
|
128
|
+
mmsystem_parameters = %w(datefmt datetimefmt monthnames sys_endparse sys_fillchar sys_pid sys_qtype sys_regcache sys_sepchar)
|
|
129
|
+
|
|
130
|
+
############################################################################################################################
|
|
131
|
+
# mmjobs module elements
|
|
132
|
+
############################################################################################################################
|
|
133
|
+
|
|
134
|
+
mmjobs_instance_mgmt_functions = %w(
|
|
135
|
+
clearaliases connect
|
|
136
|
+
disconnect
|
|
137
|
+
findxsrvs
|
|
138
|
+
getaliases getbanner gethostalias
|
|
139
|
+
sethostalias
|
|
140
|
+
)
|
|
141
|
+
|
|
142
|
+
mmjobs_model_mgmt_functions = %w(
|
|
143
|
+
compile
|
|
144
|
+
detach
|
|
145
|
+
getannidents getannotations getexitcode getgid getid getnode getrmtid getstatus getuid
|
|
146
|
+
load
|
|
147
|
+
reset resetmodpar run
|
|
148
|
+
setcontrol setdefstream setmodpar setworkdir stop
|
|
149
|
+
unload
|
|
150
|
+
)
|
|
151
|
+
|
|
152
|
+
mmjobs_synchornization_functions = %w(
|
|
153
|
+
dropnextevent
|
|
154
|
+
getclass getfromgid getfromid getfromuid getnextevent getvalue
|
|
155
|
+
isqueueempty
|
|
156
|
+
nullevent
|
|
157
|
+
peeknextevent
|
|
158
|
+
send setgid setuid
|
|
159
|
+
wait waitfor
|
|
160
|
+
)
|
|
161
|
+
|
|
162
|
+
mmjobs_functions = mmjobs_instance_mgmt_functions + mmjobs_model_mgmt_functions + mmjobs_synchornization_functions
|
|
163
|
+
|
|
164
|
+
mmjobs_parameters = %w(conntmpl defaultnode fsrvdelay fsrvnbiter fsrvport jobid keepalive nodenumber parentnumber)
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
state :whitespace do
|
|
168
|
+
# Spaces
|
|
169
|
+
rule %r/\s+/m, Text
|
|
170
|
+
# ! Comments
|
|
171
|
+
rule %r((!).*$\n?), Comment::Single
|
|
172
|
+
# (! Comments !)
|
|
173
|
+
rule %r(\(!.*?!\))m, Comment::Multiline
|
|
174
|
+
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
# From Mosel documentation:
|
|
179
|
+
# Constant strings of characters must be quoted with single (') or double quote (") and may extend over several lines. Strings enclosed in double quotes may contain C-like escape sequences introduced by the 'backslash'
|
|
180
|
+
# character (\a \b \f \n \r \t \v \xxx with xxx being the character code as an octal number).
|
|
181
|
+
# Each sequence is replaced by the corresponding control character (e.g. \n is the `new line' command) or, if no control character exists, by the second character of the sequence itself (e.g. \\ is replaced by '\').
|
|
182
|
+
# The escape sequences are not interpreted if they are contained in strings that are enclosed in single quotes.
|
|
183
|
+
|
|
184
|
+
state :single_quotes do
|
|
185
|
+
rule %r/'/, Str::Single, :pop!
|
|
186
|
+
rule %r/[^']+/, Str::Single
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
state :double_quotes do
|
|
190
|
+
rule %r/"/, Str::Double, :pop!
|
|
191
|
+
rule %r/(\\"|\\[0-7]{1,3}\D|\\[abfnrtv]|\\\\)/, Str::Escape
|
|
192
|
+
rule %r/[^"]/, Str::Double
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
state :base do
|
|
196
|
+
|
|
197
|
+
rule %r{"}, Str::Double, :double_quotes
|
|
198
|
+
rule %r{'}, Str::Single, :single_quotes
|
|
199
|
+
|
|
200
|
+
rule %r{((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?}, Num
|
|
201
|
+
rule %r{[~!@#\$%\^&\*\(\)\+`\-={}\[\]:;<>\?,\.\/\|\\]}, Punctuation
|
|
202
|
+
# rule %r{'([^']|'')*'}, Str
|
|
203
|
+
# rule %r/"(\\\\|\\"|[^"])*"/, Str
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
rule %r/(true|false)\b/i, Name::Builtin
|
|
208
|
+
rule %r/\b(#{core_keywords.join('|')})\b/i, Keyword
|
|
209
|
+
rule %r/\b(#{core_functions.join('|')})\b/, Name::Builtin
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
rule %r/\b(#{mmxprs_functions.join('|')})\b/, Name::Function
|
|
214
|
+
rule %r/\b(#{mmxpres_constants.join('|')})\b/, Name::Constant
|
|
215
|
+
rule %r/\b(#{mmxprs_parameters.join('|')})\b/i, Name::Property
|
|
216
|
+
|
|
217
|
+
rule %r/\b(#{mmsystem_functions.join('|')})\b/i, Name::Function
|
|
218
|
+
rule %r/\b(#{mmsystem_parameters.join('|')})\b/, Name::Property
|
|
219
|
+
|
|
220
|
+
rule %r/\b(#{mmjobs_functions.join('|')})\b/i, Name::Function
|
|
221
|
+
rule %r/\b(#{mmjobs_parameters.join('|')})\b/, Name::Property
|
|
222
|
+
|
|
223
|
+
rule id, Name
|
|
224
|
+
end
|
|
225
|
+
|
|
226
|
+
state :root do
|
|
227
|
+
mixin :whitespace
|
|
228
|
+
mixin :base
|
|
229
|
+
end
|
|
230
|
+
end
|
|
231
|
+
end
|
|
232
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class MsgTrans < RegexLexer
|
|
7
|
+
title "MessageTrans"
|
|
8
|
+
desc "RISC OS message translator messages file"
|
|
9
|
+
tag 'msgtrans'
|
|
10
|
+
filenames 'Messages', 'Message[0-9]', 'Message[1-9][0-9]', 'Message[1-9][0-9][0-9]'
|
|
11
|
+
|
|
12
|
+
state :root do
|
|
13
|
+
rule %r/^#[^\n]*/, Comment
|
|
14
|
+
rule %r/[^\t\n\r ,):?\/]+/, Name::Variable
|
|
15
|
+
rule %r/[\n\/?]/, Operator
|
|
16
|
+
rule %r/:/, Operator, :value
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
state :value do
|
|
20
|
+
rule %r/\n/, Text, :pop!
|
|
21
|
+
rule %r/%[0-3%]/, Operator
|
|
22
|
+
rule %r/[^\n%]/, Literal::String
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|