pygments.rb 0.6.3 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGELOG.md +11 -0
- data/README.md +6 -6
- data/Rakefile +2 -1
- data/cache-lexers.rb +1 -1
- data/circle.yml +7 -0
- data/lib/pygments/lexer.rb +3 -3
- data/lib/pygments/popen.rb +67 -30
- data/lib/pygments/version.rb +1 -1
- data/pygments.rb.gemspec +2 -1
- data/test/test_pygments.rb +16 -16
- data/vendor/pygments-main/AUTHORS +54 -8
- data/vendor/pygments-main/CHANGES +247 -25
- data/vendor/pygments-main/LICENSE +1 -1
- data/vendor/pygments-main/Makefile +15 -6
- data/vendor/pygments-main/README.rst +39 -0
- data/vendor/pygments-main/REVISION +1 -1
- data/vendor/pygments-main/TODO +0 -3
- data/vendor/pygments-main/doc/_themes/pygments14/layout.html +1 -1
- data/vendor/pygments-main/doc/_themes/pygments14/static/pygments14.css_t +1 -1
- data/vendor/pygments-main/doc/conf.py +3 -11
- data/vendor/pygments-main/doc/docs/api.rst +15 -0
- data/vendor/pygments-main/doc/docs/cmdline.rst +6 -2
- data/vendor/pygments-main/doc/docs/filterdevelopment.rst +4 -3
- data/vendor/pygments-main/doc/docs/integrate.rst +11 -15
- data/vendor/pygments-main/doc/docs/java.rst +7 -7
- data/vendor/pygments-main/doc/docs/lexerdevelopment.rst +258 -171
- data/vendor/pygments-main/doc/docs/lexers.rst +2 -2
- data/vendor/pygments-main/doc/docs/styles.rst +58 -0
- data/vendor/pygments-main/doc/docs/tokens.rst +22 -2
- data/vendor/pygments-main/doc/docs/unicode.rst +15 -7
- data/vendor/pygments-main/doc/faq.rst +17 -21
- data/vendor/pygments-main/doc/index.rst +12 -11
- data/vendor/pygments-main/doc/languages.rst +10 -7
- data/vendor/pygments-main/external/autopygmentize +9 -6
- data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +70 -52
- data/vendor/pygments-main/external/markdown-processor.py +1 -1
- data/vendor/pygments-main/external/moin-parser.py +1 -1
- data/vendor/pygments-main/external/rst-directive.py +1 -1
- data/vendor/pygments-main/pygmentize +2 -1
- data/vendor/pygments-main/pygments/__init__.py +14 -15
- data/vendor/pygments-main/pygments/cmdline.py +188 -113
- data/vendor/pygments-main/pygments/console.py +13 -13
- data/vendor/pygments-main/pygments/filter.py +7 -7
- data/vendor/pygments-main/pygments/filters/__init__.py +24 -32
- data/vendor/pygments-main/pygments/formatter.py +5 -5
- data/vendor/pygments-main/pygments/formatters/__init__.py +92 -44
- data/vendor/pygments-main/pygments/formatters/_mapping.py +51 -69
- data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
- data/vendor/pygments-main/pygments/formatters/html.py +63 -51
- data/vendor/pygments-main/pygments/formatters/img.py +25 -22
- data/vendor/pygments-main/pygments/formatters/irc.py +182 -0
- data/vendor/pygments-main/pygments/formatters/latex.py +34 -22
- data/vendor/pygments-main/pygments/formatters/other.py +5 -7
- data/vendor/pygments-main/pygments/formatters/rtf.py +28 -31
- data/vendor/pygments-main/pygments/formatters/svg.py +1 -2
- data/vendor/pygments-main/pygments/formatters/terminal.py +29 -45
- data/vendor/pygments-main/pygments/formatters/terminal256.py +118 -31
- data/vendor/pygments-main/pygments/lexer.py +120 -34
- data/vendor/pygments-main/pygments/lexers/__init__.py +85 -53
- data/vendor/pygments-main/pygments/lexers/{_asybuiltins.py → _asy_builtins.py} +7 -7
- data/vendor/pygments-main/pygments/lexers/{_clbuiltins.py → _cl_builtins.py} +17 -17
- data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +72 -0
- data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1346 -0
- data/vendor/pygments-main/pygments/lexers/{_lassobuiltins.py → _lasso_builtins.py} +4699 -4561
- data/vendor/pygments-main/pygments/lexers/{_luabuiltins.py → _lua_builtins.py} +91 -51
- data/vendor/pygments-main/pygments/lexers/_mapping.py +342 -242
- data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1172 -0
- data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +2547 -0
- data/vendor/pygments-main/pygments/lexers/{_phpbuiltins.py → _php_builtins.py} +350 -353
- data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +600 -212
- data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +3084 -30
- data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1163 -0
- data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +91 -13
- data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +419 -0
- data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1004 -0
- data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1939 -0
- data/vendor/pygments-main/pygments/lexers/actionscript.py +240 -0
- data/vendor/pygments-main/pygments/lexers/agile.py +14 -2542
- data/vendor/pygments-main/pygments/lexers/algebra.py +221 -0
- data/vendor/pygments-main/pygments/lexers/ambient.py +76 -0
- data/vendor/pygments-main/pygments/lexers/ampl.py +87 -0
- data/vendor/pygments-main/pygments/lexers/apl.py +101 -0
- data/vendor/pygments-main/pygments/lexers/archetype.py +318 -0
- data/vendor/pygments-main/pygments/lexers/asm.py +276 -81
- data/vendor/pygments-main/pygments/lexers/automation.py +374 -0
- data/vendor/pygments-main/pygments/lexers/basic.py +500 -0
- data/vendor/pygments-main/pygments/lexers/bibtex.py +156 -0
- data/vendor/pygments-main/pygments/lexers/business.py +594 -0
- data/vendor/pygments-main/pygments/lexers/c_cpp.py +252 -0
- data/vendor/pygments-main/pygments/lexers/c_like.py +541 -0
- data/vendor/pygments-main/pygments/lexers/capnproto.py +79 -0
- data/vendor/pygments-main/pygments/lexers/chapel.py +101 -0
- data/vendor/pygments-main/pygments/lexers/clean.py +288 -0
- data/vendor/pygments-main/pygments/lexers/compiled.py +24 -5182
- data/vendor/pygments-main/pygments/lexers/configs.py +833 -0
- data/vendor/pygments-main/pygments/lexers/console.py +114 -0
- data/vendor/pygments-main/pygments/lexers/crystal.py +384 -0
- data/vendor/pygments-main/pygments/lexers/csound.py +366 -0
- data/vendor/pygments-main/pygments/lexers/css.py +689 -0
- data/vendor/pygments-main/pygments/lexers/d.py +251 -0
- data/vendor/pygments-main/pygments/lexers/dalvik.py +6 -6
- data/vendor/pygments-main/pygments/lexers/data.py +555 -0
- data/vendor/pygments-main/pygments/lexers/diff.py +165 -0
- data/vendor/pygments-main/pygments/lexers/dotnet.py +96 -88
- data/vendor/pygments-main/pygments/lexers/dsls.py +878 -0
- data/vendor/pygments-main/pygments/lexers/dylan.py +289 -0
- data/vendor/pygments-main/pygments/lexers/ecl.py +125 -0
- data/vendor/pygments-main/pygments/lexers/eiffel.py +65 -0
- data/vendor/pygments-main/pygments/lexers/elm.py +121 -0
- data/vendor/pygments-main/pygments/lexers/erlang.py +533 -0
- data/vendor/pygments-main/pygments/lexers/esoteric.py +275 -0
- data/vendor/pygments-main/pygments/lexers/ezhil.py +68 -0
- data/vendor/pygments-main/pygments/lexers/factor.py +344 -0
- data/vendor/pygments-main/pygments/lexers/fantom.py +250 -0
- data/vendor/pygments-main/pygments/lexers/felix.py +273 -0
- data/vendor/pygments-main/pygments/lexers/forth.py +177 -0
- data/vendor/pygments-main/pygments/lexers/fortran.py +205 -0
- data/vendor/pygments-main/pygments/lexers/foxpro.py +1 -1
- data/vendor/pygments-main/pygments/lexers/functional.py +11 -3661
- data/vendor/pygments-main/pygments/lexers/go.py +101 -0
- data/vendor/pygments-main/pygments/lexers/grammar_notation.py +213 -0
- data/vendor/pygments-main/pygments/lexers/graph.py +7 -8
- data/vendor/pygments-main/pygments/lexers/graphics.py +553 -0
- data/vendor/pygments-main/pygments/lexers/haskell.py +840 -0
- data/vendor/pygments-main/pygments/lexers/haxe.py +936 -0
- data/vendor/pygments-main/pygments/lexers/hdl.py +172 -145
- data/vendor/pygments-main/pygments/lexers/hexdump.py +97 -0
- data/vendor/pygments-main/pygments/lexers/html.py +602 -0
- data/vendor/pygments-main/pygments/lexers/idl.py +270 -0
- data/vendor/pygments-main/pygments/lexers/igor.py +288 -0
- data/vendor/pygments-main/pygments/lexers/inferno.py +3 -3
- data/vendor/pygments-main/pygments/lexers/installers.py +322 -0
- data/vendor/pygments-main/pygments/lexers/int_fiction.py +1343 -0
- data/vendor/pygments-main/pygments/lexers/iolang.py +63 -0
- data/vendor/pygments-main/pygments/lexers/j.py +146 -0
- data/vendor/pygments-main/pygments/lexers/javascript.py +1506 -0
- data/vendor/pygments-main/pygments/lexers/julia.py +333 -0
- data/vendor/pygments-main/pygments/lexers/jvm.py +232 -186
- data/vendor/pygments-main/pygments/lexers/lisp.py +2621 -0
- data/vendor/pygments-main/pygments/lexers/make.py +202 -0
- data/vendor/pygments-main/pygments/lexers/markup.py +595 -0
- data/vendor/pygments-main/pygments/lexers/math.py +11 -2276
- data/vendor/pygments-main/pygments/lexers/matlab.py +663 -0
- data/vendor/pygments-main/pygments/lexers/ml.py +769 -0
- data/vendor/pygments-main/pygments/lexers/modeling.py +358 -0
- data/vendor/pygments-main/pygments/lexers/modula2.py +1561 -0
- data/vendor/pygments-main/pygments/lexers/monte.py +203 -0
- data/vendor/pygments-main/pygments/lexers/ncl.py +1053 -0
- data/vendor/pygments-main/pygments/lexers/nimrod.py +159 -0
- data/vendor/pygments-main/pygments/lexers/nit.py +64 -0
- data/vendor/pygments-main/pygments/lexers/nix.py +136 -0
- data/vendor/pygments-main/pygments/lexers/oberon.py +105 -0
- data/vendor/pygments-main/pygments/lexers/objective.py +504 -0
- data/vendor/pygments-main/pygments/lexers/ooc.py +85 -0
- data/vendor/pygments-main/pygments/lexers/other.py +30 -4481
- data/vendor/pygments-main/pygments/lexers/parasail.py +79 -0
- data/vendor/pygments-main/pygments/lexers/parsers.py +171 -114
- data/vendor/pygments-main/pygments/lexers/pascal.py +644 -0
- data/vendor/pygments-main/pygments/lexers/pawn.py +199 -0
- data/vendor/pygments-main/pygments/lexers/perl.py +616 -0
- data/vendor/pygments-main/pygments/lexers/php.py +267 -0
- data/vendor/pygments-main/pygments/lexers/praat.py +294 -0
- data/vendor/pygments-main/pygments/lexers/prolog.py +306 -0
- data/vendor/pygments-main/pygments/lexers/python.py +938 -0
- data/vendor/pygments-main/pygments/lexers/qvt.py +152 -0
- data/vendor/pygments-main/pygments/lexers/r.py +453 -0
- data/vendor/pygments-main/pygments/lexers/rdf.py +195 -24
- data/vendor/pygments-main/pygments/lexers/rebol.py +431 -0
- data/vendor/pygments-main/pygments/lexers/resource.py +85 -0
- data/vendor/pygments-main/pygments/lexers/rnc.py +67 -0
- data/vendor/pygments-main/pygments/lexers/roboconf.py +82 -0
- data/vendor/pygments-main/pygments/lexers/{_robotframeworklexer.py → robotframework.py} +20 -18
- data/vendor/pygments-main/pygments/lexers/ruby.py +519 -0
- data/vendor/pygments-main/pygments/lexers/rust.py +209 -0
- data/vendor/pygments-main/pygments/lexers/sas.py +228 -0
- data/vendor/pygments-main/pygments/lexers/scripting.py +1222 -0
- data/vendor/pygments-main/pygments/lexers/shell.py +478 -115
- data/vendor/pygments-main/pygments/lexers/smalltalk.py +195 -0
- data/vendor/pygments-main/pygments/lexers/smv.py +75 -0
- data/vendor/pygments-main/pygments/lexers/snobol.py +83 -0
- data/vendor/pygments-main/pygments/lexers/special.py +6 -2
- data/vendor/pygments-main/pygments/lexers/sql.py +209 -120
- data/vendor/pygments-main/pygments/lexers/stata.py +106 -0
- data/vendor/pygments-main/pygments/lexers/supercollider.py +90 -0
- data/vendor/pygments-main/pygments/lexers/tcl.py +145 -0
- data/vendor/pygments-main/pygments/lexers/templates.py +282 -90
- data/vendor/pygments-main/pygments/lexers/testing.py +207 -0
- data/vendor/pygments-main/pygments/lexers/text.py +15 -2045
- data/vendor/pygments-main/pygments/lexers/textedit.py +169 -0
- data/vendor/pygments-main/pygments/lexers/textfmts.py +297 -0
- data/vendor/pygments-main/pygments/lexers/theorem.py +458 -0
- data/vendor/pygments-main/pygments/lexers/trafficscript.py +54 -0
- data/vendor/pygments-main/pygments/lexers/typoscript.py +225 -0
- data/vendor/pygments-main/pygments/lexers/urbi.py +133 -0
- data/vendor/pygments-main/pygments/lexers/varnish.py +190 -0
- data/vendor/pygments-main/pygments/lexers/verification.py +111 -0
- data/vendor/pygments-main/pygments/lexers/web.py +13 -4499
- data/vendor/pygments-main/pygments/lexers/webmisc.py +979 -0
- data/vendor/pygments-main/pygments/lexers/whiley.py +117 -0
- data/vendor/pygments-main/pygments/lexers/x10.py +69 -0
- data/vendor/pygments-main/pygments/modeline.py +5 -2
- data/vendor/pygments-main/pygments/plugin.py +1 -1
- data/vendor/pygments-main/pygments/regexopt.py +92 -0
- data/vendor/pygments-main/pygments/scanner.py +3 -2
- data/vendor/pygments-main/pygments/sphinxext.py +11 -6
- data/vendor/pygments-main/pygments/style.py +41 -4
- data/vendor/pygments-main/pygments/styles/__init__.py +5 -1
- data/vendor/pygments-main/pygments/styles/algol.py +63 -0
- data/vendor/pygments-main/pygments/styles/algol_nu.py +63 -0
- data/vendor/pygments-main/pygments/styles/arduino.py +98 -0
- data/vendor/pygments-main/pygments/styles/autumn.py +1 -1
- data/vendor/pygments-main/pygments/styles/borland.py +1 -1
- data/vendor/pygments-main/pygments/styles/bw.py +1 -1
- data/vendor/pygments-main/pygments/styles/colorful.py +1 -1
- data/vendor/pygments-main/pygments/styles/default.py +1 -1
- data/vendor/pygments-main/pygments/styles/emacs.py +1 -1
- data/vendor/pygments-main/pygments/styles/friendly.py +1 -1
- data/vendor/pygments-main/pygments/styles/fruity.py +1 -1
- data/vendor/pygments-main/pygments/styles/igor.py +1 -1
- data/vendor/pygments-main/pygments/styles/lovelace.py +97 -0
- data/vendor/pygments-main/pygments/styles/manni.py +1 -1
- data/vendor/pygments-main/pygments/styles/monokai.py +1 -1
- data/vendor/pygments-main/pygments/styles/murphy.py +1 -1
- data/vendor/pygments-main/pygments/styles/native.py +1 -1
- data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -1
- data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -1
- data/vendor/pygments-main/pygments/styles/pastie.py +1 -1
- data/vendor/pygments-main/pygments/styles/perldoc.py +2 -2
- data/vendor/pygments-main/pygments/styles/rrt.py +1 -1
- data/vendor/pygments-main/pygments/styles/sas.py +41 -0
- data/vendor/pygments-main/pygments/styles/stata.py +37 -0
- data/vendor/pygments-main/pygments/styles/tango.py +1 -1
- data/vendor/pygments-main/pygments/styles/trac.py +1 -1
- data/vendor/pygments-main/pygments/styles/vim.py +1 -1
- data/vendor/pygments-main/pygments/styles/vs.py +1 -1
- data/vendor/pygments-main/pygments/styles/xcode.py +1 -1
- data/vendor/pygments-main/pygments/token.py +31 -16
- data/vendor/pygments-main/pygments/unistring.py +141 -65
- data/vendor/pygments-main/pygments/util.py +129 -33
- data/vendor/pygments-main/requirements.txt +5 -0
- data/vendor/pygments-main/scripts/check_sources.py +25 -40
- data/vendor/pygments-main/scripts/debug_lexer.py +246 -0
- data/vendor/pygments-main/scripts/find_error.py +1 -0
- data/vendor/pygments-main/scripts/get_vimkw.py +35 -4
- data/vendor/pygments-main/setup.cfg +3 -0
- data/vendor/pygments-main/setup.py +17 -30
- data/vendor/pygments-main/tox.ini +7 -0
- metadata +159 -387
- data/vendor/pygments-main/ez_setup.py +0 -382
- data/vendor/pygments-main/pygments/lexers/_cocoabuiltins.py +0 -73
- data/vendor/pygments-main/pygments/lexers/_openedgebuiltins.py +0 -562
- data/vendor/pygments-main/pygments/lexers/_sourcemodbuiltins.py +0 -1077
- data/vendor/pygments-main/pygments/lexers/_vimbuiltins.py +0 -13
- data/vendor/pygments-main/pygments/lexers/qbasic.py +0 -157
- data/vendor/pygments-main/scripts/find_codetags.py +0 -213
- data/vendor/pygments-main/scripts/find_error.py +0 -173
- data/vendor/pygments-main/tests/dtds/HTML4-f.dtd +0 -37
- data/vendor/pygments-main/tests/dtds/HTML4-s.dtd +0 -869
- data/vendor/pygments-main/tests/dtds/HTML4.dcl +0 -88
- data/vendor/pygments-main/tests/dtds/HTML4.dtd +0 -1092
- data/vendor/pygments-main/tests/dtds/HTML4.soc +0 -9
- data/vendor/pygments-main/tests/dtds/HTMLlat1.ent +0 -195
- data/vendor/pygments-main/tests/dtds/HTMLspec.ent +0 -77
- data/vendor/pygments-main/tests/dtds/HTMLsym.ent +0 -241
- data/vendor/pygments-main/tests/examplefiles/99_bottles_of_beer.chpl +0 -118
- data/vendor/pygments-main/tests/examplefiles/AcidStateAdvanced.hs +0 -209
- data/vendor/pygments-main/tests/examplefiles/AlternatingGroup.mu +0 -102
- data/vendor/pygments-main/tests/examplefiles/BOM.js +0 -1
- data/vendor/pygments-main/tests/examplefiles/CPDictionary.j +0 -611
- data/vendor/pygments-main/tests/examplefiles/Config.in.cache +0 -1973
- data/vendor/pygments-main/tests/examplefiles/Constants.mo +0 -158
- data/vendor/pygments-main/tests/examplefiles/DancingSudoku.lhs +0 -411
- data/vendor/pygments-main/tests/examplefiles/Deflate.fs +0 -578
- data/vendor/pygments-main/tests/examplefiles/Error.pmod +0 -38
- data/vendor/pygments-main/tests/examplefiles/Errors.scala +0 -18
- data/vendor/pygments-main/tests/examplefiles/FakeFile.pike +0 -360
- data/vendor/pygments-main/tests/examplefiles/Get-CommandDefinitionHtml.ps1 +0 -66
- data/vendor/pygments-main/tests/examplefiles/IPDispatchC.nc +0 -104
- data/vendor/pygments-main/tests/examplefiles/IPDispatchP.nc +0 -671
- data/vendor/pygments-main/tests/examplefiles/Intro.java +0 -1660
- data/vendor/pygments-main/tests/examplefiles/Makefile +0 -1131
- data/vendor/pygments-main/tests/examplefiles/Object.st +0 -4394
- data/vendor/pygments-main/tests/examplefiles/OrderedMap.hx +0 -584
- data/vendor/pygments-main/tests/examplefiles/RoleQ.pm6 +0 -23
- data/vendor/pygments-main/tests/examplefiles/SmallCheck.hs +0 -378
- data/vendor/pygments-main/tests/examplefiles/Sorting.mod +0 -470
- data/vendor/pygments-main/tests/examplefiles/Sudoku.lhs +0 -382
- data/vendor/pygments-main/tests/examplefiles/addressbook.proto +0 -30
- data/vendor/pygments-main/tests/examplefiles/antlr_ANTLRv3.g +0 -608
- data/vendor/pygments-main/tests/examplefiles/antlr_throws +0 -1
- data/vendor/pygments-main/tests/examplefiles/apache2.conf +0 -393
- data/vendor/pygments-main/tests/examplefiles/as3_test.as +0 -143
- data/vendor/pygments-main/tests/examplefiles/as3_test2.as +0 -46
- data/vendor/pygments-main/tests/examplefiles/as3_test3.as +0 -3
- data/vendor/pygments-main/tests/examplefiles/aspx-cs_example +0 -27
- data/vendor/pygments-main/tests/examplefiles/autoit_submit.au3 +0 -25
- data/vendor/pygments-main/tests/examplefiles/badcase.java +0 -2
- data/vendor/pygments-main/tests/examplefiles/batchfile.bat +0 -49
- data/vendor/pygments-main/tests/examplefiles/bigtest.nsi +0 -308
- data/vendor/pygments-main/tests/examplefiles/boot-9.scm +0 -1557
- data/vendor/pygments-main/tests/examplefiles/ca65_example +0 -284
- data/vendor/pygments-main/tests/examplefiles/cbmbas_example +0 -9
- data/vendor/pygments-main/tests/examplefiles/cells.ps +0 -515
- data/vendor/pygments-main/tests/examplefiles/ceval.c +0 -2604
- data/vendor/pygments-main/tests/examplefiles/cheetah_example.html +0 -13
- data/vendor/pygments-main/tests/examplefiles/classes.dylan +0 -125
- data/vendor/pygments-main/tests/examplefiles/clojure-weird-keywords.clj +0 -5
- data/vendor/pygments-main/tests/examplefiles/condensed_ruby.rb +0 -10
- data/vendor/pygments-main/tests/examplefiles/coq_RelationClasses +0 -447
- data/vendor/pygments-main/tests/examplefiles/core.cljs +0 -52
- data/vendor/pygments-main/tests/examplefiles/database.pytb +0 -20
- data/vendor/pygments-main/tests/examplefiles/de.MoinMoin.po +0 -2461
- data/vendor/pygments-main/tests/examplefiles/demo.ahk +0 -181
- data/vendor/pygments-main/tests/examplefiles/demo.cfm +0 -50
- data/vendor/pygments-main/tests/examplefiles/demo.hbs +0 -12
- data/vendor/pygments-main/tests/examplefiles/django_sample.html+django +0 -68
- data/vendor/pygments-main/tests/examplefiles/dwarf.cw +0 -17
- data/vendor/pygments-main/tests/examplefiles/ember.handlebars +0 -33
- data/vendor/pygments-main/tests/examplefiles/erl_session +0 -10
- data/vendor/pygments-main/tests/examplefiles/escape_semicolon.clj +0 -1
- data/vendor/pygments-main/tests/examplefiles/evil_regex.js +0 -48
- data/vendor/pygments-main/tests/examplefiles/example.Rd +0 -78
- data/vendor/pygments-main/tests/examplefiles/example.als +0 -217
- data/vendor/pygments-main/tests/examplefiles/example.bug +0 -54
- data/vendor/pygments-main/tests/examplefiles/example.c +0 -2080
- data/vendor/pygments-main/tests/examplefiles/example.ceylon +0 -52
- data/vendor/pygments-main/tests/examplefiles/example.chai +0 -6
- data/vendor/pygments-main/tests/examplefiles/example.clay +0 -33
- data/vendor/pygments-main/tests/examplefiles/example.cls +0 -15
- data/vendor/pygments-main/tests/examplefiles/example.cob +0 -3556
- data/vendor/pygments-main/tests/examplefiles/example.coffee +0 -27
- data/vendor/pygments-main/tests/examplefiles/example.cpp +0 -2363
- data/vendor/pygments-main/tests/examplefiles/example.e +0 -124
- data/vendor/pygments-main/tests/examplefiles/example.f90 +0 -8
- data/vendor/pygments-main/tests/examplefiles/example.feature +0 -16
- data/vendor/pygments-main/tests/examplefiles/example.gd +0 -23
- data/vendor/pygments-main/tests/examplefiles/example.gi +0 -64
- data/vendor/pygments-main/tests/examplefiles/example.groovy +0 -2
- data/vendor/pygments-main/tests/examplefiles/example.gs +0 -106
- data/vendor/pygments-main/tests/examplefiles/example.gst +0 -7
- data/vendor/pygments-main/tests/examplefiles/example.hs +0 -27
- data/vendor/pygments-main/tests/examplefiles/example.hx +0 -185
- data/vendor/pygments-main/tests/examplefiles/example.i6t +0 -32
- data/vendor/pygments-main/tests/examplefiles/example.i7x +0 -45
- data/vendor/pygments-main/tests/examplefiles/example.inf +0 -374
- data/vendor/pygments-main/tests/examplefiles/example.j +0 -564
- data/vendor/pygments-main/tests/examplefiles/example.jag +0 -48
- data/vendor/pygments-main/tests/examplefiles/example.java +0 -16
- data/vendor/pygments-main/tests/examplefiles/example.kal +0 -75
- data/vendor/pygments-main/tests/examplefiles/example.kt +0 -47
- data/vendor/pygments-main/tests/examplefiles/example.lagda +0 -19
- data/vendor/pygments-main/tests/examplefiles/example.liquid +0 -42
- data/vendor/pygments-main/tests/examplefiles/example.lua +0 -250
- data/vendor/pygments-main/tests/examplefiles/example.ma +0 -8
- data/vendor/pygments-main/tests/examplefiles/example.monkey +0 -152
- data/vendor/pygments-main/tests/examplefiles/example.moo +0 -26
- data/vendor/pygments-main/tests/examplefiles/example.moon +0 -629
- data/vendor/pygments-main/tests/examplefiles/example.mq4 +0 -187
- data/vendor/pygments-main/tests/examplefiles/example.mqh +0 -123
- data/vendor/pygments-main/tests/examplefiles/example.msc +0 -43
- data/vendor/pygments-main/tests/examplefiles/example.ni +0 -57
- data/vendor/pygments-main/tests/examplefiles/example.nim +0 -1010
- data/vendor/pygments-main/tests/examplefiles/example.nix +0 -80
- data/vendor/pygments-main/tests/examplefiles/example.ns2 +0 -69
- data/vendor/pygments-main/tests/examplefiles/example.pas +0 -2708
- data/vendor/pygments-main/tests/examplefiles/example.pp +0 -8
- data/vendor/pygments-main/tests/examplefiles/example.prg +0 -161
- data/vendor/pygments-main/tests/examplefiles/example.rb +0 -1852
- data/vendor/pygments-main/tests/examplefiles/example.red +0 -257
- data/vendor/pygments-main/tests/examplefiles/example.reds +0 -150
- data/vendor/pygments-main/tests/examplefiles/example.reg +0 -19
- data/vendor/pygments-main/tests/examplefiles/example.rexx +0 -50
- data/vendor/pygments-main/tests/examplefiles/example.rhtml +0 -561
- data/vendor/pygments-main/tests/examplefiles/example.rkt +0 -743
- data/vendor/pygments-main/tests/examplefiles/example.rpf +0 -4
- data/vendor/pygments-main/tests/examplefiles/example.sh +0 -22
- data/vendor/pygments-main/tests/examplefiles/example.sh-session +0 -19
- data/vendor/pygments-main/tests/examplefiles/example.shell-session +0 -45
- data/vendor/pygments-main/tests/examplefiles/example.slim +0 -31
- data/vendor/pygments-main/tests/examplefiles/example.sls +0 -51
- data/vendor/pygments-main/tests/examplefiles/example.sml +0 -156
- data/vendor/pygments-main/tests/examplefiles/example.snobol +0 -15
- data/vendor/pygments-main/tests/examplefiles/example.stan +0 -110
- data/vendor/pygments-main/tests/examplefiles/example.tea +0 -34
- data/vendor/pygments-main/tests/examplefiles/example.todotxt +0 -9
- data/vendor/pygments-main/tests/examplefiles/example.ts +0 -28
- data/vendor/pygments-main/tests/examplefiles/example.u +0 -548
- data/vendor/pygments-main/tests/examplefiles/example.weechatlog +0 -9
- data/vendor/pygments-main/tests/examplefiles/example.xhtml +0 -376
- data/vendor/pygments-main/tests/examplefiles/example.xtend +0 -34
- data/vendor/pygments-main/tests/examplefiles/example.yaml +0 -302
- data/vendor/pygments-main/tests/examplefiles/example2.aspx +0 -29
- data/vendor/pygments-main/tests/examplefiles/example2.msc +0 -79
- data/vendor/pygments-main/tests/examplefiles/exampleScript.cfc +0 -241
- data/vendor/pygments-main/tests/examplefiles/exampleTag.cfc +0 -18
- data/vendor/pygments-main/tests/examplefiles/example_elixir.ex +0 -205
- data/vendor/pygments-main/tests/examplefiles/example_file.fy +0 -128
- data/vendor/pygments-main/tests/examplefiles/firefox.mak +0 -586
- data/vendor/pygments-main/tests/examplefiles/flipflop.sv +0 -19
- data/vendor/pygments-main/tests/examplefiles/foo.sce +0 -6
- data/vendor/pygments-main/tests/examplefiles/format.ml +0 -1213
- data/vendor/pygments-main/tests/examplefiles/fucked_up.rb +0 -77
- data/vendor/pygments-main/tests/examplefiles/function.mu +0 -1
- data/vendor/pygments-main/tests/examplefiles/functional.rst +0 -1472
- data/vendor/pygments-main/tests/examplefiles/garcia-wachs.kk +0 -133
- data/vendor/pygments-main/tests/examplefiles/genclass.clj +0 -510
- data/vendor/pygments-main/tests/examplefiles/genshi_example.xml+genshi +0 -193
- data/vendor/pygments-main/tests/examplefiles/genshitext_example.genshitext +0 -33
- data/vendor/pygments-main/tests/examplefiles/glsl.frag +0 -7
- data/vendor/pygments-main/tests/examplefiles/glsl.vert +0 -13
- data/vendor/pygments-main/tests/examplefiles/grammar-test.p6 +0 -22
- data/vendor/pygments-main/tests/examplefiles/hash_syntax.rb +0 -5
- data/vendor/pygments-main/tests/examplefiles/hello.at +0 -6
- data/vendor/pygments-main/tests/examplefiles/hello.golo +0 -5
- data/vendor/pygments-main/tests/examplefiles/hello.lsl +0 -12
- data/vendor/pygments-main/tests/examplefiles/hello.smali +0 -40
- data/vendor/pygments-main/tests/examplefiles/hello.sp +0 -9
- data/vendor/pygments-main/tests/examplefiles/html+php_faulty.php +0 -1
- data/vendor/pygments-main/tests/examplefiles/http_request_example +0 -15
- data/vendor/pygments-main/tests/examplefiles/http_response_example +0 -29
- data/vendor/pygments-main/tests/examplefiles/hybris_File.hy +0 -174
- data/vendor/pygments-main/tests/examplefiles/idl_sample.pro +0 -73
- data/vendor/pygments-main/tests/examplefiles/iex_example +0 -23
- data/vendor/pygments-main/tests/examplefiles/inet_pton6.dg +0 -71
- data/vendor/pygments-main/tests/examplefiles/intro.ik +0 -24
- data/vendor/pygments-main/tests/examplefiles/ints.php +0 -10
- data/vendor/pygments-main/tests/examplefiles/intsyn.fun +0 -675
- data/vendor/pygments-main/tests/examplefiles/intsyn.sig +0 -286
- data/vendor/pygments-main/tests/examplefiles/irb_heredoc +0 -8
- data/vendor/pygments-main/tests/examplefiles/irc.lsp +0 -214
- data/vendor/pygments-main/tests/examplefiles/java.properties +0 -16
- data/vendor/pygments-main/tests/examplefiles/jbst_example1.jbst +0 -28
- data/vendor/pygments-main/tests/examplefiles/jbst_example2.jbst +0 -45
- data/vendor/pygments-main/tests/examplefiles/jinjadesignerdoc.rst +0 -713
- data/vendor/pygments-main/tests/examplefiles/json.lasso +0 -301
- data/vendor/pygments-main/tests/examplefiles/json.lasso9 +0 -213
- data/vendor/pygments-main/tests/examplefiles/language.hy +0 -165
- data/vendor/pygments-main/tests/examplefiles/lighttpd_config.conf +0 -13
- data/vendor/pygments-main/tests/examplefiles/limbo.b +0 -456
- data/vendor/pygments-main/tests/examplefiles/linecontinuation.py +0 -47
- data/vendor/pygments-main/tests/examplefiles/livescript-demo.ls +0 -43
- data/vendor/pygments-main/tests/examplefiles/logos_example.xm +0 -28
- data/vendor/pygments-main/tests/examplefiles/ltmain.sh +0 -2849
- data/vendor/pygments-main/tests/examplefiles/main.cmake +0 -44
- data/vendor/pygments-main/tests/examplefiles/markdown.lsp +0 -679
- data/vendor/pygments-main/tests/examplefiles/matlab_noreturn +0 -3
- data/vendor/pygments-main/tests/examplefiles/matlab_sample +0 -30
- data/vendor/pygments-main/tests/examplefiles/matlabsession_sample.txt +0 -37
- data/vendor/pygments-main/tests/examplefiles/metagrammar.treetop +0 -455
- data/vendor/pygments-main/tests/examplefiles/minehunt.qml +0 -112
- data/vendor/pygments-main/tests/examplefiles/minimal.ns2 +0 -4
- data/vendor/pygments-main/tests/examplefiles/moin_SyntaxReference.txt +0 -340
- data/vendor/pygments-main/tests/examplefiles/multiline_regexes.rb +0 -38
- data/vendor/pygments-main/tests/examplefiles/nanomsg.intr +0 -95
- data/vendor/pygments-main/tests/examplefiles/nasm_aoutso.asm +0 -96
- data/vendor/pygments-main/tests/examplefiles/nasm_objexe.asm +0 -30
- data/vendor/pygments-main/tests/examplefiles/nemerle_sample.n +0 -87
- data/vendor/pygments-main/tests/examplefiles/nginx_nginx.conf +0 -118
- data/vendor/pygments-main/tests/examplefiles/numbers.c +0 -12
- data/vendor/pygments-main/tests/examplefiles/objc_example.m +0 -179
- data/vendor/pygments-main/tests/examplefiles/openedge_example +0 -34
- data/vendor/pygments-main/tests/examplefiles/pawn_example +0 -25
- data/vendor/pygments-main/tests/examplefiles/perl_misc +0 -62
- data/vendor/pygments-main/tests/examplefiles/perl_perl5db +0 -998
- data/vendor/pygments-main/tests/examplefiles/perl_regex-delims +0 -120
- data/vendor/pygments-main/tests/examplefiles/perlfunc.1 +0 -856
- data/vendor/pygments-main/tests/examplefiles/phpMyAdmin.spec +0 -163
- data/vendor/pygments-main/tests/examplefiles/phpcomplete.vim +0 -567
- data/vendor/pygments-main/tests/examplefiles/pleac.in.rb +0 -1223
- data/vendor/pygments-main/tests/examplefiles/postgresql_test.txt +0 -47
- data/vendor/pygments-main/tests/examplefiles/pppoe.applescript +0 -10
- data/vendor/pygments-main/tests/examplefiles/psql_session.txt +0 -122
- data/vendor/pygments-main/tests/examplefiles/py3_test.txt +0 -2
- data/vendor/pygments-main/tests/examplefiles/py3tb_test.py3tb +0 -4
- data/vendor/pygments-main/tests/examplefiles/pycon_test.pycon +0 -14
- data/vendor/pygments-main/tests/examplefiles/pytb_test2.pytb +0 -2
- data/vendor/pygments-main/tests/examplefiles/pytb_test3.pytb +0 -4
- data/vendor/pygments-main/tests/examplefiles/python25-bsd.mak +0 -234
- data/vendor/pygments-main/tests/examplefiles/qbasic_example +0 -2
- data/vendor/pygments-main/tests/examplefiles/qsort.prolog +0 -13
- data/vendor/pygments-main/tests/examplefiles/r-console-transcript.Rout +0 -38
- data/vendor/pygments-main/tests/examplefiles/r6rs-comments.scm +0 -23
- data/vendor/pygments-main/tests/examplefiles/ragel-cpp_rlscan +0 -280
- data/vendor/pygments-main/tests/examplefiles/ragel-cpp_snippet +0 -2
- data/vendor/pygments-main/tests/examplefiles/regex.js +0 -22
- data/vendor/pygments-main/tests/examplefiles/reversi.lsp +0 -427
- data/vendor/pygments-main/tests/examplefiles/robotframework_test.txt +0 -39
- data/vendor/pygments-main/tests/examplefiles/rql-queries.rql +0 -34
- data/vendor/pygments-main/tests/examplefiles/ruby_func_def.rb +0 -11
- data/vendor/pygments-main/tests/examplefiles/rust_example.rs +0 -233
- data/vendor/pygments-main/tests/examplefiles/scilab.sci +0 -30
- data/vendor/pygments-main/tests/examplefiles/scope.cirru +0 -43
- data/vendor/pygments-main/tests/examplefiles/session.dylan-console +0 -9
- data/vendor/pygments-main/tests/examplefiles/sibling.prolog +0 -19
- data/vendor/pygments-main/tests/examplefiles/simple.md +0 -747
- data/vendor/pygments-main/tests/examplefiles/smarty_example.html +0 -209
- data/vendor/pygments-main/tests/examplefiles/source.lgt +0 -343
- data/vendor/pygments-main/tests/examplefiles/sources.list +0 -62
- data/vendor/pygments-main/tests/examplefiles/sparql.rq +0 -23
- data/vendor/pygments-main/tests/examplefiles/sphere.pov +0 -18
- data/vendor/pygments-main/tests/examplefiles/sqlite3.sqlite3-console +0 -27
- data/vendor/pygments-main/tests/examplefiles/squid.conf +0 -30
- data/vendor/pygments-main/tests/examplefiles/string.jl +0 -1031
- data/vendor/pygments-main/tests/examplefiles/string_delimiters.d +0 -21
- data/vendor/pygments-main/tests/examplefiles/stripheredoc.sh +0 -3
- data/vendor/pygments-main/tests/examplefiles/swig_java.swg +0 -1329
- data/vendor/pygments-main/tests/examplefiles/swig_std_vector.i +0 -225
- data/vendor/pygments-main/tests/examplefiles/test.R +0 -185
- data/vendor/pygments-main/tests/examplefiles/test.adb +0 -211
- data/vendor/pygments-main/tests/examplefiles/test.agda +0 -102
- data/vendor/pygments-main/tests/examplefiles/test.apl +0 -26
- data/vendor/pygments-main/tests/examplefiles/test.asy +0 -131
- data/vendor/pygments-main/tests/examplefiles/test.awk +0 -121
- data/vendor/pygments-main/tests/examplefiles/test.bb +0 -95
- data/vendor/pygments-main/tests/examplefiles/test.bmx +0 -145
- data/vendor/pygments-main/tests/examplefiles/test.boo +0 -39
- data/vendor/pygments-main/tests/examplefiles/test.bro +0 -250
- data/vendor/pygments-main/tests/examplefiles/test.cs +0 -374
- data/vendor/pygments-main/tests/examplefiles/test.css +0 -54
- data/vendor/pygments-main/tests/examplefiles/test.cu +0 -36
- data/vendor/pygments-main/tests/examplefiles/test.cyp +0 -123
- data/vendor/pygments-main/tests/examplefiles/test.d +0 -135
- data/vendor/pygments-main/tests/examplefiles/test.dart +0 -23
- data/vendor/pygments-main/tests/examplefiles/test.dtd +0 -89
- data/vendor/pygments-main/tests/examplefiles/test.ebnf +0 -31
- data/vendor/pygments-main/tests/examplefiles/test.ec +0 -605
- data/vendor/pygments-main/tests/examplefiles/test.ecl +0 -58
- data/vendor/pygments-main/tests/examplefiles/test.eh +0 -315
- data/vendor/pygments-main/tests/examplefiles/test.erl +0 -169
- data/vendor/pygments-main/tests/examplefiles/test.evoque +0 -33
- data/vendor/pygments-main/tests/examplefiles/test.fan +0 -818
- data/vendor/pygments-main/tests/examplefiles/test.flx +0 -57
- data/vendor/pygments-main/tests/examplefiles/test.gdc +0 -13
- data/vendor/pygments-main/tests/examplefiles/test.groovy +0 -97
- data/vendor/pygments-main/tests/examplefiles/test.html +0 -339
- data/vendor/pygments-main/tests/examplefiles/test.idr +0 -93
- data/vendor/pygments-main/tests/examplefiles/test.ini +0 -10
- data/vendor/pygments-main/tests/examplefiles/test.java +0 -653
- data/vendor/pygments-main/tests/examplefiles/test.jsp +0 -24
- data/vendor/pygments-main/tests/examplefiles/test.maql +0 -45
- data/vendor/pygments-main/tests/examplefiles/test.mask +0 -41
- data/vendor/pygments-main/tests/examplefiles/test.mod +0 -374
- data/vendor/pygments-main/tests/examplefiles/test.moo +0 -51
- data/vendor/pygments-main/tests/examplefiles/test.myt +0 -166
- data/vendor/pygments-main/tests/examplefiles/test.nim +0 -93
- data/vendor/pygments-main/tests/examplefiles/test.opa +0 -10
- data/vendor/pygments-main/tests/examplefiles/test.p6 +0 -252
- data/vendor/pygments-main/tests/examplefiles/test.pan +0 -54
- data/vendor/pygments-main/tests/examplefiles/test.pas +0 -743
- data/vendor/pygments-main/tests/examplefiles/test.php +0 -507
- data/vendor/pygments-main/tests/examplefiles/test.pig +0 -148
- data/vendor/pygments-main/tests/examplefiles/test.plot +0 -333
- data/vendor/pygments-main/tests/examplefiles/test.ps1 +0 -108
- data/vendor/pygments-main/tests/examplefiles/test.pwn +0 -253
- data/vendor/pygments-main/tests/examplefiles/test.pypylog +0 -1839
- data/vendor/pygments-main/tests/examplefiles/test.r3 +0 -114
- data/vendor/pygments-main/tests/examplefiles/test.rb +0 -177
- data/vendor/pygments-main/tests/examplefiles/test.rhtml +0 -43
- data/vendor/pygments-main/tests/examplefiles/test.rsl +0 -111
- data/vendor/pygments-main/tests/examplefiles/test.scaml +0 -8
- data/vendor/pygments-main/tests/examplefiles/test.ssp +0 -12
- data/vendor/pygments-main/tests/examplefiles/test.swift +0 -65
- data/vendor/pygments-main/tests/examplefiles/test.tcsh +0 -830
- data/vendor/pygments-main/tests/examplefiles/test.vb +0 -407
- data/vendor/pygments-main/tests/examplefiles/test.vhdl +0 -161
- data/vendor/pygments-main/tests/examplefiles/test.xqy +0 -138
- data/vendor/pygments-main/tests/examplefiles/test.xsl +0 -23
- data/vendor/pygments-main/tests/examplefiles/test.zep +0 -33
- data/vendor/pygments-main/tests/examplefiles/test2.pypylog +0 -120
- data/vendor/pygments-main/tests/examplefiles/truncated.pytb +0 -15
- data/vendor/pygments-main/tests/examplefiles/type.lisp +0 -1218
- data/vendor/pygments-main/tests/examplefiles/underscore.coffee +0 -603
- data/vendor/pygments-main/tests/examplefiles/unicode.applescript +0 -5
- data/vendor/pygments-main/tests/examplefiles/unicode.go +0 -10
- data/vendor/pygments-main/tests/examplefiles/unicodedoc.py +0 -11
- data/vendor/pygments-main/tests/examplefiles/unix-io.lid +0 -37
- data/vendor/pygments-main/tests/examplefiles/vbnet_test.bas +0 -29
- data/vendor/pygments-main/tests/examplefiles/vctreestatus_hg +0 -4
- data/vendor/pygments-main/tests/examplefiles/vimrc +0 -21
- data/vendor/pygments-main/tests/examplefiles/webkit-transition.css +0 -3
- data/vendor/pygments-main/tests/examplefiles/while.pov +0 -13
- data/vendor/pygments-main/tests/examplefiles/wiki.factor +0 -384
- data/vendor/pygments-main/tests/examplefiles/xml_example +0 -1897
- data/vendor/pygments-main/tests/examplefiles/zmlrpc.f90 +0 -798
- data/vendor/pygments-main/tests/run.py +0 -44
- data/vendor/pygments-main/tests/string_asserts.py +0 -22
- data/vendor/pygments-main/tests/support.py +0 -15
- data/vendor/pygments-main/tests/support/tags +0 -36
- data/vendor/pygments-main/tests/test_basic_api.py +0 -309
- data/vendor/pygments-main/tests/test_cfm.py +0 -46
- data/vendor/pygments-main/tests/test_clexer.py +0 -236
- data/vendor/pygments-main/tests/test_cmdline.py +0 -106
- data/vendor/pygments-main/tests/test_examplefiles.py +0 -110
- data/vendor/pygments-main/tests/test_html_formatter.py +0 -180
- data/vendor/pygments-main/tests/test_latex_formatter.py +0 -57
- data/vendor/pygments-main/tests/test_lexers_other.py +0 -68
- data/vendor/pygments-main/tests/test_objectiveclexer.py +0 -81
- data/vendor/pygments-main/tests/test_perllexer.py +0 -137
- data/vendor/pygments-main/tests/test_qbasiclexer.py +0 -43
- data/vendor/pygments-main/tests/test_regexlexer.py +0 -54
- data/vendor/pygments-main/tests/test_rtf_formatter.py +0 -109
- data/vendor/pygments-main/tests/test_string_asserts.py +0 -39
- data/vendor/pygments-main/tests/test_token.py +0 -46
- data/vendor/pygments-main/tests/test_using_api.py +0 -40
- data/vendor/pygments-main/tests/test_util.py +0 -135
@@ -0,0 +1,106 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
"""
|
3
|
+
pygments.lexers.stata
|
4
|
+
~~~~~~~~~~~~~~~~~~~~~
|
5
|
+
|
6
|
+
Lexer for Stata
|
7
|
+
|
8
|
+
:copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
|
9
|
+
:license: BSD, see LICENSE for details.
|
10
|
+
"""
|
11
|
+
|
12
|
+
from pygments.lexer import RegexLexer, include, words
|
13
|
+
from pygments.token import Comment, Keyword, Name, Number, \
|
14
|
+
String, Text, Operator
|
15
|
+
|
16
|
+
from pygments.lexers._stata_builtins import builtins_base, builtins_functions
|
17
|
+
|
18
|
+
__all__ = ['StataLexer']
|
19
|
+
|
20
|
+
class StataLexer(RegexLexer):
|
21
|
+
"""
|
22
|
+
For `Stata <http://www.stata.com/>`_ do files.
|
23
|
+
|
24
|
+
.. versionadded:: 2.2
|
25
|
+
"""
|
26
|
+
# Syntax based on
|
27
|
+
# - http://fmwww.bc.edu/RePEc/bocode/s/synlightlist.ado
|
28
|
+
# - http://github.com/isagalaev/highlight.js/blob/master/src/languages/stata.js
|
29
|
+
# - http://github.com/jpitblado/vim-stata/blob/master/syntax/stata.vim
|
30
|
+
|
31
|
+
name = 'Stata'
|
32
|
+
aliases = ['stata', 'do']
|
33
|
+
filenames = ['*.do', '*.ado']
|
34
|
+
mimetypes = ['text/x-stata', 'text/stata', 'application/x-stata']
|
35
|
+
|
36
|
+
tokens = {
|
37
|
+
'root': [
|
38
|
+
include('comments'),
|
39
|
+
include('vars-strings'),
|
40
|
+
include('numbers'),
|
41
|
+
include('keywords'),
|
42
|
+
(r'.', Text),
|
43
|
+
],
|
44
|
+
# Global and local macros; regular and special strings
|
45
|
+
'vars-strings': [
|
46
|
+
(r'\$[a-zA-Z_0-9\{]', Name.Variable.Global, 'var_validglobal'),
|
47
|
+
(r'`[a-zA-Z_0-9]{0,31}\'', Name.Variable),
|
48
|
+
(r'"', String, 'string_dquote'),
|
49
|
+
(r'`"', String, 'string_mquote'),
|
50
|
+
],
|
51
|
+
# For either string type, highlight macros as macros
|
52
|
+
'string_dquote': [
|
53
|
+
(r'"', String, '#pop'),
|
54
|
+
(r'\\\\|\\"|\\\n', String.Escape),
|
55
|
+
(r'\$', Name.Variable.Global, 'var_validglobal'),
|
56
|
+
(r'`', Name.Variable, 'var_validlocal'),
|
57
|
+
(r'[^$\$`"\\]+', String),
|
58
|
+
(r'[$"\\]', String),
|
59
|
+
],
|
60
|
+
'string_mquote': [
|
61
|
+
(r'"\'', String, '#pop'),
|
62
|
+
(r'\\\\|\\"|\\\n', String.Escape),
|
63
|
+
(r'\$', Name.Variable.Global, 'var_validglobal'),
|
64
|
+
(r'`', Name.Variable, 'var_validlocal'),
|
65
|
+
(r'[^$\$`"\\]+', String),
|
66
|
+
(r'[$"\\]', String),
|
67
|
+
],
|
68
|
+
'var_validglobal': [
|
69
|
+
(r'\{?[a-zA-Z0-9_]{0,32}\}?', Name.Variable.Global, '#pop'),
|
70
|
+
],
|
71
|
+
'var_validlocal': [
|
72
|
+
(r'[a-zA-Z0-9_]{0,31}\'', Name.Variable, '#pop'),
|
73
|
+
],
|
74
|
+
# * only OK at line start, // OK anywhere
|
75
|
+
'comments': [
|
76
|
+
(r'^\s*\*.*$', Comment),
|
77
|
+
(r'//.*', Comment.Single),
|
78
|
+
(r'/\*.*?\*/', Comment.Multiline),
|
79
|
+
(r'/[*](.|\n)*?[*]/', Comment.Multiline),
|
80
|
+
],
|
81
|
+
# Built in functions and statements
|
82
|
+
'keywords': [
|
83
|
+
(words(builtins_functions, prefix = r'\b', suffix = r'\('),
|
84
|
+
Name.Function),
|
85
|
+
(words(builtins_base, prefix = r'(^\s*|\s)', suffix = r'\b'),
|
86
|
+
Keyword),
|
87
|
+
],
|
88
|
+
# http://www.stata.com/help.cgi?operators
|
89
|
+
'operators': [
|
90
|
+
(r'-|==|<=|>=|<|>|&|!=', Operator),
|
91
|
+
(r'\*|\+|\^|/|!|~|==|~=', Operator)
|
92
|
+
],
|
93
|
+
# Stata numbers
|
94
|
+
'numbers': [
|
95
|
+
# decimal number
|
96
|
+
(r'\b[+-]?([0-9]+(\.[0-9]+)?|\.[0-9]+|\.)([eE][+-]?[0-9]+)?[i]?\b',
|
97
|
+
Number),
|
98
|
+
],
|
99
|
+
# Stata formats
|
100
|
+
'format': [
|
101
|
+
(r'%-?\d{1,2}(\.\d{1,2})?[gfe]c?', Name.Variable),
|
102
|
+
(r'%(21x|16H|16L|8H|8L)', Name.Variable),
|
103
|
+
(r'%-?(tc|tC|td|tw|tm|tq|th|ty|tg).{0,32}', Name.Variable),
|
104
|
+
(r'%[-~]?\d{1,4}s', Name.Variable),
|
105
|
+
]
|
106
|
+
}
|
@@ -0,0 +1,90 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
"""
|
3
|
+
pygments.lexers.supercollider
|
4
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
5
|
+
|
6
|
+
Lexer for SuperCollider
|
7
|
+
|
8
|
+
:copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
|
9
|
+
:license: BSD, see LICENSE for details.
|
10
|
+
"""
|
11
|
+
|
12
|
+
import re
|
13
|
+
|
14
|
+
from pygments.lexer import RegexLexer, include, words, default
|
15
|
+
from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
|
16
|
+
Number, Punctuation
|
17
|
+
|
18
|
+
__all__ = ['SuperColliderLexer']
|
19
|
+
|
20
|
+
|
21
|
+
class SuperColliderLexer(RegexLexer):
|
22
|
+
"""
|
23
|
+
For `SuperCollider <http://supercollider.github.io/>`_ source code.
|
24
|
+
|
25
|
+
.. versionadded:: 2.1
|
26
|
+
"""
|
27
|
+
|
28
|
+
name = 'SuperCollider'
|
29
|
+
aliases = ['sc', 'supercollider']
|
30
|
+
filenames = ['*.sc', '*.scd']
|
31
|
+
mimetypes = ['application/supercollider', 'text/supercollider', ]
|
32
|
+
|
33
|
+
flags = re.DOTALL | re.MULTILINE
|
34
|
+
tokens = {
|
35
|
+
'commentsandwhitespace': [
|
36
|
+
(r'\s+', Text),
|
37
|
+
(r'<!--', Comment),
|
38
|
+
(r'//.*?\n', Comment.Single),
|
39
|
+
(r'/\*.*?\*/', Comment.Multiline)
|
40
|
+
],
|
41
|
+
'slashstartsregex': [
|
42
|
+
include('commentsandwhitespace'),
|
43
|
+
(r'/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/'
|
44
|
+
r'([gim]+\b|\B)', String.Regex, '#pop'),
|
45
|
+
(r'(?=/)', Text, ('#pop', 'badregex')),
|
46
|
+
default('#pop'),
|
47
|
+
],
|
48
|
+
'badregex': [
|
49
|
+
(r'\n', Text, '#pop')
|
50
|
+
],
|
51
|
+
'root': [
|
52
|
+
(r'^(?=\s|/|<!--)', Text, 'slashstartsregex'),
|
53
|
+
include('commentsandwhitespace'),
|
54
|
+
(r'\+\+|--|~|&&|\?|:|\|\||\\(?=\n)|'
|
55
|
+
r'(<<|>>>?|==?|!=?|[-<>+*%&|^/])=?', Operator, 'slashstartsregex'),
|
56
|
+
(r'[{(\[;,]', Punctuation, 'slashstartsregex'),
|
57
|
+
(r'[})\].]', Punctuation),
|
58
|
+
(words((
|
59
|
+
'for', 'in', 'while', 'do', 'break', 'return', 'continue',
|
60
|
+
'switch', 'case', 'default', 'if', 'else', 'throw', 'try',
|
61
|
+
'catch', 'finally', 'new', 'delete', 'typeof', 'instanceof',
|
62
|
+
'void'), suffix=r'\b'),
|
63
|
+
Keyword, 'slashstartsregex'),
|
64
|
+
(words(('var', 'let', 'with', 'function', 'arg'), suffix=r'\b'),
|
65
|
+
Keyword.Declaration, 'slashstartsregex'),
|
66
|
+
(words((
|
67
|
+
'(abstract', 'boolean', 'byte', 'char', 'class', 'const',
|
68
|
+
'debugger', 'double', 'enum', 'export', 'extends', 'final',
|
69
|
+
'float', 'goto', 'implements', 'import', 'int', 'interface',
|
70
|
+
'long', 'native', 'package', 'private', 'protected', 'public',
|
71
|
+
'short', 'static', 'super', 'synchronized', 'throws',
|
72
|
+
'transient', 'volatile'), suffix=r'\b'),
|
73
|
+
Keyword.Reserved),
|
74
|
+
(words(('true', 'false', 'nil', 'inf'), suffix=r'\b'), Keyword.Constant),
|
75
|
+
(words((
|
76
|
+
'Array', 'Boolean', 'Date', 'Error', 'Function', 'Number',
|
77
|
+
'Object', 'Packages', 'RegExp', 'String',
|
78
|
+
'isFinite', 'isNaN', 'parseFloat', 'parseInt', 'super',
|
79
|
+
'thisFunctionDef', 'thisFunction', 'thisMethod', 'thisProcess',
|
80
|
+
'thisThread', 'this'), suffix=r'\b'),
|
81
|
+
Name.Builtin),
|
82
|
+
(r'[$a-zA-Z_]\w*', Name.Other),
|
83
|
+
(r'\\?[$a-zA-Z_]\w*', String.Symbol),
|
84
|
+
(r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
|
85
|
+
(r'0x[0-9a-fA-F]+', Number.Hex),
|
86
|
+
(r'[0-9]+', Number.Integer),
|
87
|
+
(r'"(\\\\|\\"|[^"])*"', String.Double),
|
88
|
+
(r"'(\\\\|\\'|[^'])*'", String.Single),
|
89
|
+
]
|
90
|
+
}
|
@@ -0,0 +1,145 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
"""
|
3
|
+
pygments.lexers.tcl
|
4
|
+
~~~~~~~~~~~~~~~~~~~
|
5
|
+
|
6
|
+
Lexers for Tcl and related languages.
|
7
|
+
|
8
|
+
:copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
|
9
|
+
:license: BSD, see LICENSE for details.
|
10
|
+
"""
|
11
|
+
|
12
|
+
from pygments.lexer import RegexLexer, include, words
|
13
|
+
from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
|
14
|
+
Number
|
15
|
+
from pygments.util import shebang_matches
|
16
|
+
|
17
|
+
__all__ = ['TclLexer']
|
18
|
+
|
19
|
+
|
20
|
+
class TclLexer(RegexLexer):
|
21
|
+
"""
|
22
|
+
For Tcl source code.
|
23
|
+
|
24
|
+
.. versionadded:: 0.10
|
25
|
+
"""
|
26
|
+
|
27
|
+
keyword_cmds_re = words((
|
28
|
+
'after', 'apply', 'array', 'break', 'catch', 'continue', 'elseif', 'else', 'error',
|
29
|
+
'eval', 'expr', 'for', 'foreach', 'global', 'if', 'namespace', 'proc', 'rename', 'return',
|
30
|
+
'set', 'switch', 'then', 'trace', 'unset', 'update', 'uplevel', 'upvar', 'variable',
|
31
|
+
'vwait', 'while'), prefix=r'\b', suffix=r'\b')
|
32
|
+
|
33
|
+
builtin_cmds_re = words((
|
34
|
+
'append', 'bgerror', 'binary', 'cd', 'chan', 'clock', 'close', 'concat', 'dde', 'dict',
|
35
|
+
'encoding', 'eof', 'exec', 'exit', 'fblocked', 'fconfigure', 'fcopy', 'file',
|
36
|
+
'fileevent', 'flush', 'format', 'gets', 'glob', 'history', 'http', 'incr', 'info', 'interp',
|
37
|
+
'join', 'lappend', 'lassign', 'lindex', 'linsert', 'list', 'llength', 'load', 'loadTk',
|
38
|
+
'lrange', 'lrepeat', 'lreplace', 'lreverse', 'lsearch', 'lset', 'lsort', 'mathfunc',
|
39
|
+
'mathop', 'memory', 'msgcat', 'open', 'package', 'pid', 'pkg::create', 'pkg_mkIndex',
|
40
|
+
'platform', 'platform::shell', 'puts', 'pwd', 're_syntax', 'read', 'refchan',
|
41
|
+
'regexp', 'registry', 'regsub', 'scan', 'seek', 'socket', 'source', 'split', 'string',
|
42
|
+
'subst', 'tell', 'time', 'tm', 'unknown', 'unload'), prefix=r'\b', suffix=r'\b')
|
43
|
+
|
44
|
+
name = 'Tcl'
|
45
|
+
aliases = ['tcl']
|
46
|
+
filenames = ['*.tcl', '*.rvt']
|
47
|
+
mimetypes = ['text/x-tcl', 'text/x-script.tcl', 'application/x-tcl']
|
48
|
+
|
49
|
+
def _gen_command_rules(keyword_cmds_re, builtin_cmds_re, context=""):
|
50
|
+
return [
|
51
|
+
(keyword_cmds_re, Keyword, 'params' + context),
|
52
|
+
(builtin_cmds_re, Name.Builtin, 'params' + context),
|
53
|
+
(r'([\w.-]+)', Name.Variable, 'params' + context),
|
54
|
+
(r'#', Comment, 'comment'),
|
55
|
+
]
|
56
|
+
|
57
|
+
tokens = {
|
58
|
+
'root': [
|
59
|
+
include('command'),
|
60
|
+
include('basic'),
|
61
|
+
include('data'),
|
62
|
+
(r'\}', Keyword), # HACK: somehow we miscounted our braces
|
63
|
+
],
|
64
|
+
'command': _gen_command_rules(keyword_cmds_re, builtin_cmds_re),
|
65
|
+
'command-in-brace': _gen_command_rules(keyword_cmds_re,
|
66
|
+
builtin_cmds_re,
|
67
|
+
"-in-brace"),
|
68
|
+
'command-in-bracket': _gen_command_rules(keyword_cmds_re,
|
69
|
+
builtin_cmds_re,
|
70
|
+
"-in-bracket"),
|
71
|
+
'command-in-paren': _gen_command_rules(keyword_cmds_re,
|
72
|
+
builtin_cmds_re,
|
73
|
+
"-in-paren"),
|
74
|
+
'basic': [
|
75
|
+
(r'\(', Keyword, 'paren'),
|
76
|
+
(r'\[', Keyword, 'bracket'),
|
77
|
+
(r'\{', Keyword, 'brace'),
|
78
|
+
(r'"', String.Double, 'string'),
|
79
|
+
(r'(eq|ne|in|ni)\b', Operator.Word),
|
80
|
+
(r'!=|==|<<|>>|<=|>=|&&|\|\||\*\*|[-+~!*/%<>&^|?:]', Operator),
|
81
|
+
],
|
82
|
+
'data': [
|
83
|
+
(r'\s+', Text),
|
84
|
+
(r'0x[a-fA-F0-9]+', Number.Hex),
|
85
|
+
(r'0[0-7]+', Number.Oct),
|
86
|
+
(r'\d+\.\d+', Number.Float),
|
87
|
+
(r'\d+', Number.Integer),
|
88
|
+
(r'\$([\w.:-]+)', Name.Variable),
|
89
|
+
(r'([\w.:-]+)', Text),
|
90
|
+
],
|
91
|
+
'params': [
|
92
|
+
(r';', Keyword, '#pop'),
|
93
|
+
(r'\n', Text, '#pop'),
|
94
|
+
(r'(else|elseif|then)\b', Keyword),
|
95
|
+
include('basic'),
|
96
|
+
include('data'),
|
97
|
+
],
|
98
|
+
'params-in-brace': [
|
99
|
+
(r'\}', Keyword, ('#pop', '#pop')),
|
100
|
+
include('params')
|
101
|
+
],
|
102
|
+
'params-in-paren': [
|
103
|
+
(r'\)', Keyword, ('#pop', '#pop')),
|
104
|
+
include('params')
|
105
|
+
],
|
106
|
+
'params-in-bracket': [
|
107
|
+
(r'\]', Keyword, ('#pop', '#pop')),
|
108
|
+
include('params')
|
109
|
+
],
|
110
|
+
'string': [
|
111
|
+
(r'\[', String.Double, 'string-square'),
|
112
|
+
(r'(?s)(\\\\|\\[0-7]+|\\.|[^"\\])', String.Double),
|
113
|
+
(r'"', String.Double, '#pop')
|
114
|
+
],
|
115
|
+
'string-square': [
|
116
|
+
(r'\[', String.Double, 'string-square'),
|
117
|
+
(r'(?s)(\\\\|\\[0-7]+|\\.|\\\n|[^\]\\])', String.Double),
|
118
|
+
(r'\]', String.Double, '#pop')
|
119
|
+
],
|
120
|
+
'brace': [
|
121
|
+
(r'\}', Keyword, '#pop'),
|
122
|
+
include('command-in-brace'),
|
123
|
+
include('basic'),
|
124
|
+
include('data'),
|
125
|
+
],
|
126
|
+
'paren': [
|
127
|
+
(r'\)', Keyword, '#pop'),
|
128
|
+
include('command-in-paren'),
|
129
|
+
include('basic'),
|
130
|
+
include('data'),
|
131
|
+
],
|
132
|
+
'bracket': [
|
133
|
+
(r'\]', Keyword, '#pop'),
|
134
|
+
include('command-in-bracket'),
|
135
|
+
include('basic'),
|
136
|
+
include('data'),
|
137
|
+
],
|
138
|
+
'comment': [
|
139
|
+
(r'.*[^\\]\n', Comment, '#pop'),
|
140
|
+
(r'.*\\\n', Comment),
|
141
|
+
],
|
142
|
+
}
|
143
|
+
|
144
|
+
def analyse_text(text):
|
145
|
+
return shebang_matches(text, r'(tcl)')
|
@@ -5,23 +5,24 @@
|
|
5
5
|
|
6
6
|
Lexers for various template engines' markup.
|
7
7
|
|
8
|
-
:copyright: Copyright 2006-
|
8
|
+
:copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
|
9
9
|
:license: BSD, see LICENSE for details.
|
10
10
|
"""
|
11
11
|
|
12
12
|
import re
|
13
13
|
|
14
|
-
from pygments.lexers.
|
15
|
-
|
16
|
-
from pygments.lexers.
|
17
|
-
from pygments.lexers.
|
18
|
-
from pygments.lexers.
|
19
|
-
from pygments.lexers.
|
14
|
+
from pygments.lexers.html import HtmlLexer, XmlLexer
|
15
|
+
from pygments.lexers.javascript import JavascriptLexer, LassoLexer
|
16
|
+
from pygments.lexers.css import CssLexer
|
17
|
+
from pygments.lexers.php import PhpLexer
|
18
|
+
from pygments.lexers.python import PythonLexer
|
19
|
+
from pygments.lexers.perl import PerlLexer
|
20
|
+
from pygments.lexers.jvm import JavaLexer, TeaLangLexer
|
21
|
+
from pygments.lexers.data import YamlLexer
|
20
22
|
from pygments.lexer import Lexer, DelegatingLexer, RegexLexer, bygroups, \
|
21
|
-
|
22
|
-
from pygments.token import Error, Punctuation, \
|
23
|
-
|
24
|
-
Whitespace
|
23
|
+
include, using, this, default, combined
|
24
|
+
from pygments.token import Error, Punctuation, Whitespace, \
|
25
|
+
Text, Comment, Operator, Keyword, Name, String, Number, Other, Token
|
25
26
|
from pygments.util import html_doctype_matches, looks_like_xml
|
26
27
|
|
27
28
|
__all__ = ['HtmlPhpLexer', 'XmlPhpLexer', 'CssPhpLexer',
|
@@ -42,7 +43,8 @@ __all__ = ['HtmlPhpLexer', 'XmlPhpLexer', 'CssPhpLexer',
|
|
42
43
|
'VelocityHtmlLexer', 'VelocityXmlLexer', 'SspLexer',
|
43
44
|
'TeaTemplateLexer', 'LassoHtmlLexer', 'LassoXmlLexer',
|
44
45
|
'LassoCssLexer', 'LassoJavascriptLexer', 'HandlebarsLexer',
|
45
|
-
'HandlebarsHtmlLexer', 'YamlJinjaLexer', 'LiquidLexer'
|
46
|
+
'HandlebarsHtmlLexer', 'YamlJinjaLexer', 'LiquidLexer',
|
47
|
+
'TwigLexer', 'TwigHtmlLexer', 'Angular2Lexer', 'Angular2HtmlLexer']
|
46
48
|
|
47
49
|
|
48
50
|
class ErbLexer(Lexer):
|
@@ -63,7 +65,7 @@ class ErbLexer(Lexer):
|
|
63
65
|
_block_re = re.compile(r'(<%%|%%>|<%=|<%#|<%-|<%|-%>|%>|^%[^%].*?$)', re.M)
|
64
66
|
|
65
67
|
def __init__(self, **options):
|
66
|
-
from pygments.lexers.
|
68
|
+
from pygments.lexers.ruby import RubyLexer
|
67
69
|
self.ruby_lexer = RubyLexer(**options)
|
68
70
|
Lexer.__init__(self, **options)
|
69
71
|
|
@@ -106,7 +108,7 @@ class ErbLexer(Lexer):
|
|
106
108
|
data = tokens.pop()
|
107
109
|
r_idx = 0
|
108
110
|
for r_idx, r_token, r_value in \
|
109
|
-
|
111
|
+
self.ruby_lexer.get_tokens_unprocessed(data):
|
110
112
|
yield r_idx + idx, r_token, r_value
|
111
113
|
idx += len(data)
|
112
114
|
state = 2
|
@@ -119,7 +121,7 @@ class ErbLexer(Lexer):
|
|
119
121
|
yield idx, Comment.Preproc, tag[0]
|
120
122
|
r_idx = 0
|
121
123
|
for r_idx, r_token, r_value in \
|
122
|
-
|
124
|
+
self.ruby_lexer.get_tokens_unprocessed(tag[1:]):
|
123
125
|
yield idx + 1 + r_idx, r_token, r_value
|
124
126
|
idx += len(tag)
|
125
127
|
state = 0
|
@@ -169,10 +171,11 @@ class SmartyLexer(RegexLexer):
|
|
169
171
|
],
|
170
172
|
'smarty': [
|
171
173
|
(r'\s+', Text),
|
174
|
+
(r'\{', Comment.Preproc, '#push'),
|
172
175
|
(r'\}', Comment.Preproc, '#pop'),
|
173
176
|
(r'#[a-zA-Z_]\w*#', Name.Variable),
|
174
177
|
(r'\$[a-zA-Z_]\w*(\.\w+)*', Name.Variable),
|
175
|
-
(r'[~!%^&*()+=|\[\]
|
178
|
+
(r'[~!%^&*()+=|\[\]:;,.<>/?@-]', Operator),
|
176
179
|
(r'(true|false|null)\b', Keyword.Constant),
|
177
180
|
(r"[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|"
|
178
181
|
r"0[xX][0-9a-fA-F]+[Ll]?", Number),
|
@@ -205,7 +208,7 @@ class VelocityLexer(RegexLexer):
|
|
205
208
|
|
206
209
|
name = 'Velocity'
|
207
210
|
aliases = ['velocity']
|
208
|
-
filenames = ['*.vm','*.fhtml']
|
211
|
+
filenames = ['*.vm', '*.fhtml']
|
209
212
|
|
210
213
|
flags = re.MULTILINE | re.DOTALL
|
211
214
|
|
@@ -234,7 +237,7 @@ class VelocityLexer(RegexLexer):
|
|
234
237
|
default('#pop')
|
235
238
|
],
|
236
239
|
'directiveparams': [
|
237
|
-
(r'(&&|\|\||==?|!=?|[
|
240
|
+
(r'(&&|\|\||==?|!=?|[-<>+*%&|^/])|\b(eq|ne|gt|lt|ge|le|not|in)\b',
|
238
241
|
Operator),
|
239
242
|
(r'\[', Operator, 'rangeoperator'),
|
240
243
|
(r'\b' + identifier + r'\b', Name.Function),
|
@@ -248,7 +251,7 @@ class VelocityLexer(RegexLexer):
|
|
248
251
|
'funcparams': [
|
249
252
|
(r'\$\{?', Punctuation, 'variable'),
|
250
253
|
(r'\s+', Text),
|
251
|
-
(r'
|
254
|
+
(r'[,:]', Punctuation),
|
252
255
|
(r'"(\\\\|\\"|[^"])*"', String.Double),
|
253
256
|
(r"'(\\\\|\\'|[^'])*'", String.Single),
|
254
257
|
(r"0[xX][0-9a-fA-F]+[Ll]?", Number),
|
@@ -256,6 +259,8 @@ class VelocityLexer(RegexLexer):
|
|
256
259
|
(r'(true|false|null)\b', Keyword.Constant),
|
257
260
|
(r'\(', Punctuation, '#push'),
|
258
261
|
(r'\)', Punctuation, '#pop'),
|
262
|
+
(r'\{', Punctuation, '#push'),
|
263
|
+
(r'\}', Punctuation, '#pop'),
|
259
264
|
(r'\[', Punctuation, '#push'),
|
260
265
|
(r'\]', Punctuation, '#pop'),
|
261
266
|
]
|
@@ -277,31 +282,31 @@ class VelocityLexer(RegexLexer):
|
|
277
282
|
|
278
283
|
class VelocityHtmlLexer(DelegatingLexer):
|
279
284
|
"""
|
280
|
-
Subclass of the `VelocityLexer` that highlights
|
285
|
+
Subclass of the `VelocityLexer` that highlights unlexed data
|
281
286
|
with the `HtmlLexer`.
|
282
287
|
|
283
288
|
"""
|
284
289
|
|
285
290
|
name = 'HTML+Velocity'
|
286
291
|
aliases = ['html+velocity']
|
287
|
-
alias_filenames = ['*.html','*.fhtml']
|
292
|
+
alias_filenames = ['*.html', '*.fhtml']
|
288
293
|
mimetypes = ['text/html+velocity']
|
289
294
|
|
290
295
|
def __init__(self, **options):
|
291
296
|
super(VelocityHtmlLexer, self).__init__(HtmlLexer, VelocityLexer,
|
292
|
-
|
297
|
+
**options)
|
293
298
|
|
294
299
|
|
295
300
|
class VelocityXmlLexer(DelegatingLexer):
|
296
301
|
"""
|
297
|
-
Subclass of the `VelocityLexer` that highlights
|
302
|
+
Subclass of the `VelocityLexer` that highlights unlexed data
|
298
303
|
with the `XmlLexer`.
|
299
304
|
|
300
305
|
"""
|
301
306
|
|
302
307
|
name = 'XML+Velocity'
|
303
308
|
aliases = ['xml+velocity']
|
304
|
-
alias_filenames = ['*.xml','*.vm']
|
309
|
+
alias_filenames = ['*.xml', '*.vm']
|
305
310
|
mimetypes = ['application/xml+velocity']
|
306
311
|
|
307
312
|
def __init__(self, **options):
|
@@ -311,7 +316,7 @@ class VelocityXmlLexer(DelegatingLexer):
|
|
311
316
|
def analyse_text(text):
|
312
317
|
rv = VelocityLexer.analyse_text(text) - 0.01
|
313
318
|
if looks_like_xml(text):
|
314
|
-
rv += 0.
|
319
|
+
rv += 0.4
|
315
320
|
return rv
|
316
321
|
|
317
322
|
|
@@ -366,7 +371,7 @@ class DjangoLexer(RegexLexer):
|
|
366
371
|
r'with(?:(?:out)?\s*context)?|scoped|ignore\s+missing)\b',
|
367
372
|
Keyword),
|
368
373
|
(r'(loop|block|super|forloop)\b', Name.Builtin),
|
369
|
-
(r'[a-zA-
|
374
|
+
(r'[a-zA-Z_][\w-]*', Name.Variable),
|
370
375
|
(r'\.\w+', Name.Variable),
|
371
376
|
(r':?"(\\\\|\\"|[^"])*"', String.Double),
|
372
377
|
(r":?'(\\\\|\\'|[^'])*'", String.Single),
|
@@ -448,7 +453,7 @@ class MyghtyLexer(RegexLexer):
|
|
448
453
|
|
449
454
|
class MyghtyHtmlLexer(DelegatingLexer):
|
450
455
|
"""
|
451
|
-
Subclass of the `MyghtyLexer` that highlights
|
456
|
+
Subclass of the `MyghtyLexer` that highlights unlexed data
|
452
457
|
with the `HtmlLexer`.
|
453
458
|
|
454
459
|
.. versionadded:: 0.6
|
@@ -465,7 +470,7 @@ class MyghtyHtmlLexer(DelegatingLexer):
|
|
465
470
|
|
466
471
|
class MyghtyXmlLexer(DelegatingLexer):
|
467
472
|
"""
|
468
|
-
Subclass of the `MyghtyLexer` that highlights
|
473
|
+
Subclass of the `MyghtyLexer` that highlights unlexed data
|
469
474
|
with the `XmlLexer`.
|
470
475
|
|
471
476
|
.. versionadded:: 0.6
|
@@ -482,7 +487,7 @@ class MyghtyXmlLexer(DelegatingLexer):
|
|
482
487
|
|
483
488
|
class MyghtyJavascriptLexer(DelegatingLexer):
|
484
489
|
"""
|
485
|
-
Subclass of the `MyghtyLexer` that highlights
|
490
|
+
Subclass of the `MyghtyLexer` that highlights unlexed data
|
486
491
|
with the `JavascriptLexer`.
|
487
492
|
|
488
493
|
.. versionadded:: 0.6
|
@@ -501,7 +506,7 @@ class MyghtyJavascriptLexer(DelegatingLexer):
|
|
501
506
|
|
502
507
|
class MyghtyCssLexer(DelegatingLexer):
|
503
508
|
"""
|
504
|
-
Subclass of the `MyghtyLexer` that highlights
|
509
|
+
Subclass of the `MyghtyLexer` that highlights unlexed data
|
505
510
|
with the `CssLexer`.
|
506
511
|
|
507
512
|
.. versionadded:: 0.6
|
@@ -565,10 +570,12 @@ class MasonLexer(RegexLexer):
|
|
565
570
|
}
|
566
571
|
|
567
572
|
def analyse_text(text):
|
568
|
-
|
569
|
-
if re.search('
|
570
|
-
|
571
|
-
|
573
|
+
result = 0.0
|
574
|
+
if re.search(r'</%(class|doc|init)%>', text) is not None:
|
575
|
+
result = 1.0
|
576
|
+
elif re.search(r'<&.+&>', text, re.DOTALL) is not None:
|
577
|
+
result = 0.11
|
578
|
+
return result
|
572
579
|
|
573
580
|
|
574
581
|
class MakoLexer(RegexLexer):
|
@@ -595,11 +602,11 @@ class MakoLexer(RegexLexer):
|
|
595
602
|
(r'(\s*)(##[^\n]*)(\n|\Z)',
|
596
603
|
bygroups(Text, Comment.Preproc, Other)),
|
597
604
|
(r'(?s)<%doc>.*?</%doc>', Comment.Preproc),
|
598
|
-
(r'(<%)([\w
|
605
|
+
(r'(<%)([\w.:]+)',
|
599
606
|
bygroups(Comment.Preproc, Name.Builtin), 'tag'),
|
600
|
-
(r'(</%)([\w
|
607
|
+
(r'(</%)([\w.:]+)(>)',
|
601
608
|
bygroups(Comment.Preproc, Name.Builtin, Comment.Preproc)),
|
602
|
-
(r'<%(?=([\w
|
609
|
+
(r'<%(?=([\w.:]+))', Comment.Preproc, 'ondeftags'),
|
603
610
|
(r'(<%(?:!?))(.*?)(%>)(?s)',
|
604
611
|
bygroups(Comment.Preproc, using(PythonLexer), Comment.Preproc)),
|
605
612
|
(r'(\$\{)(.*?)(\})',
|
@@ -653,11 +660,12 @@ class MakoHtmlLexer(DelegatingLexer):
|
|
653
660
|
|
654
661
|
def __init__(self, **options):
|
655
662
|
super(MakoHtmlLexer, self).__init__(HtmlLexer, MakoLexer,
|
656
|
-
|
663
|
+
**options)
|
664
|
+
|
657
665
|
|
658
666
|
class MakoXmlLexer(DelegatingLexer):
|
659
667
|
"""
|
660
|
-
Subclass of the `MakoLexer` that highlights
|
668
|
+
Subclass of the `MakoLexer` that highlights unlexed data
|
661
669
|
with the `XmlLexer`.
|
662
670
|
|
663
671
|
.. versionadded:: 0.7
|
@@ -669,11 +677,12 @@ class MakoXmlLexer(DelegatingLexer):
|
|
669
677
|
|
670
678
|
def __init__(self, **options):
|
671
679
|
super(MakoXmlLexer, self).__init__(XmlLexer, MakoLexer,
|
672
|
-
|
680
|
+
**options)
|
681
|
+
|
673
682
|
|
674
683
|
class MakoJavascriptLexer(DelegatingLexer):
|
675
684
|
"""
|
676
|
-
Subclass of the `MakoLexer` that highlights
|
685
|
+
Subclass of the `MakoLexer` that highlights unlexed data
|
677
686
|
with the `JavascriptLexer`.
|
678
687
|
|
679
688
|
.. versionadded:: 0.7
|
@@ -687,11 +696,12 @@ class MakoJavascriptLexer(DelegatingLexer):
|
|
687
696
|
|
688
697
|
def __init__(self, **options):
|
689
698
|
super(MakoJavascriptLexer, self).__init__(JavascriptLexer,
|
690
|
-
|
699
|
+
MakoLexer, **options)
|
700
|
+
|
691
701
|
|
692
702
|
class MakoCssLexer(DelegatingLexer):
|
693
703
|
"""
|
694
|
-
Subclass of the `MakoLexer` that highlights
|
704
|
+
Subclass of the `MakoLexer` that highlights unlexed data
|
695
705
|
with the `CssLexer`.
|
696
706
|
|
697
707
|
.. versionadded:: 0.7
|
@@ -703,7 +713,7 @@ class MakoCssLexer(DelegatingLexer):
|
|
703
713
|
|
704
714
|
def __init__(self, **options):
|
705
715
|
super(MakoCssLexer, self).__init__(CssLexer, MakoLexer,
|
706
|
-
|
716
|
+
**options)
|
707
717
|
|
708
718
|
|
709
719
|
# Genshi and Cheetah lexers courtesy of Matt Good.
|
@@ -747,7 +757,7 @@ class CheetahLexer(RegexLexer):
|
|
747
757
|
(bygroups(Comment.Preproc, using(CheetahPythonLexer),
|
748
758
|
Comment.Preproc))),
|
749
759
|
# TODO support other Python syntax like $foo['bar']
|
750
|
-
(r'(\$)([a-zA-Z_][\w
|
760
|
+
(r'(\$)([a-zA-Z_][\w.]*\w)',
|
751
761
|
bygroups(Comment.Preproc, using(CheetahPythonLexer))),
|
752
762
|
(r'(\$\{!?)(.*?)(\})(?s)',
|
753
763
|
bygroups(Comment.Preproc, using(CheetahPythonLexer),
|
@@ -767,7 +777,7 @@ class CheetahLexer(RegexLexer):
|
|
767
777
|
|
768
778
|
class CheetahHtmlLexer(DelegatingLexer):
|
769
779
|
"""
|
770
|
-
Subclass of the `CheetahLexer` that highlights
|
780
|
+
Subclass of the `CheetahLexer` that highlights unlexed data
|
771
781
|
with the `HtmlLexer`.
|
772
782
|
"""
|
773
783
|
|
@@ -782,7 +792,7 @@ class CheetahHtmlLexer(DelegatingLexer):
|
|
782
792
|
|
783
793
|
class CheetahXmlLexer(DelegatingLexer):
|
784
794
|
"""
|
785
|
-
Subclass of the `CheetahLexer` that highlights
|
795
|
+
Subclass of the `CheetahLexer` that highlights unlexed data
|
786
796
|
with the `XmlLexer`.
|
787
797
|
"""
|
788
798
|
|
@@ -797,7 +807,7 @@ class CheetahXmlLexer(DelegatingLexer):
|
|
797
807
|
|
798
808
|
class CheetahJavascriptLexer(DelegatingLexer):
|
799
809
|
"""
|
800
|
-
Subclass of the `CheetahLexer` that highlights
|
810
|
+
Subclass of the `CheetahLexer` that highlights unlexed data
|
801
811
|
with the `JavascriptLexer`.
|
802
812
|
"""
|
803
813
|
|
@@ -828,11 +838,11 @@ class GenshiTextLexer(RegexLexer):
|
|
828
838
|
|
829
839
|
tokens = {
|
830
840
|
'root': [
|
831
|
-
(r'[
|
841
|
+
(r'[^#$\s]+', Other),
|
832
842
|
(r'^(\s*)(##.*)$', bygroups(Text, Comment)),
|
833
843
|
(r'^(\s*)(#)', bygroups(Text, Comment.Preproc), 'directive'),
|
834
844
|
include('variable'),
|
835
|
-
(r'[
|
845
|
+
(r'[#$\s]', Other),
|
836
846
|
],
|
837
847
|
'directive': [
|
838
848
|
(r'\n', Text, '#pop'),
|
@@ -845,7 +855,7 @@ class GenshiTextLexer(RegexLexer):
|
|
845
855
|
'variable': [
|
846
856
|
(r'(?<!\$)(\$\{)(.+?)(\})',
|
847
857
|
bygroups(Comment.Preproc, using(PythonLexer), Comment.Preproc)),
|
848
|
-
(r'(?<!\$)(\$)([a-zA-Z_][\w
|
858
|
+
(r'(?<!\$)(\$)([a-zA-Z_][\w.]*)',
|
849
859
|
Name.Variable),
|
850
860
|
]
|
851
861
|
}
|
@@ -861,15 +871,15 @@ class GenshiMarkupLexer(RegexLexer):
|
|
861
871
|
|
862
872
|
tokens = {
|
863
873
|
'root': [
|
864
|
-
(r'[
|
874
|
+
(r'[^<$]+', Other),
|
865
875
|
(r'(<\?python)(.*?)(\?>)',
|
866
876
|
bygroups(Comment.Preproc, using(PythonLexer), Comment.Preproc)),
|
867
877
|
# yield style and script blocks as Other
|
868
878
|
(r'<\s*(script|style)\s*.*?>.*?<\s*/\1\s*>', Other),
|
869
879
|
(r'<\s*py:[a-zA-Z0-9]+', Name.Tag, 'pytag'),
|
870
|
-
(r'<\s*[a-zA-Z0-9
|
880
|
+
(r'<\s*[a-zA-Z0-9:.]+', Name.Tag, 'tag'),
|
871
881
|
include('variable'),
|
872
|
-
(r'[
|
882
|
+
(r'[<$]', Other),
|
873
883
|
],
|
874
884
|
'pytag': [
|
875
885
|
(r'\s+', Text),
|
@@ -1116,7 +1126,7 @@ class HtmlPhpLexer(DelegatingLexer):
|
|
1116
1126
|
|
1117
1127
|
class XmlPhpLexer(DelegatingLexer):
|
1118
1128
|
"""
|
1119
|
-
Subclass of `PhpLexer` that
|
1129
|
+
Subclass of `PhpLexer` that highlights unhandled data with the `XmlLexer`.
|
1120
1130
|
"""
|
1121
1131
|
|
1122
1132
|
name = 'XML+PHP'
|
@@ -1174,7 +1184,7 @@ class JavascriptPhpLexer(DelegatingLexer):
|
|
1174
1184
|
|
1175
1185
|
class HtmlSmartyLexer(DelegatingLexer):
|
1176
1186
|
"""
|
1177
|
-
Subclass of the `SmartyLexer` that
|
1187
|
+
Subclass of the `SmartyLexer` that highlights unlexed data with the
|
1178
1188
|
`HtmlLexer`.
|
1179
1189
|
|
1180
1190
|
Nested Javascript and CSS is highlighted too.
|
@@ -1257,7 +1267,7 @@ class JavascriptSmartyLexer(DelegatingLexer):
|
|
1257
1267
|
|
1258
1268
|
class HtmlDjangoLexer(DelegatingLexer):
|
1259
1269
|
"""
|
1260
|
-
Subclass of the `DjangoLexer` that
|
1270
|
+
Subclass of the `DjangoLexer` that highlights unlexed data with the
|
1261
1271
|
`HtmlLexer`.
|
1262
1272
|
|
1263
1273
|
Nested Javascript and CSS is highlighted too.
|
@@ -1416,7 +1426,7 @@ class EvoqueLexer(RegexLexer):
|
|
1416
1426
|
String, Punctuation)),
|
1417
1427
|
# directives: evoque, overlay
|
1418
1428
|
# see doc for handling first name arg: /directives/evoque/
|
1419
|
-
|
1429
|
+
# + minor inconsistency: the "name" in e.g. $overlay{name=site_base}
|
1420
1430
|
# should be using(PythonLexer), not passed out as String
|
1421
1431
|
(r'(\$)(evoque|overlay)(\{(%)?)(\s*[#\w\-"\'.]+[^=,%}]+?)?'
|
1422
1432
|
r'(.*?)((?(4)%)\})',
|
@@ -1442,6 +1452,7 @@ class EvoqueLexer(RegexLexer):
|
|
1442
1452
|
],
|
1443
1453
|
}
|
1444
1454
|
|
1455
|
+
|
1445
1456
|
class EvoqueHtmlLexer(DelegatingLexer):
|
1446
1457
|
"""
|
1447
1458
|
Subclass of the `EvoqueLexer` that highlights unlexed data with the
|
@@ -1458,6 +1469,7 @@ class EvoqueHtmlLexer(DelegatingLexer):
|
|
1458
1469
|
super(EvoqueHtmlLexer, self).__init__(HtmlLexer, EvoqueLexer,
|
1459
1470
|
**options)
|
1460
1471
|
|
1472
|
+
|
1461
1473
|
class EvoqueXmlLexer(DelegatingLexer):
|
1462
1474
|
"""
|
1463
1475
|
Subclass of the `EvoqueLexer` that highlights unlexed data with the
|
@@ -1474,6 +1486,7 @@ class EvoqueXmlLexer(DelegatingLexer):
|
|
1474
1486
|
super(EvoqueXmlLexer, self).__init__(XmlLexer, EvoqueLexer,
|
1475
1487
|
**options)
|
1476
1488
|
|
1489
|
+
|
1477
1490
|
class ColdfusionLexer(RegexLexer):
|
1478
1491
|
"""
|
1479
1492
|
Coldfusion statements
|
@@ -1554,7 +1567,7 @@ class ColdfusionMarkupLexer(RegexLexer):
|
|
1554
1567
|
(r'[^#<]+', Other),
|
1555
1568
|
(r'(#)(.*?)(#)', bygroups(Punctuation, using(ColdfusionLexer),
|
1556
1569
|
Punctuation)),
|
1557
|
-
#(r'<cfoutput.*?>', Name.Builtin, '#push'),
|
1570
|
+
# (r'<cfoutput.*?>', Name.Builtin, '#push'),
|
1558
1571
|
(r'</cfoutput.*?>', Name.Builtin, '#pop'),
|
1559
1572
|
include('tags'),
|
1560
1573
|
(r'(?s)<[^<>]*', Other),
|
@@ -1585,6 +1598,8 @@ class ColdfusionHtmlLexer(DelegatingLexer):
|
|
1585
1598
|
class ColdfusionCFCLexer(DelegatingLexer):
|
1586
1599
|
"""
|
1587
1600
|
Coldfusion markup/script components
|
1601
|
+
|
1602
|
+
.. versionadded:: 2.0
|
1588
1603
|
"""
|
1589
1604
|
name = 'Coldfusion CFC'
|
1590
1605
|
aliases = ['cfc']
|
@@ -1593,7 +1608,7 @@ class ColdfusionCFCLexer(DelegatingLexer):
|
|
1593
1608
|
|
1594
1609
|
def __init__(self, **options):
|
1595
1610
|
super(ColdfusionCFCLexer, self).__init__(ColdfusionHtmlLexer, ColdfusionLexer,
|
1596
|
-
|
1611
|
+
**options)
|
1597
1612
|
|
1598
1613
|
|
1599
1614
|
class SspLexer(DelegatingLexer):
|
@@ -1634,13 +1649,13 @@ class TeaTemplateRootLexer(RegexLexer):
|
|
1634
1649
|
(r'<%\S?', Keyword, 'sec'),
|
1635
1650
|
(r'[^<]+', Other),
|
1636
1651
|
(r'<', Other),
|
1637
|
-
|
1652
|
+
],
|
1638
1653
|
'sec': [
|
1639
1654
|
(r'%>', Keyword, '#pop'),
|
1640
1655
|
# note: '\w\W' != '.' without DOTALL.
|
1641
1656
|
(r'[\w\W]+?(?=%>|\Z)', using(TeaLangLexer)),
|
1642
|
-
|
1643
|
-
|
1657
|
+
],
|
1658
|
+
}
|
1644
1659
|
|
1645
1660
|
|
1646
1661
|
class TeaTemplateLexer(DelegatingLexer):
|
@@ -1690,9 +1705,7 @@ class LassoHtmlLexer(DelegatingLexer):
|
|
1690
1705
|
|
1691
1706
|
def analyse_text(text):
|
1692
1707
|
rv = LassoLexer.analyse_text(text) - 0.01
|
1693
|
-
if
|
1694
|
-
rv += 0.2
|
1695
|
-
if html_doctype_matches(text):
|
1708
|
+
if html_doctype_matches(text): # same as HTML lexer
|
1696
1709
|
rv += 0.5
|
1697
1710
|
return rv
|
1698
1711
|
|
@@ -1769,16 +1782,17 @@ class LassoJavascriptLexer(DelegatingLexer):
|
|
1769
1782
|
|
1770
1783
|
def analyse_text(text):
|
1771
1784
|
rv = LassoLexer.analyse_text(text) - 0.05
|
1772
|
-
if 'function' in text:
|
1773
|
-
rv += 0.2
|
1774
1785
|
return rv
|
1775
1786
|
|
1787
|
+
|
1776
1788
|
class HandlebarsLexer(RegexLexer):
|
1777
1789
|
"""
|
1778
1790
|
Generic `handlebars <http://handlebarsjs.com/>` template lexer.
|
1779
1791
|
|
1780
1792
|
Highlights only the Handlebars template tags (stuff between `{{` and `}}`).
|
1781
1793
|
Everything else is left for a delegating lexer.
|
1794
|
+
|
1795
|
+
.. versionadded:: 2.0
|
1782
1796
|
"""
|
1783
1797
|
|
1784
1798
|
name = "Handlebars"
|
@@ -1788,10 +1802,10 @@ class HandlebarsLexer(RegexLexer):
|
|
1788
1802
|
'root': [
|
1789
1803
|
(r'[^{]+', Other),
|
1790
1804
|
|
1791
|
-
(r'{{
|
1805
|
+
(r'\{\{!.*\}\}', Comment),
|
1792
1806
|
|
1793
|
-
(r'({{{)(\s*)', bygroups(Comment.Special, Text), 'tag'),
|
1794
|
-
(r'({{)(\s*)', bygroups(Comment.Preproc, Text), 'tag'),
|
1807
|
+
(r'(\{\{\{)(\s*)', bygroups(Comment.Special, Text), 'tag'),
|
1808
|
+
(r'(\{\{)(\s*)', bygroups(Comment.Preproc, Text), 'tag'),
|
1795
1809
|
],
|
1796
1810
|
|
1797
1811
|
'tag': [
|
@@ -1800,20 +1814,20 @@ class HandlebarsLexer(RegexLexer):
|
|
1800
1814
|
(r'\}\}', Comment.Preproc, '#pop'),
|
1801
1815
|
|
1802
1816
|
# Handlebars
|
1803
|
-
(r'([
|
1817
|
+
(r'([#/]*)(each|if|unless|else|with|log|in)', bygroups(Keyword,
|
1804
1818
|
Keyword)),
|
1805
1819
|
|
1806
1820
|
# General {{#block}}
|
1807
|
-
(r'([
|
1821
|
+
(r'([#/])([\w-]+)', bygroups(Name.Function, Name.Function)),
|
1808
1822
|
|
1809
1823
|
# {{opt=something}}
|
1810
|
-
(r'(\w+)(=)', bygroups(Name.Attribute, Operator)),
|
1824
|
+
(r'([\w-]+)(=)', bygroups(Name.Attribute, Operator)),
|
1811
1825
|
|
1812
1826
|
# borrowed from DjangoLexer
|
1813
1827
|
(r':?"(\\\\|\\"|[^"])*"', String.Double),
|
1814
1828
|
(r":?'(\\\\|\\'|[^'])*'", String.Single),
|
1815
1829
|
(r'[a-zA-Z][\w-]*', Name.Variable),
|
1816
|
-
(r'
|
1830
|
+
(r'\.[\w-]+', Name.Variable),
|
1817
1831
|
(r"[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|"
|
1818
1832
|
r"0[xX][0-9a-fA-F]+[Ll]?", Number),
|
1819
1833
|
]
|
@@ -1824,6 +1838,8 @@ class HandlebarsHtmlLexer(DelegatingLexer):
|
|
1824
1838
|
"""
|
1825
1839
|
Subclass of the `HandlebarsLexer` that highlights unlexed data with the
|
1826
1840
|
`HtmlLexer`.
|
1841
|
+
|
1842
|
+
.. versionadded:: 2.0
|
1827
1843
|
"""
|
1828
1844
|
|
1829
1845
|
name = "HTML+Handlebars"
|
@@ -1837,7 +1853,7 @@ class HandlebarsHtmlLexer(DelegatingLexer):
|
|
1837
1853
|
|
1838
1854
|
class YamlJinjaLexer(DelegatingLexer):
|
1839
1855
|
"""
|
1840
|
-
Subclass of the `DjangoLexer` that
|
1856
|
+
Subclass of the `DjangoLexer` that highlights unlexed data with the
|
1841
1857
|
`YamlLexer`.
|
1842
1858
|
|
1843
1859
|
Commonly used in Saltstack salt states.
|
@@ -1871,10 +1887,10 @@ class LiquidLexer(RegexLexer):
|
|
1871
1887
|
# tags and block tags
|
1872
1888
|
(r'(\{%)(\s*)', bygroups(Punctuation, Whitespace), 'tag-or-block'),
|
1873
1889
|
# output tags
|
1874
|
-
(r'({{)(\s*)([^\s}]+)',
|
1890
|
+
(r'(\{\{)(\s*)([^\s}]+)',
|
1875
1891
|
bygroups(Punctuation, Whitespace, using(this, state = 'generic')),
|
1876
1892
|
'output'),
|
1877
|
-
(r'{', Text)
|
1893
|
+
(r'\{', Text)
|
1878
1894
|
],
|
1879
1895
|
|
1880
1896
|
'tag-or-block': [
|
@@ -1912,16 +1928,16 @@ class LiquidLexer(RegexLexer):
|
|
1912
1928
|
|
1913
1929
|
'output': [
|
1914
1930
|
include('whitespace'),
|
1915
|
-
('\}\}', Punctuation, '#pop'),
|
1931
|
+
('\}\}', Punctuation, '#pop'), # end of output
|
1916
1932
|
|
1917
1933
|
(r'\|', Punctuation, 'filters')
|
1918
1934
|
],
|
1919
1935
|
|
1920
1936
|
'filters': [
|
1921
1937
|
include('whitespace'),
|
1922
|
-
(r'\}\}', Punctuation, ('#pop', '#pop')),
|
1938
|
+
(r'\}\}', Punctuation, ('#pop', '#pop')), # end of filters and output
|
1923
1939
|
|
1924
|
-
(r'([^\s
|
1940
|
+
(r'([^\s|:]+)(:?)(\s*)',
|
1925
1941
|
bygroups(Name.Function, Punctuation, Whitespace), 'filter-markup')
|
1926
1942
|
],
|
1927
1943
|
|
@@ -1941,7 +1957,7 @@ class LiquidLexer(RegexLexer):
|
|
1941
1957
|
Punctuation)),
|
1942
1958
|
(r'\b!', Operator),
|
1943
1959
|
(r'\bnot\b', Operator.Word),
|
1944
|
-
(r'([\w
|
1960
|
+
(r'([\w.\'"]+)(\s+)(contains)(\s+)([\w.\'"]+)',
|
1945
1961
|
bygroups(using(this, state = 'generic'), Whitespace, Operator.Word,
|
1946
1962
|
Whitespace, using(this, state = 'generic'))),
|
1947
1963
|
|
@@ -1980,7 +1996,7 @@ class LiquidLexer(RegexLexer):
|
|
1980
1996
|
(r'([^\s=:]+)(\s*)(=|:)',
|
1981
1997
|
bygroups(Name.Attribute, Whitespace, Operator)),
|
1982
1998
|
# explicit variables
|
1983
|
-
(r'(\{\{)(\s*)([^\s
|
1999
|
+
(r'(\{\{)(\s*)([^\s}])(\s*)(\}\})',
|
1984
2000
|
bygroups(Punctuation, Whitespace, using(this, state = 'variable'),
|
1985
2001
|
Whitespace, Punctuation)),
|
1986
2002
|
|
@@ -1992,22 +2008,22 @@ class LiquidLexer(RegexLexer):
|
|
1992
2008
|
|
1993
2009
|
'default-param-markup': [
|
1994
2010
|
include('param-markup'),
|
1995
|
-
(r'.', Text)
|
2011
|
+
(r'.', Text) # fallback for switches / variables / un-quoted strings / ...
|
1996
2012
|
],
|
1997
2013
|
|
1998
2014
|
'variable-param-markup': [
|
1999
2015
|
include('param-markup'),
|
2000
2016
|
include('variable'),
|
2001
|
-
(r'.', Text)
|
2017
|
+
(r'.', Text) # fallback
|
2002
2018
|
],
|
2003
2019
|
|
2004
2020
|
'tag-markup': [
|
2005
|
-
(r'%\}', Punctuation, ('#pop', '#pop')),
|
2021
|
+
(r'%\}', Punctuation, ('#pop', '#pop')), # end of tag
|
2006
2022
|
include('default-param-markup')
|
2007
2023
|
],
|
2008
2024
|
|
2009
2025
|
'variable-tag-markup': [
|
2010
|
-
(r'%\}', Punctuation, ('#pop', '#pop')),
|
2026
|
+
(r'%\}', Punctuation, ('#pop', '#pop')), # end of tag
|
2011
2027
|
include('variable-param-markup')
|
2012
2028
|
],
|
2013
2029
|
|
@@ -2031,7 +2047,7 @@ class LiquidLexer(RegexLexer):
|
|
2031
2047
|
(r'\d+', Number.Integer)
|
2032
2048
|
],
|
2033
2049
|
|
2034
|
-
'generic': [
|
2050
|
+
'generic': [ # decides for variable, string, keyword or number
|
2035
2051
|
include('keyword'),
|
2036
2052
|
include('string'),
|
2037
2053
|
include('number'),
|
@@ -2051,10 +2067,186 @@ class LiquidLexer(RegexLexer):
|
|
2051
2067
|
],
|
2052
2068
|
|
2053
2069
|
'raw': [
|
2054
|
-
(r'[
|
2070
|
+
(r'[^{]+', Text),
|
2055
2071
|
(r'(\{%)(\s*)(endraw)(\s*)(%\})',
|
2056
2072
|
bygroups(Punctuation, Whitespace, Name.Tag, Whitespace,
|
2057
2073
|
Punctuation), '#pop'),
|
2058
2074
|
(r'\{', Text)
|
2059
|
-
]
|
2075
|
+
],
|
2060
2076
|
}
|
2077
|
+
|
2078
|
+
|
2079
|
+
class TwigLexer(RegexLexer):
|
2080
|
+
"""
|
2081
|
+
`Twig <http://twig.sensiolabs.org/>`_ template lexer.
|
2082
|
+
|
2083
|
+
It just highlights Twig code between the preprocessor directives,
|
2084
|
+
other data is left untouched by the lexer.
|
2085
|
+
|
2086
|
+
.. versionadded:: 2.0
|
2087
|
+
"""
|
2088
|
+
|
2089
|
+
name = 'Twig'
|
2090
|
+
aliases = ['twig']
|
2091
|
+
mimetypes = ['application/x-twig']
|
2092
|
+
|
2093
|
+
flags = re.M | re.S
|
2094
|
+
|
2095
|
+
# Note that a backslash is included in the following two patterns
|
2096
|
+
# PHP uses a backslash as a namespace separator
|
2097
|
+
_ident_char = r'[\\\w-]|[^\x00-\x7f]'
|
2098
|
+
_ident_begin = r'(?:[\\_a-z]|[^\x00-\x7f])'
|
2099
|
+
_ident_end = r'(?:' + _ident_char + ')*'
|
2100
|
+
_ident_inner = _ident_begin + _ident_end
|
2101
|
+
|
2102
|
+
tokens = {
|
2103
|
+
'root': [
|
2104
|
+
(r'[^{]+', Other),
|
2105
|
+
(r'\{\{', Comment.Preproc, 'var'),
|
2106
|
+
# twig comments
|
2107
|
+
(r'\{\#.*?\#\}', Comment),
|
2108
|
+
# raw twig blocks
|
2109
|
+
(r'(\{%)(-?\s*)(raw)(\s*-?)(%\})(.*?)'
|
2110
|
+
r'(\{%)(-?\s*)(endraw)(\s*-?)(%\})',
|
2111
|
+
bygroups(Comment.Preproc, Text, Keyword, Text, Comment.Preproc,
|
2112
|
+
Other, Comment.Preproc, Text, Keyword, Text,
|
2113
|
+
Comment.Preproc)),
|
2114
|
+
(r'(\{%)(-?\s*)(verbatim)(\s*-?)(%\})(.*?)'
|
2115
|
+
r'(\{%)(-?\s*)(endverbatim)(\s*-?)(%\})',
|
2116
|
+
bygroups(Comment.Preproc, Text, Keyword, Text, Comment.Preproc,
|
2117
|
+
Other, Comment.Preproc, Text, Keyword, Text,
|
2118
|
+
Comment.Preproc)),
|
2119
|
+
# filter blocks
|
2120
|
+
(r'(\{%%)(-?\s*)(filter)(\s+)(%s)' % _ident_inner,
|
2121
|
+
bygroups(Comment.Preproc, Text, Keyword, Text, Name.Function),
|
2122
|
+
'tag'),
|
2123
|
+
(r'(\{%)(-?\s*)([a-zA-Z_]\w*)',
|
2124
|
+
bygroups(Comment.Preproc, Text, Keyword), 'tag'),
|
2125
|
+
(r'\{', Other),
|
2126
|
+
],
|
2127
|
+
'varnames': [
|
2128
|
+
(r'(\|)(\s*)(%s)' % _ident_inner,
|
2129
|
+
bygroups(Operator, Text, Name.Function)),
|
2130
|
+
(r'(is)(\s+)(not)?(\s*)(%s)' % _ident_inner,
|
2131
|
+
bygroups(Keyword, Text, Keyword, Text, Name.Function)),
|
2132
|
+
(r'(?i)(true|false|none|null)\b', Keyword.Pseudo),
|
2133
|
+
(r'(in|not|and|b-and|or|b-or|b-xor|is'
|
2134
|
+
r'if|elseif|else|import'
|
2135
|
+
r'constant|defined|divisibleby|empty|even|iterable|odd|sameas'
|
2136
|
+
r'matches|starts\s+with|ends\s+with)\b',
|
2137
|
+
Keyword),
|
2138
|
+
(r'(loop|block|parent)\b', Name.Builtin),
|
2139
|
+
(_ident_inner, Name.Variable),
|
2140
|
+
(r'\.' + _ident_inner, Name.Variable),
|
2141
|
+
(r'\.[0-9]+', Number),
|
2142
|
+
(r':?"(\\\\|\\"|[^"])*"', String.Double),
|
2143
|
+
(r":?'(\\\\|\\'|[^'])*'", String.Single),
|
2144
|
+
(r'([{}()\[\]+\-*/,:~%]|\.\.|\?|:|\*\*|\/\/|!=|[><=]=?)', Operator),
|
2145
|
+
(r"[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|"
|
2146
|
+
r"0[xX][0-9a-fA-F]+[Ll]?", Number),
|
2147
|
+
],
|
2148
|
+
'var': [
|
2149
|
+
(r'\s+', Text),
|
2150
|
+
(r'(-?)(\}\})', bygroups(Text, Comment.Preproc), '#pop'),
|
2151
|
+
include('varnames')
|
2152
|
+
],
|
2153
|
+
'tag': [
|
2154
|
+
(r'\s+', Text),
|
2155
|
+
(r'(-?)(%\})', bygroups(Text, Comment.Preproc), '#pop'),
|
2156
|
+
include('varnames'),
|
2157
|
+
(r'.', Punctuation),
|
2158
|
+
],
|
2159
|
+
}
|
2160
|
+
|
2161
|
+
|
2162
|
+
class TwigHtmlLexer(DelegatingLexer):
|
2163
|
+
"""
|
2164
|
+
Subclass of the `TwigLexer` that highlights unlexed data with the
|
2165
|
+
`HtmlLexer`.
|
2166
|
+
|
2167
|
+
.. versionadded:: 2.0
|
2168
|
+
"""
|
2169
|
+
|
2170
|
+
name = "HTML+Twig"
|
2171
|
+
aliases = ["html+twig"]
|
2172
|
+
filenames = ['*.twig']
|
2173
|
+
mimetypes = ['text/html+twig']
|
2174
|
+
|
2175
|
+
def __init__(self, **options):
|
2176
|
+
super(TwigHtmlLexer, self).__init__(HtmlLexer, TwigLexer, **options)
|
2177
|
+
|
2178
|
+
|
2179
|
+
class Angular2Lexer(RegexLexer):
|
2180
|
+
"""
|
2181
|
+
Generic `angular2 <http://victorsavkin.com/post/119943127151/angular-2-template-syntax>` template lexer.
|
2182
|
+
|
2183
|
+
Highlights only the Angular template tags (stuff between `{{` and `}}` and
|
2184
|
+
special attributes: '(event)=', '[property]=', '[(twoWayBinding)]=').
|
2185
|
+
Everything else is left for a delegating lexer.
|
2186
|
+
|
2187
|
+
.. versionadded:: 2.1a0
|
2188
|
+
"""
|
2189
|
+
|
2190
|
+
name = "Angular2"
|
2191
|
+
aliases = ['ng2']
|
2192
|
+
|
2193
|
+
tokens = {
|
2194
|
+
'root': [
|
2195
|
+
(r'[^{([*#]+', Other),
|
2196
|
+
|
2197
|
+
# {{meal.name}}
|
2198
|
+
(r'(\{\{)(\s*)', bygroups(Comment.Preproc, Text), 'ngExpression'),
|
2199
|
+
|
2200
|
+
# (click)="deleteOrder()"; [value]="test"; [(twoWayTest)]="foo.bar"
|
2201
|
+
(r'([([]+)([\w:.-]+)([\])]+)(\s*)(=)(\s*)',
|
2202
|
+
bygroups(Punctuation, Name.Attribute, Punctuation, Text, Operator, Text), 'attr'),
|
2203
|
+
(r'([([]+)([\w:.-]+)([\])]+)(\s*)',
|
2204
|
+
bygroups(Punctuation, Name.Attribute, Punctuation, Text)),
|
2205
|
+
|
2206
|
+
# *ngIf="..."; #f="ngForm"
|
2207
|
+
(r'([*#])([\w:.-]+)(\s*)(=)(\s*)',
|
2208
|
+
bygroups(Punctuation, Name.Attribute, Punctuation, Operator), 'attr'),
|
2209
|
+
(r'([*#])([\w:.-]+)(\s*)',
|
2210
|
+
bygroups(Punctuation, Name.Attribute, Punctuation)),
|
2211
|
+
],
|
2212
|
+
|
2213
|
+
'ngExpression': [
|
2214
|
+
(r'\s+(\|\s+)?', Text),
|
2215
|
+
(r'\}\}', Comment.Preproc, '#pop'),
|
2216
|
+
|
2217
|
+
# Literals
|
2218
|
+
(r':?(true|false)', String.Boolean),
|
2219
|
+
(r':?"(\\\\|\\"|[^"])*"', String.Double),
|
2220
|
+
(r":?'(\\\\|\\'|[^'])*'", String.Single),
|
2221
|
+
(r"[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|"
|
2222
|
+
r"0[xX][0-9a-fA-F]+[Ll]?", Number),
|
2223
|
+
|
2224
|
+
# Variabletext
|
2225
|
+
(r'[a-zA-Z][\w-]*(\(.*\))?', Name.Variable),
|
2226
|
+
(r'\.[\w-]+(\(.*\))?', Name.Variable),
|
2227
|
+
|
2228
|
+
# inline If
|
2229
|
+
(r'(\?)(\s*)([^}\s]+)(\s*)(:)(\s*)([^}\s]+)(\s*)', bygroups(Operator, Text, String, Text, Operator, Text, String, Text)),
|
2230
|
+
],
|
2231
|
+
'attr': [
|
2232
|
+
('".*?"', String, '#pop'),
|
2233
|
+
("'.*?'", String, '#pop'),
|
2234
|
+
(r'[^\s>]+', String, '#pop'),
|
2235
|
+
],
|
2236
|
+
}
|
2237
|
+
|
2238
|
+
|
2239
|
+
class Angular2HtmlLexer(DelegatingLexer):
|
2240
|
+
"""
|
2241
|
+
Subclass of the `Angular2Lexer` that highlights unlexed data with the
|
2242
|
+
`HtmlLexer`.
|
2243
|
+
|
2244
|
+
.. versionadded:: 2.0
|
2245
|
+
"""
|
2246
|
+
|
2247
|
+
name = "HTML + Angular2"
|
2248
|
+
aliases = ["html+ng2"]
|
2249
|
+
filenames = ['*.ng2']
|
2250
|
+
|
2251
|
+
def __init__(self, **options):
|
2252
|
+
super(Angular2HtmlLexer, self).__init__(HtmlLexer, Angular2Lexer, **options)
|