nano-max-hub 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/nano-max-hub.gemspec +12 -0
- data/rouge-5.0.0/Gemfile +48 -0
- data/rouge-5.0.0/LICENSE +187 -0
- data/rouge-5.0.0/bin/rougify +17 -0
- data/rouge-5.0.0/lib/rouge/cli.rb +527 -0
- data/rouge-5.0.0/lib/rouge/demos/abap +32 -0
- data/rouge-5.0.0/lib/rouge/demos/actionscript +4 -0
- data/rouge-5.0.0/lib/rouge/demos/ada +26 -0
- data/rouge-5.0.0/lib/rouge/demos/apache +21 -0
- data/rouge-5.0.0/lib/rouge/demos/apex +9 -0
- data/rouge-5.0.0/lib/rouge/demos/apiblueprint +33 -0
- data/rouge-5.0.0/lib/rouge/demos/applescript +2 -0
- data/rouge-5.0.0/lib/rouge/demos/armasm +12 -0
- data/rouge-5.0.0/lib/rouge/demos/augeas +16 -0
- data/rouge-5.0.0/lib/rouge/demos/awk +4 -0
- data/rouge-5.0.0/lib/rouge/demos/batchfile +3 -0
- data/rouge-5.0.0/lib/rouge/demos/bbcbasic +6 -0
- data/rouge-5.0.0/lib/rouge/demos/bibtex +12 -0
- data/rouge-5.0.0/lib/rouge/demos/bicep +10 -0
- data/rouge-5.0.0/lib/rouge/demos/biml +38 -0
- data/rouge-5.0.0/lib/rouge/demos/bpf +7 -0
- data/rouge-5.0.0/lib/rouge/demos/brainfuck +5 -0
- data/rouge-5.0.0/lib/rouge/demos/brightscript +6 -0
- data/rouge-5.0.0/lib/rouge/demos/bsl +7 -0
- data/rouge-5.0.0/lib/rouge/demos/c +8 -0
- data/rouge-5.0.0/lib/rouge/demos/ceylon +7 -0
- data/rouge-5.0.0/lib/rouge/demos/cfscript +18 -0
- data/rouge-5.0.0/lib/rouge/demos/cisco_ios +19 -0
- data/rouge-5.0.0/lib/rouge/demos/clean +6 -0
- data/rouge-5.0.0/lib/rouge/demos/clojure +5 -0
- data/rouge-5.0.0/lib/rouge/demos/cmake +7 -0
- data/rouge-5.0.0/lib/rouge/demos/cmhg +8 -0
- data/rouge-5.0.0/lib/rouge/demos/cobol +103 -0
- data/rouge-5.0.0/lib/rouge/demos/codeowners +6 -0
- data/rouge-5.0.0/lib/rouge/demos/coffeescript +5 -0
- data/rouge-5.0.0/lib/rouge/demos/common_lisp +1 -0
- data/rouge-5.0.0/lib/rouge/demos/conf +4 -0
- data/rouge-5.0.0/lib/rouge/demos/console +6 -0
- data/rouge-5.0.0/lib/rouge/demos/cpp +8 -0
- data/rouge-5.0.0/lib/rouge/demos/crystal +45 -0
- data/rouge-5.0.0/lib/rouge/demos/csharp +5 -0
- data/rouge-5.0.0/lib/rouge/demos/css +4 -0
- data/rouge-5.0.0/lib/rouge/demos/csvs +8 -0
- data/rouge-5.0.0/lib/rouge/demos/cuda +11 -0
- data/rouge-5.0.0/lib/rouge/demos/cypher +5 -0
- data/rouge-5.0.0/lib/rouge/demos/cython +6 -0
- data/rouge-5.0.0/lib/rouge/demos/d +16 -0
- data/rouge-5.0.0/lib/rouge/demos/dafny +16 -0
- data/rouge-5.0.0/lib/rouge/demos/dart +6 -0
- data/rouge-5.0.0/lib/rouge/demos/datastudio +20 -0
- data/rouge-5.0.0/lib/rouge/demos/diff +7 -0
- data/rouge-5.0.0/lib/rouge/demos/digdag +19 -0
- data/rouge-5.0.0/lib/rouge/demos/docker +9 -0
- data/rouge-5.0.0/lib/rouge/demos/dot +5 -0
- data/rouge-5.0.0/lib/rouge/demos/dylan +8 -0
- data/rouge-5.0.0/lib/rouge/demos/ecl +17 -0
- data/rouge-5.0.0/lib/rouge/demos/eex +1 -0
- data/rouge-5.0.0/lib/rouge/demos/eiffel +30 -0
- data/rouge-5.0.0/lib/rouge/demos/elixir +1 -0
- data/rouge-5.0.0/lib/rouge/demos/elm +4 -0
- data/rouge-5.0.0/lib/rouge/demos/email +11 -0
- data/rouge-5.0.0/lib/rouge/demos/epp +4 -0
- data/rouge-5.0.0/lib/rouge/demos/erb +1 -0
- data/rouge-5.0.0/lib/rouge/demos/erlang +7 -0
- data/rouge-5.0.0/lib/rouge/demos/escape +3 -0
- data/rouge-5.0.0/lib/rouge/demos/factor +5 -0
- data/rouge-5.0.0/lib/rouge/demos/fluent +13 -0
- data/rouge-5.0.0/lib/rouge/demos/fortran +22 -0
- data/rouge-5.0.0/lib/rouge/demos/freefem +16 -0
- data/rouge-5.0.0/lib/rouge/demos/fsharp +12 -0
- data/rouge-5.0.0/lib/rouge/demos/gdscript +18 -0
- data/rouge-5.0.0/lib/rouge/demos/ghc-cmm +23 -0
- data/rouge-5.0.0/lib/rouge/demos/ghc-core +26 -0
- data/rouge-5.0.0/lib/rouge/demos/gherkin +17 -0
- data/rouge-5.0.0/lib/rouge/demos/gjs +23 -0
- data/rouge-5.0.0/lib/rouge/demos/glsl +14 -0
- data/rouge-5.0.0/lib/rouge/demos/go +7 -0
- data/rouge-5.0.0/lib/rouge/demos/gradle +10 -0
- data/rouge-5.0.0/lib/rouge/demos/graphql +17 -0
- data/rouge-5.0.0/lib/rouge/demos/groovy +9 -0
- data/rouge-5.0.0/lib/rouge/demos/gts +36 -0
- data/rouge-5.0.0/lib/rouge/demos/hack +5 -0
- data/rouge-5.0.0/lib/rouge/demos/haml +5 -0
- data/rouge-5.0.0/lib/rouge/demos/handlebars +7 -0
- data/rouge-5.0.0/lib/rouge/demos/haskell +6 -0
- data/rouge-5.0.0/lib/rouge/demos/haxe +4 -0
- data/rouge-5.0.0/lib/rouge/demos/hcl +7 -0
- data/rouge-5.0.0/lib/rouge/demos/hlsl +20 -0
- data/rouge-5.0.0/lib/rouge/demos/hocon +8 -0
- data/rouge-5.0.0/lib/rouge/demos/hql +5 -0
- data/rouge-5.0.0/lib/rouge/demos/html +8 -0
- data/rouge-5.0.0/lib/rouge/demos/http +14 -0
- data/rouge-5.0.0/lib/rouge/demos/hylang +10 -0
- data/rouge-5.0.0/lib/rouge/demos/idlang +8 -0
- data/rouge-5.0.0/lib/rouge/demos/idris +13 -0
- data/rouge-5.0.0/lib/rouge/demos/iecst +21 -0
- data/rouge-5.0.0/lib/rouge/demos/igorpro +9 -0
- data/rouge-5.0.0/lib/rouge/demos/ini +4 -0
- data/rouge-5.0.0/lib/rouge/demos/io +11 -0
- data/rouge-5.0.0/lib/rouge/demos/irb +4 -0
- data/rouge-5.0.0/lib/rouge/demos/irb_output +2 -0
- data/rouge-5.0.0/lib/rouge/demos/isabelle +16 -0
- data/rouge-5.0.0/lib/rouge/demos/isbl +4 -0
- data/rouge-5.0.0/lib/rouge/demos/j +12 -0
- data/rouge-5.0.0/lib/rouge/demos/janet +3 -0
- data/rouge-5.0.0/lib/rouge/demos/java +5 -0
- data/rouge-5.0.0/lib/rouge/demos/javascript +1 -0
- data/rouge-5.0.0/lib/rouge/demos/jinja +9 -0
- data/rouge-5.0.0/lib/rouge/demos/jsl +3 -0
- data/rouge-5.0.0/lib/rouge/demos/json +1 -0
- data/rouge-5.0.0/lib/rouge/demos/json-doc +1 -0
- data/rouge-5.0.0/lib/rouge/demos/json5 +12 -0
- data/rouge-5.0.0/lib/rouge/demos/jsonnet +28 -0
- data/rouge-5.0.0/lib/rouge/demos/jsp +29 -0
- data/rouge-5.0.0/lib/rouge/demos/jsx +17 -0
- data/rouge-5.0.0/lib/rouge/demos/julia +11 -0
- data/rouge-5.0.0/lib/rouge/demos/kick_assembler +14 -0
- data/rouge-5.0.0/lib/rouge/demos/kotlin +3 -0
- data/rouge-5.0.0/lib/rouge/demos/lasso +12 -0
- data/rouge-5.0.0/lib/rouge/demos/lean +8 -0
- data/rouge-5.0.0/lib/rouge/demos/liquid +10 -0
- data/rouge-5.0.0/lib/rouge/demos/literate_coffeescript +3 -0
- data/rouge-5.0.0/lib/rouge/demos/literate_haskell +7 -0
- data/rouge-5.0.0/lib/rouge/demos/livescript +15 -0
- data/rouge-5.0.0/lib/rouge/demos/llvm +20 -0
- data/rouge-5.0.0/lib/rouge/demos/lua +12 -0
- data/rouge-5.0.0/lib/rouge/demos/lustre +6 -0
- data/rouge-5.0.0/lib/rouge/demos/lutin +18 -0
- data/rouge-5.0.0/lib/rouge/demos/m68k +16 -0
- data/rouge-5.0.0/lib/rouge/demos/magik +6 -0
- data/rouge-5.0.0/lib/rouge/demos/make +6 -0
- data/rouge-5.0.0/lib/rouge/demos/markdown +4 -0
- data/rouge-5.0.0/lib/rouge/demos/mason +22 -0
- data/rouge-5.0.0/lib/rouge/demos/mathematica +8 -0
- data/rouge-5.0.0/lib/rouge/demos/matlab +6 -0
- data/rouge-5.0.0/lib/rouge/demos/meson +10 -0
- data/rouge-5.0.0/lib/rouge/demos/minizinc +23 -0
- data/rouge-5.0.0/lib/rouge/demos/mojo +10 -0
- data/rouge-5.0.0/lib/rouge/demos/moonscript +16 -0
- data/rouge-5.0.0/lib/rouge/demos/mosel +10 -0
- data/rouge-5.0.0/lib/rouge/demos/msgtrans +4 -0
- data/rouge-5.0.0/lib/rouge/demos/mxml +22 -0
- data/rouge-5.0.0/lib/rouge/demos/nasm +26 -0
- data/rouge-5.0.0/lib/rouge/demos/nesasm +11 -0
- data/rouge-5.0.0/lib/rouge/demos/nginx +5 -0
- data/rouge-5.0.0/lib/rouge/demos/nial +35 -0
- data/rouge-5.0.0/lib/rouge/demos/nim +27 -0
- data/rouge-5.0.0/lib/rouge/demos/nix +19 -0
- data/rouge-5.0.0/lib/rouge/demos/objective_c +18 -0
- data/rouge-5.0.0/lib/rouge/demos/objective_cpp +17 -0
- data/rouge-5.0.0/lib/rouge/demos/ocaml +12 -0
- data/rouge-5.0.0/lib/rouge/demos/ocl +4 -0
- data/rouge-5.0.0/lib/rouge/demos/openedge +4 -0
- data/rouge-5.0.0/lib/rouge/demos/opentype_feature_file +5 -0
- data/rouge-5.0.0/lib/rouge/demos/p4 +99 -0
- data/rouge-5.0.0/lib/rouge/demos/pascal +14 -0
- data/rouge-5.0.0/lib/rouge/demos/pdf +29 -0
- data/rouge-5.0.0/lib/rouge/demos/perl +5 -0
- data/rouge-5.0.0/lib/rouge/demos/php +3 -0
- data/rouge-5.0.0/lib/rouge/demos/plaintext +1 -0
- data/rouge-5.0.0/lib/rouge/demos/plist +11 -0
- data/rouge-5.0.0/lib/rouge/demos/plsql +2 -0
- data/rouge-5.0.0/lib/rouge/demos/pony +17 -0
- data/rouge-5.0.0/lib/rouge/demos/postscript +9 -0
- data/rouge-5.0.0/lib/rouge/demos/powershell +13 -0
- data/rouge-5.0.0/lib/rouge/demos/praat +26 -0
- data/rouge-5.0.0/lib/rouge/demos/prolog +9 -0
- data/rouge-5.0.0/lib/rouge/demos/prometheus +9 -0
- data/rouge-5.0.0/lib/rouge/demos/properties +7 -0
- data/rouge-5.0.0/lib/rouge/demos/protobuf +5 -0
- data/rouge-5.0.0/lib/rouge/demos/puppet +6 -0
- data/rouge-5.0.0/lib/rouge/demos/python +6 -0
- data/rouge-5.0.0/lib/rouge/demos/q +8 -0
- data/rouge-5.0.0/lib/rouge/demos/qml +9 -0
- data/rouge-5.0.0/lib/rouge/demos/r +8 -0
- data/rouge-5.0.0/lib/rouge/demos/racket +24 -0
- data/rouge-5.0.0/lib/rouge/demos/reasonml +12 -0
- data/rouge-5.0.0/lib/rouge/demos/rego +8 -0
- data/rouge-5.0.0/lib/rouge/demos/rescript +26 -0
- data/rouge-5.0.0/lib/rouge/demos/rml +33 -0
- data/rouge-5.0.0/lib/rouge/demos/robot_framework +27 -0
- data/rouge-5.0.0/lib/rouge/demos/rocq +16 -0
- data/rouge-5.0.0/lib/rouge/demos/ruby +9 -0
- data/rouge-5.0.0/lib/rouge/demos/rust +12 -0
- data/rouge-5.0.0/lib/rouge/demos/sas +13 -0
- data/rouge-5.0.0/lib/rouge/demos/sass +3 -0
- data/rouge-5.0.0/lib/rouge/demos/scala +3 -0
- data/rouge-5.0.0/lib/rouge/demos/scheme +4 -0
- data/rouge-5.0.0/lib/rouge/demos/scss +5 -0
- data/rouge-5.0.0/lib/rouge/demos/sed +4 -0
- data/rouge-5.0.0/lib/rouge/demos/shell +2 -0
- data/rouge-5.0.0/lib/rouge/demos/sieve +10 -0
- data/rouge-5.0.0/lib/rouge/demos/slice +10 -0
- data/rouge-5.0.0/lib/rouge/demos/slim +17 -0
- data/rouge-5.0.0/lib/rouge/demos/smalltalk +6 -0
- data/rouge-5.0.0/lib/rouge/demos/smarty +11 -0
- data/rouge-5.0.0/lib/rouge/demos/sml +4 -0
- data/rouge-5.0.0/lib/rouge/demos/sparql +6 -0
- data/rouge-5.0.0/lib/rouge/demos/sqf +14 -0
- data/rouge-5.0.0/lib/rouge/demos/sql +1 -0
- data/rouge-5.0.0/lib/rouge/demos/ssh +4 -0
- data/rouge-5.0.0/lib/rouge/demos/stan +13 -0
- data/rouge-5.0.0/lib/rouge/demos/stata +14 -0
- data/rouge-5.0.0/lib/rouge/demos/supercollider +11 -0
- data/rouge-5.0.0/lib/rouge/demos/svelte +29 -0
- data/rouge-5.0.0/lib/rouge/demos/swift +5 -0
- data/rouge-5.0.0/lib/rouge/demos/systemd +4 -0
- data/rouge-5.0.0/lib/rouge/demos/syzlang +15 -0
- data/rouge-5.0.0/lib/rouge/demos/syzprog +8 -0
- data/rouge-5.0.0/lib/rouge/demos/tap +5 -0
- data/rouge-5.0.0/lib/rouge/demos/tcl +1 -0
- data/rouge-5.0.0/lib/rouge/demos/terraform +16 -0
- data/rouge-5.0.0/lib/rouge/demos/tex +1 -0
- data/rouge-5.0.0/lib/rouge/demos/thrift +15 -0
- data/rouge-5.0.0/lib/rouge/demos/toml +9 -0
- data/rouge-5.0.0/lib/rouge/demos/tsx +17 -0
- data/rouge-5.0.0/lib/rouge/demos/ttcn3 +6 -0
- data/rouge-5.0.0/lib/rouge/demos/tulip +13 -0
- data/rouge-5.0.0/lib/rouge/demos/turtle +26 -0
- data/rouge-5.0.0/lib/rouge/demos/twig +9 -0
- data/rouge-5.0.0/lib/rouge/demos/typescript +1 -0
- data/rouge-5.0.0/lib/rouge/demos/vala +8 -0
- data/rouge-5.0.0/lib/rouge/demos/vb +4 -0
- data/rouge-5.0.0/lib/rouge/demos/vcl +12 -0
- data/rouge-5.0.0/lib/rouge/demos/velocity +9 -0
- data/rouge-5.0.0/lib/rouge/demos/verilog +27 -0
- data/rouge-5.0.0/lib/rouge/demos/veryl +24 -0
- data/rouge-5.0.0/lib/rouge/demos/vhdl +23 -0
- data/rouge-5.0.0/lib/rouge/demos/viml +14 -0
- data/rouge-5.0.0/lib/rouge/demos/vue +11 -0
- data/rouge-5.0.0/lib/rouge/demos/wollok +11 -0
- data/rouge-5.0.0/lib/rouge/demos/xml +2 -0
- data/rouge-5.0.0/lib/rouge/demos/xojo +14 -0
- data/rouge-5.0.0/lib/rouge/demos/xpath +2 -0
- data/rouge-5.0.0/lib/rouge/demos/xquery +22 -0
- data/rouge-5.0.0/lib/rouge/demos/yaml +4 -0
- data/rouge-5.0.0/lib/rouge/demos/yang +17 -0
- data/rouge-5.0.0/lib/rouge/demos/zig +6 -0
- data/rouge-5.0.0/lib/rouge/eager.rb +3 -0
- data/rouge-5.0.0/lib/rouge/formatter.rb +112 -0
- data/rouge-5.0.0/lib/rouge/formatters/html.rb +64 -0
- data/rouge-5.0.0/lib/rouge/formatters/html_debug.rb +16 -0
- data/rouge-5.0.0/lib/rouge/formatters/html_inline.rb +30 -0
- data/rouge-5.0.0/lib/rouge/formatters/html_legacy.rb +56 -0
- data/rouge-5.0.0/lib/rouge/formatters/html_legacy_table.rb +57 -0
- data/rouge-5.0.0/lib/rouge/formatters/html_line_highlighter.rb +31 -0
- data/rouge-5.0.0/lib/rouge/formatters/html_line_table.rb +56 -0
- data/rouge-5.0.0/lib/rouge/formatters/html_linewise.rb +31 -0
- data/rouge-5.0.0/lib/rouge/formatters/html_pygments.rb +23 -0
- data/rouge-5.0.0/lib/rouge/formatters/html_table.rb +77 -0
- data/rouge-5.0.0/lib/rouge/formatters/null.rb +20 -0
- data/rouge-5.0.0/lib/rouge/formatters/terminal256.rb +198 -0
- data/rouge-5.0.0/lib/rouge/formatters/terminal_truecolor.rb +37 -0
- data/rouge-5.0.0/lib/rouge/formatters/tex.rb +92 -0
- data/rouge-5.0.0/lib/rouge/guesser.rb +57 -0
- data/rouge-5.0.0/lib/rouge/guessers/disambiguation.rb +172 -0
- data/rouge-5.0.0/lib/rouge/guessers/filename.rb +27 -0
- data/rouge-5.0.0/lib/rouge/guessers/glob_mapping.rb +45 -0
- data/rouge-5.0.0/lib/rouge/guessers/mimetype.rb +16 -0
- data/rouge-5.0.0/lib/rouge/guessers/modeline.rb +46 -0
- data/rouge-5.0.0/lib/rouge/guessers/source.rb +31 -0
- data/rouge-5.0.0/lib/rouge/guessers/util.rb +34 -0
- data/rouge-5.0.0/lib/rouge/lexer.rb +556 -0
- data/rouge-5.0.0/lib/rouge/lexers/abap/builtins.rb +187 -0
- data/rouge-5.0.0/lib/rouge/lexers/abap.rb +132 -0
- data/rouge-5.0.0/lib/rouge/lexers/actionscript.rb +196 -0
- data/rouge-5.0.0/lib/rouge/lexers/ada.rb +162 -0
- data/rouge-5.0.0/lib/rouge/lexers/apache/keywords.rb +16 -0
- data/rouge-5.0.0/lib/rouge/lexers/apache.rb +84 -0
- data/rouge-5.0.0/lib/rouge/lexers/apex.rb +128 -0
- data/rouge-5.0.0/lib/rouge/lexers/apiblueprint.rb +49 -0
- data/rouge-5.0.0/lib/rouge/lexers/apple_script.rb +370 -0
- data/rouge-5.0.0/lib/rouge/lexers/armasm.rb +145 -0
- data/rouge-5.0.0/lib/rouge/lexers/augeas.rb +93 -0
- data/rouge-5.0.0/lib/rouge/lexers/awk.rb +162 -0
- data/rouge-5.0.0/lib/rouge/lexers/batchfile.rb +165 -0
- data/rouge-5.0.0/lib/rouge/lexers/bbcbasic.rb +112 -0
- data/rouge-5.0.0/lib/rouge/lexers/bibtex.rb +115 -0
- data/rouge-5.0.0/lib/rouge/lexers/bicep.rb +111 -0
- data/rouge-5.0.0/lib/rouge/lexers/biml.rb +70 -0
- data/rouge-5.0.0/lib/rouge/lexers/bpf.rb +118 -0
- data/rouge-5.0.0/lib/rouge/lexers/brainfuck.rb +54 -0
- data/rouge-5.0.0/lib/rouge/lexers/brightscript.rb +146 -0
- data/rouge-5.0.0/lib/rouge/lexers/bsl.rb +82 -0
- data/rouge-5.0.0/lib/rouge/lexers/c.rb +204 -0
- data/rouge-5.0.0/lib/rouge/lexers/ceylon.rb +96 -0
- data/rouge-5.0.0/lib/rouge/lexers/cfscript.rb +154 -0
- data/rouge-5.0.0/lib/rouge/lexers/cisco_ios.rb +83 -0
- data/rouge-5.0.0/lib/rouge/lexers/clean.rb +156 -0
- data/rouge-5.0.0/lib/rouge/lexers/clojure.rb +113 -0
- data/rouge-5.0.0/lib/rouge/lexers/cmake.rb +218 -0
- data/rouge-5.0.0/lib/rouge/lexers/cmhg.rb +34 -0
- data/rouge-5.0.0/lib/rouge/lexers/cobol.rb +137 -0
- data/rouge-5.0.0/lib/rouge/lexers/codeowners.rb +30 -0
- data/rouge-5.0.0/lib/rouge/lexers/coffeescript.rb +215 -0
- data/rouge-5.0.0/lib/rouge/lexers/common_lisp.rb +346 -0
- data/rouge-5.0.0/lib/rouge/lexers/conf.rb +25 -0
- data/rouge-5.0.0/lib/rouge/lexers/console.rb +196 -0
- data/rouge-5.0.0/lib/rouge/lexers/cpp.rb +102 -0
- data/rouge-5.0.0/lib/rouge/lexers/crystal.rb +435 -0
- data/rouge-5.0.0/lib/rouge/lexers/csharp.rb +118 -0
- data/rouge-5.0.0/lib/rouge/lexers/css.rb +337 -0
- data/rouge-5.0.0/lib/rouge/lexers/csvs.rb +44 -0
- data/rouge-5.0.0/lib/rouge/lexers/cuda.rb +35 -0
- data/rouge-5.0.0/lib/rouge/lexers/cypher.rb +116 -0
- data/rouge-5.0.0/lib/rouge/lexers/cython.rb +127 -0
- data/rouge-5.0.0/lib/rouge/lexers/d.rb +177 -0
- data/rouge-5.0.0/lib/rouge/lexers/dafny.rb +128 -0
- data/rouge-5.0.0/lib/rouge/lexers/dart.rb +108 -0
- data/rouge-5.0.0/lib/rouge/lexers/datastudio.rb +138 -0
- data/rouge-5.0.0/lib/rouge/lexers/diff.rb +47 -0
- data/rouge-5.0.0/lib/rouge/lexers/digdag.rb +69 -0
- data/rouge-5.0.0/lib/rouge/lexers/docker.rb +55 -0
- data/rouge-5.0.0/lib/rouge/lexers/dot.rb +70 -0
- data/rouge-5.0.0/lib/rouge/lexers/dylan.rb +109 -0
- data/rouge-5.0.0/lib/rouge/lexers/ecl.rb +175 -0
- data/rouge-5.0.0/lib/rouge/lexers/eex.rb +52 -0
- data/rouge-5.0.0/lib/rouge/lexers/eiffel.rb +65 -0
- data/rouge-5.0.0/lib/rouge/lexers/elixir.rb +158 -0
- data/rouge-5.0.0/lib/rouge/lexers/elm.rb +90 -0
- data/rouge-5.0.0/lib/rouge/lexers/email.rb +39 -0
- data/rouge-5.0.0/lib/rouge/lexers/epp.rb +51 -0
- data/rouge-5.0.0/lib/rouge/lexers/erb.rb +53 -0
- data/rouge-5.0.0/lib/rouge/lexers/erlang.rb +115 -0
- data/rouge-5.0.0/lib/rouge/lexers/escape.rb +58 -0
- data/rouge-5.0.0/lib/rouge/lexers/factor.rb +303 -0
- data/rouge-5.0.0/lib/rouge/lexers/fluent.rb +74 -0
- data/rouge-5.0.0/lib/rouge/lexers/fortran.rb +178 -0
- data/rouge-5.0.0/lib/rouge/lexers/freefem.rb +240 -0
- data/rouge-5.0.0/lib/rouge/lexers/fsharp.rb +120 -0
- data/rouge-5.0.0/lib/rouge/lexers/gdscript.rb +171 -0
- data/rouge-5.0.0/lib/rouge/lexers/ghc_cmm.rb +340 -0
- data/rouge-5.0.0/lib/rouge/lexers/ghc_core.rb +152 -0
- data/rouge-5.0.0/lib/rouge/lexers/gherkin/keywords.rb +23 -0
- data/rouge-5.0.0/lib/rouge/lexers/gherkin.rb +142 -0
- data/rouge-5.0.0/lib/rouge/lexers/gjs.rb +39 -0
- data/rouge-5.0.0/lib/rouge/lexers/glsl/builtins.rb +17 -0
- data/rouge-5.0.0/lib/rouge/lexers/glsl.rb +69 -0
- data/rouge-5.0.0/lib/rouge/lexers/go.rb +177 -0
- data/rouge-5.0.0/lib/rouge/lexers/gradle.rb +38 -0
- data/rouge-5.0.0/lib/rouge/lexers/graphql.rb +261 -0
- data/rouge-5.0.0/lib/rouge/lexers/groovy.rb +119 -0
- data/rouge-5.0.0/lib/rouge/lexers/gts.rb +39 -0
- data/rouge-5.0.0/lib/rouge/lexers/hack.rb +47 -0
- data/rouge-5.0.0/lib/rouge/lexers/haml.rb +226 -0
- data/rouge-5.0.0/lib/rouge/lexers/handlebars.rb +91 -0
- data/rouge-5.0.0/lib/rouge/lexers/haskell.rb +207 -0
- data/rouge-5.0.0/lib/rouge/lexers/haxe.rb +265 -0
- data/rouge-5.0.0/lib/rouge/lexers/hcl.rb +166 -0
- data/rouge-5.0.0/lib/rouge/lexers/hlsl.rb +166 -0
- data/rouge-5.0.0/lib/rouge/lexers/hocon.rb +86 -0
- data/rouge-5.0.0/lib/rouge/lexers/hql.rb +135 -0
- data/rouge-5.0.0/lib/rouge/lexers/html.rb +141 -0
- data/rouge-5.0.0/lib/rouge/lexers/http.rb +87 -0
- data/rouge-5.0.0/lib/rouge/lexers/hylang.rb +93 -0
- data/rouge-5.0.0/lib/rouge/lexers/idlang.rb +312 -0
- data/rouge-5.0.0/lib/rouge/lexers/idris.rb +210 -0
- data/rouge-5.0.0/lib/rouge/lexers/iecst.rb +92 -0
- data/rouge-5.0.0/lib/rouge/lexers/igorpro/builtins.rb +1530 -0
- data/rouge-5.0.0/lib/rouge/lexers/igorpro.rb +193 -0
- data/rouge-5.0.0/lib/rouge/lexers/ini.rb +56 -0
- data/rouge-5.0.0/lib/rouge/lexers/io.rb +69 -0
- data/rouge-5.0.0/lib/rouge/lexers/irb.rb +73 -0
- data/rouge-5.0.0/lib/rouge/lexers/isabelle.rb +251 -0
- data/rouge-5.0.0/lib/rouge/lexers/isbl.rb +61 -0
- data/rouge-5.0.0/lib/rouge/lexers/j.rb +244 -0
- data/rouge-5.0.0/lib/rouge/lexers/janet.rb +218 -0
- data/rouge-5.0.0/lib/rouge/lexers/java.rb +92 -0
- data/rouge-5.0.0/lib/rouge/lexers/javascript.rb +315 -0
- data/rouge-5.0.0/lib/rouge/lexers/jinja.rb +169 -0
- data/rouge-5.0.0/lib/rouge/lexers/jsl.rb +66 -0
- data/rouge-5.0.0/lib/rouge/lexers/json.rb +72 -0
- data/rouge-5.0.0/lib/rouge/lexers/json5.rb +74 -0
- data/rouge-5.0.0/lib/rouge/lexers/json_doc.rb +26 -0
- data/rouge-5.0.0/lib/rouge/lexers/jsonnet.rb +153 -0
- data/rouge-5.0.0/lib/rouge/lexers/jsp.rb +119 -0
- data/rouge-5.0.0/lib/rouge/lexers/jsx.rb +91 -0
- data/rouge-5.0.0/lib/rouge/lexers/julia.rb +293 -0
- data/rouge-5.0.0/lib/rouge/lexers/kick_assembler.rb +100 -0
- data/rouge-5.0.0/lib/rouge/lexers/kotlin.rb +150 -0
- data/rouge-5.0.0/lib/rouge/lexers/lasso/keywords.rb +20 -0
- data/rouge-5.0.0/lib/rouge/lexers/lasso.rb +212 -0
- data/rouge-5.0.0/lib/rouge/lexers/lean.rb +164 -0
- data/rouge-5.0.0/lib/rouge/lexers/liquid.rb +284 -0
- data/rouge-5.0.0/lib/rouge/lexers/literate_coffeescript.rb +34 -0
- data/rouge-5.0.0/lib/rouge/lexers/literate_haskell.rb +37 -0
- data/rouge-5.0.0/lib/rouge/lexers/livescript.rb +310 -0
- data/rouge-5.0.0/lib/rouge/lexers/llvm/keywords.rb +16 -0
- data/rouge-5.0.0/lib/rouge/lexers/llvm.rb +59 -0
- data/rouge-5.0.0/lib/rouge/lexers/lua/keywords.rb +26 -0
- data/rouge-5.0.0/lib/rouge/lexers/lua.rb +186 -0
- data/rouge-5.0.0/lib/rouge/lexers/lustre.rb +79 -0
- data/rouge-5.0.0/lib/rouge/lexers/lutin.rb +34 -0
- data/rouge-5.0.0/lib/rouge/lexers/m68k.rb +143 -0
- data/rouge-5.0.0/lib/rouge/lexers/magik.rb +127 -0
- data/rouge-5.0.0/lib/rouge/lexers/make.rb +148 -0
- data/rouge-5.0.0/lib/rouge/lexers/markdown.rb +183 -0
- data/rouge-5.0.0/lib/rouge/lexers/mason.rb +110 -0
- data/rouge-5.0.0/lib/rouge/lexers/mathematica/keywords.rb +15 -0
- data/rouge-5.0.0/lib/rouge/lexers/mathematica.rb +95 -0
- data/rouge-5.0.0/lib/rouge/lexers/matlab/keywords.rb +15 -0
- data/rouge-5.0.0/lib/rouge/lexers/matlab.rb +81 -0
- data/rouge-5.0.0/lib/rouge/lexers/meson.rb +158 -0
- data/rouge-5.0.0/lib/rouge/lexers/minizinc.rb +87 -0
- data/rouge-5.0.0/lib/rouge/lexers/mojo.rb +39 -0
- data/rouge-5.0.0/lib/rouge/lexers/moonscript.rb +117 -0
- data/rouge-5.0.0/lib/rouge/lexers/mosel.rb +228 -0
- data/rouge-5.0.0/lib/rouge/lexers/msgtrans.rb +26 -0
- data/rouge-5.0.0/lib/rouge/lexers/mxml.rb +69 -0
- data/rouge-5.0.0/lib/rouge/lexers/nasm.rb +73 -0
- data/rouge-5.0.0/lib/rouge/lexers/nesasm.rb +78 -0
- data/rouge-5.0.0/lib/rouge/lexers/nginx.rb +73 -0
- data/rouge-5.0.0/lib/rouge/lexers/nial.rb +165 -0
- data/rouge-5.0.0/lib/rouge/lexers/nim.rb +154 -0
- data/rouge-5.0.0/lib/rouge/lexers/nix.rb +213 -0
- data/rouge-5.0.0/lib/rouge/lexers/objective_c/common.rb +182 -0
- data/rouge-5.0.0/lib/rouge/lexers/objective_c.rb +21 -0
- data/rouge-5.0.0/lib/rouge/lexers/objective_cpp.rb +32 -0
- data/rouge-5.0.0/lib/rouge/lexers/ocaml/common.rb +53 -0
- data/rouge-5.0.0/lib/rouge/lexers/ocaml.rb +65 -0
- data/rouge-5.0.0/lib/rouge/lexers/ocl.rb +84 -0
- data/rouge-5.0.0/lib/rouge/lexers/openedge.rb +632 -0
- data/rouge-5.0.0/lib/rouge/lexers/opentype_feature_file.rb +97 -0
- data/rouge-5.0.0/lib/rouge/lexers/p4.rb +81 -0
- data/rouge-5.0.0/lib/rouge/lexers/pascal.rb +68 -0
- data/rouge-5.0.0/lib/rouge/lexers/pdf.rb +109 -0
- data/rouge-5.0.0/lib/rouge/lexers/perl.rb +251 -0
- data/rouge-5.0.0/lib/rouge/lexers/php/keywords.rb +150 -0
- data/rouge-5.0.0/lib/rouge/lexers/php.rb +470 -0
- data/rouge-5.0.0/lib/rouge/lexers/plain_text.rb +27 -0
- data/rouge-5.0.0/lib/rouge/lexers/plist.rb +47 -0
- data/rouge-5.0.0/lib/rouge/lexers/plsql.rb +577 -0
- data/rouge-5.0.0/lib/rouge/lexers/pony.rb +94 -0
- data/rouge-5.0.0/lib/rouge/lexers/postscript.rb +93 -0
- data/rouge-5.0.0/lib/rouge/lexers/powershell.rb +248 -0
- data/rouge-5.0.0/lib/rouge/lexers/praat.rb +438 -0
- data/rouge-5.0.0/lib/rouge/lexers/prolog.rb +67 -0
- data/rouge-5.0.0/lib/rouge/lexers/prometheus.rb +122 -0
- data/rouge-5.0.0/lib/rouge/lexers/properties.rb +52 -0
- data/rouge-5.0.0/lib/rouge/lexers/protobuf.rb +71 -0
- data/rouge-5.0.0/lib/rouge/lexers/puppet.rb +129 -0
- data/rouge-5.0.0/lib/rouge/lexers/python.rb +340 -0
- data/rouge-5.0.0/lib/rouge/lexers/q.rb +125 -0
- data/rouge-5.0.0/lib/rouge/lexers/qml.rb +74 -0
- data/rouge-5.0.0/lib/rouge/lexers/r.rb +89 -0
- data/rouge-5.0.0/lib/rouge/lexers/racket.rb +568 -0
- data/rouge-5.0.0/lib/rouge/lexers/reasonml.rb +66 -0
- data/rouge-5.0.0/lib/rouge/lexers/rego.rb +60 -0
- data/rouge-5.0.0/lib/rouge/lexers/rescript.rb +119 -0
- data/rouge-5.0.0/lib/rouge/lexers/rml.rb +142 -0
- data/rouge-5.0.0/lib/rouge/lexers/robot_framework.rb +249 -0
- data/rouge-5.0.0/lib/rouge/lexers/rocq.rb +264 -0
- data/rouge-5.0.0/lib/rouge/lexers/ruby.rb +481 -0
- data/rouge-5.0.0/lib/rouge/lexers/rust.rb +261 -0
- data/rouge-5.0.0/lib/rouge/lexers/sas.rb +562 -0
- data/rouge-5.0.0/lib/rouge/lexers/sass/common.rb +182 -0
- data/rouge-5.0.0/lib/rouge/lexers/sass.rb +75 -0
- data/rouge-5.0.0/lib/rouge/lexers/scala.rb +172 -0
- data/rouge-5.0.0/lib/rouge/lexers/scheme.rb +113 -0
- data/rouge-5.0.0/lib/rouge/lexers/scss.rb +35 -0
- data/rouge-5.0.0/lib/rouge/lexers/sed.rb +173 -0
- data/rouge-5.0.0/lib/rouge/lexers/shell.rb +205 -0
- data/rouge-5.0.0/lib/rouge/lexers/sieve.rb +97 -0
- data/rouge-5.0.0/lib/rouge/lexers/slice.rb +32 -0
- data/rouge-5.0.0/lib/rouge/lexers/slim.rb +229 -0
- data/rouge-5.0.0/lib/rouge/lexers/smalltalk.rb +117 -0
- data/rouge-5.0.0/lib/rouge/lexers/smarty.rb +81 -0
- data/rouge-5.0.0/lib/rouge/lexers/sml.rb +345 -0
- data/rouge-5.0.0/lib/rouge/lexers/sparql.rb +131 -0
- data/rouge-5.0.0/lib/rouge/lexers/sqf/keywords.rb +14 -0
- data/rouge-5.0.0/lib/rouge/lexers/sqf.rb +108 -0
- data/rouge-5.0.0/lib/rouge/lexers/sql.rb +161 -0
- data/rouge-5.0.0/lib/rouge/lexers/ssh.rb +33 -0
- data/rouge-5.0.0/lib/rouge/lexers/stan.rb +445 -0
- data/rouge-5.0.0/lib/rouge/lexers/stata.rb +165 -0
- data/rouge-5.0.0/lib/rouge/lexers/supercollider.rb +115 -0
- data/rouge-5.0.0/lib/rouge/lexers/svelte.rb +91 -0
- data/rouge-5.0.0/lib/rouge/lexers/swift.rb +202 -0
- data/rouge-5.0.0/lib/rouge/lexers/systemd.rb +34 -0
- data/rouge-5.0.0/lib/rouge/lexers/syzlang.rb +316 -0
- data/rouge-5.0.0/lib/rouge/lexers/syzprog.rb +122 -0
- data/rouge-5.0.0/lib/rouge/lexers/tap.rb +88 -0
- data/rouge-5.0.0/lib/rouge/lexers/tcl.rb +198 -0
- data/rouge-5.0.0/lib/rouge/lexers/terraform.rb +121 -0
- data/rouge-5.0.0/lib/rouge/lexers/tex.rb +70 -0
- data/rouge-5.0.0/lib/rouge/lexers/thrift.rb +120 -0
- data/rouge-5.0.0/lib/rouge/lexers/toml.rb +124 -0
- data/rouge-5.0.0/lib/rouge/lexers/tsx.rb +33 -0
- data/rouge-5.0.0/lib/rouge/lexers/ttcn3.rb +117 -0
- data/rouge-5.0.0/lib/rouge/lexers/tulip.rb +107 -0
- data/rouge-5.0.0/lib/rouge/lexers/turtle.rb +61 -0
- data/rouge-5.0.0/lib/rouge/lexers/twig.rb +40 -0
- data/rouge-5.0.0/lib/rouge/lexers/typescript/common.rb +60 -0
- data/rouge-5.0.0/lib/rouge/lexers/typescript.rb +23 -0
- data/rouge-5.0.0/lib/rouge/lexers/vala.rb +78 -0
- data/rouge-5.0.0/lib/rouge/lexers/varnish.rb +168 -0
- data/rouge-5.0.0/lib/rouge/lexers/vb.rb +165 -0
- data/rouge-5.0.0/lib/rouge/lexers/velocity.rb +71 -0
- data/rouge-5.0.0/lib/rouge/lexers/verilog.rb +163 -0
- data/rouge-5.0.0/lib/rouge/lexers/veryl.rb +109 -0
- data/rouge-5.0.0/lib/rouge/lexers/vhdl.rb +98 -0
- data/rouge-5.0.0/lib/rouge/lexers/viml/keywords.rb +19 -0
- data/rouge-5.0.0/lib/rouge/lexers/viml.rb +68 -0
- data/rouge-5.0.0/lib/rouge/lexers/vue.rb +127 -0
- data/rouge-5.0.0/lib/rouge/lexers/wollok.rb +107 -0
- data/rouge-5.0.0/lib/rouge/lexers/xml.rb +56 -0
- data/rouge-5.0.0/lib/rouge/lexers/xojo.rb +61 -0
- data/rouge-5.0.0/lib/rouge/lexers/xpath.rb +332 -0
- data/rouge-5.0.0/lib/rouge/lexers/xquery.rb +146 -0
- data/rouge-5.0.0/lib/rouge/lexers/yaml.rb +388 -0
- data/rouge-5.0.0/lib/rouge/lexers/yang.rb +115 -0
- data/rouge-5.0.0/lib/rouge/lexers/zig.rb +139 -0
- data/rouge-5.0.0/lib/rouge/plugins/redcarpet.rb +38 -0
- data/rouge-5.0.0/lib/rouge/regex_lexer.rb +522 -0
- data/rouge-5.0.0/lib/rouge/template_lexer.rb +21 -0
- data/rouge-5.0.0/lib/rouge/tex_theme_renderer.rb +132 -0
- data/rouge-5.0.0/lib/rouge/text_analyzer.rb +50 -0
- data/rouge-5.0.0/lib/rouge/theme.rb +218 -0
- data/rouge-5.0.0/lib/rouge/themes/base16.rb +137 -0
- data/rouge-5.0.0/lib/rouge/themes/bw.rb +43 -0
- data/rouge-5.0.0/lib/rouge/themes/colorful.rb +70 -0
- data/rouge-5.0.0/lib/rouge/themes/github.rb +149 -0
- data/rouge-5.0.0/lib/rouge/themes/gruvbox.rb +176 -0
- data/rouge-5.0.0/lib/rouge/themes/igor_pro.rb +25 -0
- data/rouge-5.0.0/lib/rouge/themes/magritte.rb +80 -0
- data/rouge-5.0.0/lib/rouge/themes/molokai.rb +84 -0
- data/rouge-5.0.0/lib/rouge/themes/monokai.rb +95 -0
- data/rouge-5.0.0/lib/rouge/themes/monokai_sublime.rb +94 -0
- data/rouge-5.0.0/lib/rouge/themes/pastie.rb +72 -0
- data/rouge-5.0.0/lib/rouge/themes/thankful_eyes.rb +77 -0
- data/rouge-5.0.0/lib/rouge/themes/tulip.rb +72 -0
- data/rouge-5.0.0/lib/rouge/token.rb +192 -0
- data/rouge-5.0.0/lib/rouge/util.rb +102 -0
- data/rouge-5.0.0/lib/rouge/version.rb +8 -0
- data/rouge-5.0.0/lib/rouge.rb +117 -0
- data/rouge-5.0.0/lib/rubocop/cop/rouge/no_building_alternation_pattern_in_regexp.rb +71 -0
- data/rouge-5.0.0/lib/rubocop/cop/rouge/no_huge_collections.rb +37 -0
- data/rouge-5.0.0/rouge.gemspec +29 -0
- metadata +579 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class Docker < RegexLexer
|
|
7
|
+
title "Docker"
|
|
8
|
+
desc "Dockerfile syntax"
|
|
9
|
+
tag 'docker'
|
|
10
|
+
aliases 'dockerfile', 'Dockerfile', 'containerfile', 'Containerfile'
|
|
11
|
+
filenames 'Dockerfile', 'Dockerfile.*', '*.Dockerfile', '*.docker', 'Containerfile', 'Containerfile.*', '*.Containerfile'
|
|
12
|
+
mimetypes 'text/x-dockerfile-config'
|
|
13
|
+
|
|
14
|
+
KEYWORDS = %w(
|
|
15
|
+
FROM MAINTAINER CMD LABEL EXPOSE ENV ADD COPY ENTRYPOINT VOLUME USER WORKDIR ARG STOPSIGNAL HEALTHCHECK SHELL
|
|
16
|
+
).join('|')
|
|
17
|
+
|
|
18
|
+
start { @shell = Shell.new(@options) }
|
|
19
|
+
|
|
20
|
+
state :root do
|
|
21
|
+
rule %r/\s+/, Text
|
|
22
|
+
|
|
23
|
+
rule %r/^(FROM)(\s+)(.*)(\s+)(AS)(\s+)(.*)/io do
|
|
24
|
+
groups Keyword, Text::Whitespace, Str, Text::Whitespace, Keyword, Text::Whitespace, Str
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
rule %r/^(ONBUILD)(\s+)(#{KEYWORDS})(.*)/io do
|
|
28
|
+
groups Keyword, Text::Whitespace, Keyword, Str
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
rule %r/^(#{KEYWORDS})\b(.*)/io do
|
|
32
|
+
groups Keyword, Str
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
rule %r/#.*?$/, Comment
|
|
36
|
+
|
|
37
|
+
rule %r/^(ONBUILD\s+)?RUN(\s+)/i do
|
|
38
|
+
token Keyword
|
|
39
|
+
push :run
|
|
40
|
+
@shell.reset!
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
rule %r/\w+/, Text
|
|
44
|
+
rule %r/[^\w]+/, Text
|
|
45
|
+
rule %r/./, Text
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
state :run do
|
|
49
|
+
rule %r/\n/, Text, :pop!
|
|
50
|
+
rule %r/\\./m, Str::Escape
|
|
51
|
+
rule(/(\\.|[^\n\\])+/) { delegate @shell }
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class Dot < RegexLexer
|
|
7
|
+
title "DOT"
|
|
8
|
+
desc "graph description language"
|
|
9
|
+
|
|
10
|
+
tag 'dot'
|
|
11
|
+
aliases 'graphviz'
|
|
12
|
+
filenames '*.dot'
|
|
13
|
+
mimetypes 'text/vnd.graphviz'
|
|
14
|
+
|
|
15
|
+
start do
|
|
16
|
+
@html = HTML.new(options)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
state :comments_and_whitespace do
|
|
20
|
+
rule %r/\s+/, Text
|
|
21
|
+
rule %r(#.*), Comment::Single
|
|
22
|
+
rule %r(//.*?$), Comment::Single
|
|
23
|
+
rule %r(/(\\\n)?[*].*?[*](\\\n)?/)m, Comment::Multiline
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
state :html do
|
|
27
|
+
rule %r/[^<>]+/ do
|
|
28
|
+
delegate @html
|
|
29
|
+
end
|
|
30
|
+
rule %r/<.+?>/m do
|
|
31
|
+
delegate @html
|
|
32
|
+
end
|
|
33
|
+
rule %r/>/, Punctuation, :pop!
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
state :ID do
|
|
37
|
+
rule %r/([a-zA-Z][a-zA-Z_0-9]*)(\s*)(=)/ do |m|
|
|
38
|
+
token Name, m[1]
|
|
39
|
+
token Text, m[2]
|
|
40
|
+
token Punctuation, m[3]
|
|
41
|
+
end
|
|
42
|
+
rule %r/[a-zA-Z][a-zA-Z_0-9]*/, Name::Variable
|
|
43
|
+
rule %r/([0-9]+)?\.[0-9]+/, Num::Float
|
|
44
|
+
rule %r/[0-9]+/, Num::Integer
|
|
45
|
+
rule %r/"(\\"|[^"])*"/, Str::Double
|
|
46
|
+
rule %r/</ do
|
|
47
|
+
token Punctuation
|
|
48
|
+
@html.reset!
|
|
49
|
+
push :html
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
state :a_list do
|
|
54
|
+
mixin :comments_and_whitespace
|
|
55
|
+
mixin :ID
|
|
56
|
+
rule %r/[=;,]/, Punctuation
|
|
57
|
+
rule %r/\]/, Operator, :pop!
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
state :root do
|
|
61
|
+
mixin :comments_and_whitespace
|
|
62
|
+
rule %r/\b(strict|graph|digraph|subgraph|node|edge)\b/i, Keyword
|
|
63
|
+
rule %r/[{};:=]/, Punctuation
|
|
64
|
+
rule %r/-[->]/, Operator
|
|
65
|
+
rule %r/\[/, Operator, :a_list
|
|
66
|
+
mixin :ID
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class Dylan < RegexLexer
|
|
7
|
+
title 'Dylan'
|
|
8
|
+
desc 'Dylan Language (https://opendylan.org)'
|
|
9
|
+
tag 'dylan'
|
|
10
|
+
filenames '*.dylan'
|
|
11
|
+
|
|
12
|
+
# Definitions from the Dylan Reference Manual
|
|
13
|
+
# see:
|
|
14
|
+
# https://opendylan.org/books/drm/Modules
|
|
15
|
+
# https://opendylan.org/books/drm/Conditional_Execution
|
|
16
|
+
# https://opendylan.org/books/drm/Statement_Macros
|
|
17
|
+
reserved_words = Set.new %w(
|
|
18
|
+
begin block case class constant create define domain else
|
|
19
|
+
end exception for function generic handler if let library local
|
|
20
|
+
macro method module otherwise select unless until variable while
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
hash_word = Set.new %w(#t #f #next #rest #key #all-keys #include)
|
|
24
|
+
operators = Set.new %w(+ - * / ^ = == ~ ~= ~== < <= > >= & | :=)
|
|
25
|
+
|
|
26
|
+
state :root do
|
|
27
|
+
rule %r/^[\w.-]+:/, Comment::Preproc, :header
|
|
28
|
+
rule %r/\s+/, Text::Whitespace
|
|
29
|
+
rule(%r//) { goto :main }
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# see https://opendylan.org/books/drm/Dylan_Interchange_Format
|
|
33
|
+
state :header do
|
|
34
|
+
rule(/.*?$/) { token Comment; goto :header_value }
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
state :header_value do
|
|
38
|
+
# line continuations are defined as any line that starts with whitespace
|
|
39
|
+
rule %r/^[ \t]+.*?$/, Comment
|
|
40
|
+
rule %r/\n+/, Comment
|
|
41
|
+
rule(//) { pop! }
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
state :main do
|
|
45
|
+
# Comments
|
|
46
|
+
rule %r(//.*?$), Comment::Single
|
|
47
|
+
rule %r(/\*.*?\*/)m, Comment::Multiline
|
|
48
|
+
rule %r/\s+/, Text::Whitespace
|
|
49
|
+
|
|
50
|
+
# Keywords
|
|
51
|
+
rule %r/\w+/ do |m|
|
|
52
|
+
if reserved_words.include?(m[0])
|
|
53
|
+
token Keyword
|
|
54
|
+
elsif hash_word.include?(m[0])
|
|
55
|
+
token Keyword::Constant
|
|
56
|
+
else
|
|
57
|
+
fallthrough!
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
rule %r/#(t|f|next|rest|key|all-keys|include)\b/, Keyword::Constant
|
|
62
|
+
|
|
63
|
+
# Numbers
|
|
64
|
+
rule %r([+-]?\d+/\d+), Literal::Number::Other
|
|
65
|
+
rule %r/[+-]?\d*[.]\d+(?:e[+-]?\d+)?/i, Literal::Number::Float
|
|
66
|
+
rule %r/[+-]?\d+[.]\d*(?:e[+-]?\d+)?/i, Literal::Number::Float
|
|
67
|
+
rule %r/[+-]\d+(?:e[+-]?\d+)?/i, Literal::Number::Float
|
|
68
|
+
rule %r/#b[01]+/, Literal::Number::Bin
|
|
69
|
+
rule %r/#o[0-7]+/, Literal::Number::Oct
|
|
70
|
+
rule %r/[+-]?[0-9]+/, Literal::Number::Integer
|
|
71
|
+
rule %r/#x[0-9a-f]+/i, Literal::Number::Hex
|
|
72
|
+
|
|
73
|
+
# Operators and punctuation
|
|
74
|
+
rule %r/::|=>|#[(\[#]|[.][.][.]|[(),.;\[\]{}=?]/, Punctuation
|
|
75
|
+
|
|
76
|
+
word_re = %r([\w!&*<>|^\$%@][\w!&*<>|^\$%@=/?~+-]*|[+-~])
|
|
77
|
+
|
|
78
|
+
rule %r/\\#{word_re}/, Str::Symbol
|
|
79
|
+
|
|
80
|
+
rule word_re do |m|
|
|
81
|
+
word = m[0]
|
|
82
|
+
if operators.include?(word)
|
|
83
|
+
token Operator
|
|
84
|
+
elsif word.start_with?('<') && word.end_with?('>')
|
|
85
|
+
token Name::Class
|
|
86
|
+
elsif word.start_with?('*') && word.end_with?('*')
|
|
87
|
+
token Name::Variable::Instance
|
|
88
|
+
elsif word.start_with?('$')
|
|
89
|
+
token Name::Constant
|
|
90
|
+
else
|
|
91
|
+
token Name
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
rule %r/:/, Operator # For 'constrained names'
|
|
96
|
+
# Strings, characters and whitespace
|
|
97
|
+
rule %r/"/, Str::Double, :dq
|
|
98
|
+
rule %r/'([^\\']|(\\[\\'abefnrt0])|(\\[0-9a-f]+))'/, Str::Char
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
state :dq do
|
|
102
|
+
rule %r/\\[\\'"abefnrt0]/, Str::Escape
|
|
103
|
+
rule %r/\\<\h+>/, Str::Escape
|
|
104
|
+
rule %r/[^\\"]+/, Str::Double
|
|
105
|
+
rule %r/"/, Str::Double, :pop!
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
end
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
# -*- codding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class ECL < RegexLexer
|
|
7
|
+
tag 'ecl'
|
|
8
|
+
filenames '*.ecl'
|
|
9
|
+
mimetypes 'application/x-ecl'
|
|
10
|
+
|
|
11
|
+
title "ECL"
|
|
12
|
+
desc "Enterprise Control Language (hpccsystems.com)"
|
|
13
|
+
|
|
14
|
+
id = /(#?)\b([a-z_][\w]*?)(\d*)\b/i
|
|
15
|
+
|
|
16
|
+
def self.class_first
|
|
17
|
+
@class_first ||= Set.new %w(
|
|
18
|
+
file date str math metaphone metaphone3 uni audit blas system
|
|
19
|
+
)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def self.class_second
|
|
23
|
+
@class_second ||= Set.new %w(
|
|
24
|
+
debug email job log thorlib util workunit
|
|
25
|
+
)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def self.functions
|
|
29
|
+
@functions ||= Set.new %w(
|
|
30
|
+
abs acos aggregate allnodes apply ascii asin asstring atan _token ave
|
|
31
|
+
case catch choose choosen choosesets clustersize combine correlation
|
|
32
|
+
cos cosh count covariance cron dataset dedup define denormalize
|
|
33
|
+
dictionary distribute distributed distribution ebcdic enth error
|
|
34
|
+
evaluate event eventextra eventname exists exp failcode failmessage
|
|
35
|
+
fetch fromunicode fromxml getenv getisvalid global graph group hash
|
|
36
|
+
hashcrc having httpcall httpheader if iff index intformat isvalid
|
|
37
|
+
iterate join keyunicode length library limit ln local log loop map
|
|
38
|
+
matched matchlength matchposition matchtext matchunicode max merge
|
|
39
|
+
mergejoin min nofold nolocal nonempty normalize parse pipe power
|
|
40
|
+
preload process project pull random range rank ranked realformat
|
|
41
|
+
recordof regexfind regexreplace regroup rejected rollup round roundup
|
|
42
|
+
row rowdiff sample set sin sinh sizeof soapcall sort sorted sqrt
|
|
43
|
+
stepped stored sum table tan tanh thisnode topn tounicode toxml
|
|
44
|
+
transfer transform trim truncate typeof ungroup unicodeorder variance
|
|
45
|
+
which workunit xmldecode xmlencode xmltext xmlunicode assert
|
|
46
|
+
build buildindex fail keydiff keypatch loadxml nothor notify
|
|
47
|
+
output parallel sequential wait
|
|
48
|
+
)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def self.keywords
|
|
52
|
+
@keywords ||= Set.new %w(
|
|
53
|
+
and or in not all any as from atmost before best between case const
|
|
54
|
+
counter csv descend encrypt end endmacro enum except exclusive expire
|
|
55
|
+
export extend fail few first flat full function functionmacro group
|
|
56
|
+
heading hole ifblock import joined keep keyed last left limit load
|
|
57
|
+
local locale lookup many maxcount maxlength _token module interface
|
|
58
|
+
named nocase noroot noscan nosort of only opt outer overwrite packed
|
|
59
|
+
partition penalty physicallength pipe quote record repeat return
|
|
60
|
+
right rows scan self separator service shared skew skip sql store
|
|
61
|
+
terminator thor threshold token transform trim type unicodeorder
|
|
62
|
+
unsorted validate virtual whole wild within xml xpath after cluster
|
|
63
|
+
compressed compression default encoding escape fileposition forward
|
|
64
|
+
grouped inner internal linkcounted literal lzw mofn multiple
|
|
65
|
+
namespace wnotrim noxpath onfail prefetch retry rowset scope smart
|
|
66
|
+
soapaction stable timelimit timeout unordered unstable update use
|
|
67
|
+
width
|
|
68
|
+
)
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def self.template
|
|
72
|
+
@template ||= Set.new %w(
|
|
73
|
+
append apply break constant debug declare demangle else elseif end
|
|
74
|
+
endregion error expand export exportxml for forall getdatatype if
|
|
75
|
+
ifdefined inmodule isdefined isvalid line link loop mangle onwarning
|
|
76
|
+
option region set stored text trace uniquename warning webservice
|
|
77
|
+
workunit loadxml
|
|
78
|
+
)
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def self.type
|
|
82
|
+
@type ||= Set.new %w(
|
|
83
|
+
ascii big_endian boolean data decimal ebcdic grouped integer
|
|
84
|
+
linkcounted pattern qstring real record rule set of streamed string
|
|
85
|
+
token udecimal unicode utf8 unsigned varstring varunicode
|
|
86
|
+
)
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def self.typed
|
|
90
|
+
@typed ||= Set.new %w(
|
|
91
|
+
data string qstring varstring varunicode unicode utf8
|
|
92
|
+
)
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
state :single_quote do
|
|
96
|
+
rule %r([xDQUV]?'([^'\\]*(?:\\.[^'\\]*)*)'), Str::Single
|
|
97
|
+
rule %r/\\(x\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)/, Text
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
state :inline_whitespace do
|
|
101
|
+
rule %r/[ \t\r]+/, Text
|
|
102
|
+
rule %r/\\\n/, Text # line continuation
|
|
103
|
+
rule %r(/[*].*?[*]/)m, Comment::Multiline
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
state :whitespace do
|
|
107
|
+
rule %r/\n+/m, Text
|
|
108
|
+
rule %r(//.*), Comment::Single
|
|
109
|
+
mixin :inline_whitespace
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
state :root do
|
|
113
|
+
mixin :whitespace
|
|
114
|
+
mixin :single_quote
|
|
115
|
+
|
|
116
|
+
rule %r(\b(?i:(and|not|or|in))\b), Operator::Word
|
|
117
|
+
rule %r(:=|>|<|<>|/|\\|\+|-|=), Operator
|
|
118
|
+
rule %r([\[\]{}();,\&\.\%]), Punctuation
|
|
119
|
+
|
|
120
|
+
rule %r(\b(?i:(beginc\+\+.*?endc\+\+)))m, Str::Single
|
|
121
|
+
rule %r(\b(?i:(embed.*?endembed)))m, Str::Single
|
|
122
|
+
|
|
123
|
+
rule %r(\b(\w+)\.(\w+)\.(\w+)) do |m|
|
|
124
|
+
if m[1] == "std" &&
|
|
125
|
+
self.class.class_first.include?(m[2]) &&
|
|
126
|
+
self.class.class_second.include?(m[3])
|
|
127
|
+
token Name::Class
|
|
128
|
+
else
|
|
129
|
+
token Name::Variable
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
rule %r(\b(?i:(u)?decimal)(\d+(_\d+)?)\b), Keyword::Type
|
|
134
|
+
|
|
135
|
+
rule %r/\d+\.\d+(e[\+\-]?\d+)?/i, Num::Float
|
|
136
|
+
rule %r/x[0-9a-f]+/i, Num::Hex
|
|
137
|
+
|
|
138
|
+
rule %r/0x[0-9a-f]+/i, Num::Hex
|
|
139
|
+
rule %r/0[0-9a-f]+x/i, Num::Hex
|
|
140
|
+
rule %r(0[bB][01]+), Num::Bin
|
|
141
|
+
rule %r([01]+[bB]), Num::Bin
|
|
142
|
+
rule %r(\d+), Num::Integer
|
|
143
|
+
|
|
144
|
+
rule id do |m|
|
|
145
|
+
name_only = m[2].downcase
|
|
146
|
+
name = name_only + m[3]
|
|
147
|
+
number = (m[3] == "") ? nil : m[3].to_i
|
|
148
|
+
if m[1] == "#"
|
|
149
|
+
if self.class.template.include? name
|
|
150
|
+
token Keyword::Type
|
|
151
|
+
else
|
|
152
|
+
token Error
|
|
153
|
+
end
|
|
154
|
+
elsif self.class.typed.include?(name_only) && number != nil
|
|
155
|
+
token Keyword::Type
|
|
156
|
+
elsif self.class.type.include? name
|
|
157
|
+
token Keyword::Type
|
|
158
|
+
elsif self.class.keywords.include? name
|
|
159
|
+
token Keyword
|
|
160
|
+
elsif self.class.functions.include? name
|
|
161
|
+
token Name::Function
|
|
162
|
+
elsif ["integer", "unsigned"].include?(name_only) && (1..8).cover?(number)
|
|
163
|
+
token Keyword::Type
|
|
164
|
+
elsif name_only == "real" && [4, 8].include?(number)
|
|
165
|
+
token Keyword::Type
|
|
166
|
+
elsif ["true", "false"].include? name
|
|
167
|
+
token Keyword::Constant
|
|
168
|
+
else
|
|
169
|
+
token Name::Other
|
|
170
|
+
end
|
|
171
|
+
end
|
|
172
|
+
end
|
|
173
|
+
end
|
|
174
|
+
end
|
|
175
|
+
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
|
|
3
|
+
module Rouge
|
|
4
|
+
module Lexers
|
|
5
|
+
class EEX < TemplateLexer
|
|
6
|
+
title "EEX"
|
|
7
|
+
desc "Embedded Elixir"
|
|
8
|
+
|
|
9
|
+
tag 'eex'
|
|
10
|
+
aliases 'leex', 'heex'
|
|
11
|
+
|
|
12
|
+
filenames '*.eex', '*.leex', '*.heex'
|
|
13
|
+
|
|
14
|
+
def initialize(opts={})
|
|
15
|
+
@elixir_lexer = Elixir.new(opts)
|
|
16
|
+
|
|
17
|
+
super(opts)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
start do
|
|
21
|
+
parent.reset!
|
|
22
|
+
@elixir_lexer.reset!
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
open = /<%%|<%=|<%#|<%/
|
|
26
|
+
close = /%%>|%>/
|
|
27
|
+
|
|
28
|
+
state :root do
|
|
29
|
+
rule %r/<%#/, Comment, :comment
|
|
30
|
+
|
|
31
|
+
rule open, Comment::Preproc, :elixir
|
|
32
|
+
|
|
33
|
+
rule %r/.+?(?=#{open})|.+/mo do
|
|
34
|
+
delegate parent
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
state :comment do
|
|
39
|
+
rule close, Comment, :pop!
|
|
40
|
+
rule %r/.+?(?=#{close})|.+/mo, Comment
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
state :elixir do
|
|
44
|
+
rule close, Comment::Preproc, :pop!
|
|
45
|
+
|
|
46
|
+
rule %r/.+?(?=#{close})|.+/mo do
|
|
47
|
+
delegate @elixir_lexer
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class Eiffel < RegexLexer
|
|
7
|
+
title "Eiffel"
|
|
8
|
+
desc "Eiffel programming language"
|
|
9
|
+
|
|
10
|
+
tag 'eiffel'
|
|
11
|
+
filenames '*.e'
|
|
12
|
+
mimetypes 'text/x-eiffel'
|
|
13
|
+
|
|
14
|
+
LanguageKeywords = %w(
|
|
15
|
+
across agent alias all and attached as assign attribute check
|
|
16
|
+
class convert create debug deferred detachable do else elseif end
|
|
17
|
+
ensure expanded export external feature from frozen if implies inherit
|
|
18
|
+
inspect invariant like local loop not note obsolete old once or
|
|
19
|
+
Precursor redefine rename require rescue retry select separate
|
|
20
|
+
some then undefine until variant Void when xor
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
BooleanConstants = %w(True False)
|
|
24
|
+
|
|
25
|
+
LanguageVariables = %w(Current Result)
|
|
26
|
+
|
|
27
|
+
SimpleString = /(?:[^"%\b\f\v]|%[A-DFHLNQR-V%'"()<>]|%\/(?:0[xX][\da-fA-F](?:_*[\da-fA-F])*|0[cC][0-7](?:_*[0-7])*|0[bB][01](?:_*[01])*|\d(?:_*\d)*)\/)+?/
|
|
28
|
+
|
|
29
|
+
state :root do
|
|
30
|
+
rule %r/"\[/, Str::Other, :aligned_verbatim_string
|
|
31
|
+
rule %r/"\{/, Str::Other, :non_aligned_verbatim_string
|
|
32
|
+
rule %r/"(?:[^%\b\f\n\r\v]|%[A-DFHLNQR-V%'"()<>]|%\/(?:0[xX][\da-fA-F](?:_*[\da-fA-F])*|0[cC][0-7](?:_*[0-7])*|0[bB][01](?:_*[01])*|\d(?:_*\d)*)\/)*?"/, Str::Double
|
|
33
|
+
rule %r/--.*/, Comment::Single
|
|
34
|
+
rule %r/'(?:[^%\b\f\n\r\t\v]|%[A-DFHLNQR-V%'"()<>]|%\/(?:0[xX][\da-fA-F](?:_*[\da-fA-F])*|0[cC][0-7](?:_*[0-7])*|0[bB][01](?:_*[01])*|\d(?:_*\d)*)\/)'/, Str::Char
|
|
35
|
+
|
|
36
|
+
rule %r/(?:#{LanguageKeywords.join('|')})\b/, Keyword
|
|
37
|
+
rule %r/(?:#{LanguageVariables.join('|')})\b/, Keyword::Variable
|
|
38
|
+
rule %r/(?:#{BooleanConstants.join('|')})\b/, Keyword::Constant
|
|
39
|
+
|
|
40
|
+
rule %r/\b0[xX][\da-fA-F](?:_*[\da-fA-F])*b/, Num::Hex
|
|
41
|
+
rule %r/\b0[cC][0-7](?:_*[0-7])*\b/, Num::Oct
|
|
42
|
+
rule %r/\b0[bB][01](?:_*[01])*\b/, Num::Bin
|
|
43
|
+
rule %r/\d(?:_*\d)*/, Num::Integer
|
|
44
|
+
rule %r/(?:\d(?:_*\d)*)?\.(?:(?:\d(?:_*\d)*)?[eE][+-]?)?\d(?:_*\d)*|\d(?:_*\d)*\.?/, Num::Float
|
|
45
|
+
|
|
46
|
+
rule %r/:=|<<|>>|\(\||\|\)|->|\.|[{}\[\];(),:?]/, Punctuation::Indicator
|
|
47
|
+
rule %r/\\\\|\|\.\.\||\.\.|\/[~\/]?|[><\/]=?|[-+*^=~≤≥−∀∃¦⟳⟲]/, Operator
|
|
48
|
+
|
|
49
|
+
rule %r/[A-Z][\dA-Z_]*/, Name::Class
|
|
50
|
+
rule %r/[A-Za-z][\dA-Za-z_]*/, Name
|
|
51
|
+
rule %r/\s+/, Text
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
state :aligned_verbatim_string do
|
|
55
|
+
rule %r/]"/, Str::Other, :pop!
|
|
56
|
+
rule SimpleString, Str::Other
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
state :non_aligned_verbatim_string do
|
|
60
|
+
rule %r/}"/, Str::Other, :pop!
|
|
61
|
+
rule SimpleString, Str::Other
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
# Direct port of pygments Lexer.
|
|
7
|
+
# See: https://bitbucket.org/birkenfeld/pygments-main/src/7304e4759ae65343d89a51359ca538912519cc31/pygments/lexers/functional.py?at=default#cl-2362
|
|
8
|
+
class Elixir < RegexLexer
|
|
9
|
+
title "Elixir"
|
|
10
|
+
desc "Elixir language (elixir-lang.org)"
|
|
11
|
+
|
|
12
|
+
tag 'elixir'
|
|
13
|
+
aliases 'elixir', 'exs'
|
|
14
|
+
|
|
15
|
+
filenames '*.ex', '*.exs'
|
|
16
|
+
|
|
17
|
+
def self.detect?(text)
|
|
18
|
+
return true if text.shebang?('elixir')
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
mimetypes 'text/x-elixir', 'application/x-elixir'
|
|
22
|
+
|
|
23
|
+
state :root do
|
|
24
|
+
rule %r/\s+/m, Text
|
|
25
|
+
rule %r/#.*$/, Comment::Single
|
|
26
|
+
rule %r{\b(case|cond|end|bc|lc|if|unless|try|loop|receive|fn|defmodule|
|
|
27
|
+
defp?|defprotocol|defimpl|defrecord|defmacrop?|defdelegate|
|
|
28
|
+
defexception|defguardp?|defstruct|exit|raise|throw|after|rescue|catch|else)\b(?![?!])|
|
|
29
|
+
(?<!\.)\b(do|\-\>)\b}x, Keyword
|
|
30
|
+
rule %r/\b(import|require|use|recur|quote|unquote|super|refer)\b(?![?!])/, Keyword::Namespace
|
|
31
|
+
rule %r/(?<!\.)\b(and|not|or|when|xor|in)\b/, Operator::Word
|
|
32
|
+
rule %r{%=|\*=|\*\*=|\+=|\-=|\^=|\|\|=|
|
|
33
|
+
<=>|<(?!<|=)|>(?!<|=|>)|<=|>=|===|==|=~|!=|!~|(?=[\s])\?|
|
|
34
|
+
(?<=[\s])!+|&(&&?|(?!\d))|\|\||\^|\*|\+|\-|/|
|
|
35
|
+
\||\+\+|\-\-|\*\*|\/\/|\<\-|\<\>|<<|>>|=|\.|~~~}x, Operator
|
|
36
|
+
rule %r{(?<!:)(:)([a-zA-Z_]\w*([?!]|=(?![>=]))?|\<\>|===?|>=?|<=?|
|
|
37
|
+
<=>|&&?|%\(\)|%\[\]|%\{\}|\+\+?|\-\-?|\|\|?|\!|//|[%&`/\|]|
|
|
38
|
+
\*\*?|=?~|<\-)|([a-zA-Z_]\w*([?!])?)(:)(?!:)}, Str::Symbol
|
|
39
|
+
rule %r/:"/, Str::Symbol, :interpoling_symbol
|
|
40
|
+
rule %r/\b(nil|true|false)\b(?![?!])|\b[A-Z]\w*\b/, Name::Constant
|
|
41
|
+
rule %r/\b(__(FILE|LINE|MODULE|MAIN|FUNCTION)__)\b(?![?!])/, Name::Builtin::Pseudo
|
|
42
|
+
rule %r/[a-zA-Z_!]\w*[!\?]?/, Name
|
|
43
|
+
rule %r{::|[%(){};,/\|:\\\[\]]}, Punctuation
|
|
44
|
+
rule %r/@[a-zA-Z_]\w*|&\d/, Name::Variable
|
|
45
|
+
rule %r{\b\d(_?\d)*(\.(?![^\d\s])(_?\d)+)([eE][-+]?\d(_?\d)*)?\b}, Num::Float
|
|
46
|
+
rule %r{\b0x[0-9A-Fa-f](_?[0-9A-Fa-f])*\b}, Num::Hex
|
|
47
|
+
rule %r{\b0o[0-7](_?[0-7])*\b}, Num::Oct
|
|
48
|
+
rule %r{\b0b[01](_?[01])*\b}, Num::Bin
|
|
49
|
+
rule %r{\b\d(_?\d)*\b}, Num::Integer
|
|
50
|
+
|
|
51
|
+
mixin :strings
|
|
52
|
+
mixin :sigil_strings
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
state :strings do
|
|
56
|
+
rule %r/(%[A-Ba-z])?"""(?:.|\n)*?"""/, Str::Doc
|
|
57
|
+
rule %r/'''(?:.|\n)*?'''/, Str::Doc
|
|
58
|
+
rule %r/"/, Str::Double, :dqs
|
|
59
|
+
rule %r/'/, Str::Single, :sqs
|
|
60
|
+
rule %r{(?<!\w)\?(\\(x\d{1,2}|\h{1,2}(?!\h)\b|0[0-7]{0,2}(?![0-7])\b[^x0MC])|(\\[MC]-)+\w|[^\s\\])}, Str::Other
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
state :dqs do
|
|
64
|
+
mixin :escapes
|
|
65
|
+
mixin :interpoling
|
|
66
|
+
rule %r/[^#"\\]+/, Str::Double
|
|
67
|
+
rule %r/"/, Str::Double, :pop!
|
|
68
|
+
rule %r/[#\\]/, Str::Double
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
state :sqs do
|
|
72
|
+
mixin :escapes
|
|
73
|
+
mixin :interpoling
|
|
74
|
+
rule %r/[^#'\\]+/, Str::Single
|
|
75
|
+
rule %r/'/, Str::Single, :pop!
|
|
76
|
+
rule %r/[#\\]/, Str::Single
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
state :interpoling do
|
|
80
|
+
rule %r/#\{/, Str::Interpol, :interpoling_string
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
state :interpoling_string do
|
|
84
|
+
rule %r/\}/, Str::Interpol, :pop!
|
|
85
|
+
mixin :root
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
state :escapes do
|
|
89
|
+
rule %r/\\x\h{2}/, Str::Escape
|
|
90
|
+
rule %r/\\u\{?\d+\}?/, Str::Escape
|
|
91
|
+
rule %r/\\[\\abdefnrstv0"']/, Str::Escape
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
state :interpoling_symbol do
|
|
95
|
+
rule %r/"/, Str::Symbol, :pop!
|
|
96
|
+
mixin :interpoling
|
|
97
|
+
rule %r/[^#"]+/, Str::Symbol
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
state :sigil_strings do
|
|
101
|
+
# ~-sigiled strings
|
|
102
|
+
# ~r(abc), ~r[abc], ~r<abc>, ~r|abc|, ~r/abc/, etc
|
|
103
|
+
# Cribbed and adjusted from Ruby lexer
|
|
104
|
+
delimiter_map = { '{' => '}', '[' => ']', '(' => ')', '<' => '>' }
|
|
105
|
+
sigil_opens = Regexp.union(delimiter_map.keys + [%r/"{3}/] + %w(| / ' "))
|
|
106
|
+
rule %r/~([a-z]|[A-Z][A-Z0-9]*)(#{sigil_opens})/ do |m|
|
|
107
|
+
open = Regexp.escape(m[2])
|
|
108
|
+
close = Regexp.escape(delimiter_map[m[2]] || m[2])
|
|
109
|
+
interp = /^[srcw]$/ === m[1]
|
|
110
|
+
toktype = Str::Other
|
|
111
|
+
|
|
112
|
+
puts " open: #{open.inspect}" if @debug
|
|
113
|
+
puts " close: #{close.inspect}" if @debug
|
|
114
|
+
|
|
115
|
+
# regexes
|
|
116
|
+
if m[1] == 'r' || m[1] == 'R'
|
|
117
|
+
toktype = Str::Regex
|
|
118
|
+
push :regex_flags
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
if m[1] == 'w' || m[1] == 'W'
|
|
122
|
+
push :list_flags
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
if open == '"""'
|
|
126
|
+
toktype = Str::Doc
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
token toktype
|
|
130
|
+
|
|
131
|
+
push do
|
|
132
|
+
rule %r/#{close}/, toktype, :pop!
|
|
133
|
+
|
|
134
|
+
if toktype == Str::Doc
|
|
135
|
+
rule %r/(?:.|\n)*?"""/, toktype, :pop!
|
|
136
|
+
elsif interp
|
|
137
|
+
mixin :interpoling
|
|
138
|
+
rule %r/#/, toktype
|
|
139
|
+
else
|
|
140
|
+
rule %r/[\\#]/, toktype
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
uniq_chars = [open, close].uniq.join.squeeze
|
|
144
|
+
rule %r/[^##{uniq_chars}\\]+/m, toktype
|
|
145
|
+
end
|
|
146
|
+
end
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
state :regex_flags do
|
|
150
|
+
rule %r/[fgimrsux]*/, Str::Regex, :pop!
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
state :list_flags do
|
|
154
|
+
rule %r/[csa]?/, Str::Other, :pop!
|
|
155
|
+
end
|
|
156
|
+
end
|
|
157
|
+
end
|
|
158
|
+
end
|