pygments.rb-jruby 0.5.4
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/.gitignore +6 -0
- data/CHANGELOG.md +71 -0
- data/Gemfile +2 -0
- data/LICENSE +17 -0
- data/README.md +118 -0
- data/Rakefile +66 -0
- data/bench.rb +22 -0
- data/cache-lexers.rb +8 -0
- data/lexers +0 -0
- data/lib/pygments.rb +8 -0
- data/lib/pygments/lexer.rb +148 -0
- data/lib/pygments/mentos.py +351 -0
- data/lib/pygments/popen.rb +404 -0
- data/lib/pygments/version.rb +3 -0
- data/pygments.rb.gemspec +24 -0
- data/test/test_data.c +2581 -0
- data/test/test_data.py +514 -0
- data/test/test_data_generated +2582 -0
- data/test/test_pygments.rb +287 -0
- data/vendor/custom_lexers/github.py +565 -0
- data/vendor/pygments-main/AUTHORS +153 -0
- data/vendor/pygments-main/CHANGES +889 -0
- data/vendor/pygments-main/LICENSE +25 -0
- data/vendor/pygments-main/MANIFEST.in +6 -0
- data/vendor/pygments-main/Makefile +59 -0
- data/vendor/pygments-main/REVISION +1 -0
- data/vendor/pygments-main/TODO +15 -0
- data/vendor/pygments-main/docs/generate.py +472 -0
- data/vendor/pygments-main/docs/pygmentize.1 +94 -0
- data/vendor/pygments-main/docs/src/api.txt +270 -0
- data/vendor/pygments-main/docs/src/authors.txt +5 -0
- data/vendor/pygments-main/docs/src/changelog.txt +5 -0
- data/vendor/pygments-main/docs/src/cmdline.txt +147 -0
- data/vendor/pygments-main/docs/src/filterdevelopment.txt +70 -0
- data/vendor/pygments-main/docs/src/filters.txt +42 -0
- data/vendor/pygments-main/docs/src/formatterdevelopment.txt +169 -0
- data/vendor/pygments-main/docs/src/formatters.txt +48 -0
- data/vendor/pygments-main/docs/src/index.txt +69 -0
- data/vendor/pygments-main/docs/src/installation.txt +71 -0
- data/vendor/pygments-main/docs/src/integrate.txt +48 -0
- data/vendor/pygments-main/docs/src/java.txt +70 -0
- data/vendor/pygments-main/docs/src/lexerdevelopment.txt +603 -0
- data/vendor/pygments-main/docs/src/lexers.txt +67 -0
- data/vendor/pygments-main/docs/src/moinmoin.txt +39 -0
- data/vendor/pygments-main/docs/src/plugins.txt +93 -0
- data/vendor/pygments-main/docs/src/quickstart.txt +202 -0
- data/vendor/pygments-main/docs/src/rstdirective.txt +22 -0
- data/vendor/pygments-main/docs/src/styles.txt +143 -0
- data/vendor/pygments-main/docs/src/tokens.txt +349 -0
- data/vendor/pygments-main/docs/src/unicode.txt +49 -0
- data/vendor/pygments-main/external/autopygmentize +64 -0
- data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +144 -0
- data/vendor/pygments-main/external/markdown-processor.py +67 -0
- data/vendor/pygments-main/external/moin-parser.py +112 -0
- data/vendor/pygments-main/external/pygments.bashcomp +38 -0
- data/vendor/pygments-main/external/rst-directive-old.py +77 -0
- data/vendor/pygments-main/external/rst-directive.py +83 -0
- data/vendor/pygments-main/ez_setup.py +276 -0
- data/vendor/pygments-main/pygmentize +7 -0
- data/vendor/pygments-main/pygments/__init__.py +91 -0
- data/vendor/pygments-main/pygments/cmdline.py +441 -0
- data/vendor/pygments-main/pygments/console.py +74 -0
- data/vendor/pygments-main/pygments/filter.py +74 -0
- data/vendor/pygments-main/pygments/filters/__init__.py +356 -0
- data/vendor/pygments-main/pygments/formatter.py +95 -0
- data/vendor/pygments-main/pygments/formatters/__init__.py +68 -0
- data/vendor/pygments-main/pygments/formatters/_mapping.py +92 -0
- data/vendor/pygments-main/pygments/formatters/bbcode.py +109 -0
- data/vendor/pygments-main/pygments/formatters/html.py +821 -0
- data/vendor/pygments-main/pygments/formatters/img.py +553 -0
- data/vendor/pygments-main/pygments/formatters/latex.py +378 -0
- data/vendor/pygments-main/pygments/formatters/other.py +115 -0
- data/vendor/pygments-main/pygments/formatters/rtf.py +136 -0
- data/vendor/pygments-main/pygments/formatters/svg.py +154 -0
- data/vendor/pygments-main/pygments/formatters/terminal.py +112 -0
- data/vendor/pygments-main/pygments/formatters/terminal256.py +222 -0
- data/vendor/pygments-main/pygments/lexer.py +765 -0
- data/vendor/pygments-main/pygments/lexers/__init__.py +240 -0
- data/vendor/pygments-main/pygments/lexers/_asybuiltins.py +1645 -0
- data/vendor/pygments-main/pygments/lexers/_clbuiltins.py +232 -0
- data/vendor/pygments-main/pygments/lexers/_lassobuiltins.py +5172 -0
- data/vendor/pygments-main/pygments/lexers/_luabuiltins.py +249 -0
- data/vendor/pygments-main/pygments/lexers/_mapping.py +354 -0
- data/vendor/pygments-main/pygments/lexers/_openedgebuiltins.py +562 -0
- data/vendor/pygments-main/pygments/lexers/_phpbuiltins.py +3787 -0
- data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +233 -0
- data/vendor/pygments-main/pygments/lexers/_robotframeworklexer.py +557 -0
- data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +40 -0
- data/vendor/pygments-main/pygments/lexers/_sourcemodbuiltins.py +1072 -0
- data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +360 -0
- data/vendor/pygments-main/pygments/lexers/_vimbuiltins.py +13 -0
- data/vendor/pygments-main/pygments/lexers/agile.py +2290 -0
- data/vendor/pygments-main/pygments/lexers/asm.py +398 -0
- data/vendor/pygments-main/pygments/lexers/compiled.py +3723 -0
- data/vendor/pygments-main/pygments/lexers/dalvik.py +104 -0
- data/vendor/pygments-main/pygments/lexers/dotnet.py +671 -0
- data/vendor/pygments-main/pygments/lexers/foxpro.py +428 -0
- data/vendor/pygments-main/pygments/lexers/functional.py +2731 -0
- data/vendor/pygments-main/pygments/lexers/github.py +565 -0
- data/vendor/pygments-main/pygments/lexers/hdl.py +356 -0
- data/vendor/pygments-main/pygments/lexers/jvm.py +1112 -0
- data/vendor/pygments-main/pygments/lexers/math.py +1918 -0
- data/vendor/pygments-main/pygments/lexers/other.py +3778 -0
- data/vendor/pygments-main/pygments/lexers/parsers.py +778 -0
- data/vendor/pygments-main/pygments/lexers/shell.py +424 -0
- data/vendor/pygments-main/pygments/lexers/special.py +100 -0
- data/vendor/pygments-main/pygments/lexers/sql.py +559 -0
- data/vendor/pygments-main/pygments/lexers/templates.py +1742 -0
- data/vendor/pygments-main/pygments/lexers/text.py +1893 -0
- data/vendor/pygments-main/pygments/lexers/web.py +4045 -0
- data/vendor/pygments-main/pygments/modeline.py +40 -0
- data/vendor/pygments-main/pygments/plugin.py +74 -0
- data/vendor/pygments-main/pygments/scanner.py +104 -0
- data/vendor/pygments-main/pygments/style.py +117 -0
- data/vendor/pygments-main/pygments/styles/__init__.py +70 -0
- data/vendor/pygments-main/pygments/styles/autumn.py +65 -0
- data/vendor/pygments-main/pygments/styles/borland.py +51 -0
- data/vendor/pygments-main/pygments/styles/bw.py +49 -0
- data/vendor/pygments-main/pygments/styles/colorful.py +81 -0
- data/vendor/pygments-main/pygments/styles/default.py +73 -0
- data/vendor/pygments-main/pygments/styles/emacs.py +72 -0
- data/vendor/pygments-main/pygments/styles/friendly.py +72 -0
- data/vendor/pygments-main/pygments/styles/fruity.py +42 -0
- data/vendor/pygments-main/pygments/styles/manni.py +75 -0
- data/vendor/pygments-main/pygments/styles/monokai.py +106 -0
- data/vendor/pygments-main/pygments/styles/murphy.py +80 -0
- data/vendor/pygments-main/pygments/styles/native.py +65 -0
- data/vendor/pygments-main/pygments/styles/pastie.py +75 -0
- data/vendor/pygments-main/pygments/styles/perldoc.py +69 -0
- data/vendor/pygments-main/pygments/styles/rrt.py +33 -0
- data/vendor/pygments-main/pygments/styles/tango.py +141 -0
- data/vendor/pygments-main/pygments/styles/trac.py +63 -0
- data/vendor/pygments-main/pygments/styles/vim.py +63 -0
- data/vendor/pygments-main/pygments/styles/vs.py +38 -0
- data/vendor/pygments-main/pygments/token.py +195 -0
- data/vendor/pygments-main/pygments/unistring.py +140 -0
- data/vendor/pygments-main/pygments/util.py +277 -0
- data/vendor/pygments-main/scripts/check_sources.py +242 -0
- data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +32 -0
- data/vendor/pygments-main/scripts/epydoc.css +280 -0
- data/vendor/pygments-main/scripts/find_codetags.py +205 -0
- data/vendor/pygments-main/scripts/find_error.py +170 -0
- data/vendor/pygments-main/scripts/get_vimkw.py +43 -0
- data/vendor/pygments-main/scripts/pylintrc +301 -0
- data/vendor/pygments-main/scripts/reindent.py +291 -0
- data/vendor/pygments-main/scripts/vim2pygments.py +933 -0
- data/vendor/pygments-main/setup.cfg +7 -0
- data/vendor/pygments-main/setup.py +90 -0
- data/vendor/pygments-main/tests/dtds/HTML4-f.dtd +37 -0
- data/vendor/pygments-main/tests/dtds/HTML4-s.dtd +869 -0
- data/vendor/pygments-main/tests/dtds/HTML4.dcl +88 -0
- data/vendor/pygments-main/tests/dtds/HTML4.dtd +1092 -0
- data/vendor/pygments-main/tests/dtds/HTML4.soc +9 -0
- data/vendor/pygments-main/tests/dtds/HTMLlat1.ent +195 -0
- data/vendor/pygments-main/tests/dtds/HTMLspec.ent +77 -0
- data/vendor/pygments-main/tests/dtds/HTMLsym.ent +241 -0
- data/vendor/pygments-main/tests/examplefiles/ANTLRv3.g +608 -0
- data/vendor/pygments-main/tests/examplefiles/AcidStateAdvanced.hs +209 -0
- data/vendor/pygments-main/tests/examplefiles/AlternatingGroup.mu +102 -0
- data/vendor/pygments-main/tests/examplefiles/BOM.js +1 -0
- data/vendor/pygments-main/tests/examplefiles/CPDictionary.j +611 -0
- data/vendor/pygments-main/tests/examplefiles/Config.in.cache +1973 -0
- data/vendor/pygments-main/tests/examplefiles/Constants.mo +158 -0
- data/vendor/pygments-main/tests/examplefiles/DancingSudoku.lhs +411 -0
- data/vendor/pygments-main/tests/examplefiles/Deflate.fs +578 -0
- data/vendor/pygments-main/tests/examplefiles/Errors.scala +18 -0
- data/vendor/pygments-main/tests/examplefiles/File.hy +174 -0
- data/vendor/pygments-main/tests/examplefiles/Get-CommandDefinitionHtml.ps1 +66 -0
- data/vendor/pygments-main/tests/examplefiles/IPDispatchC.nc +104 -0
- data/vendor/pygments-main/tests/examplefiles/IPDispatchP.nc +671 -0
- data/vendor/pygments-main/tests/examplefiles/Intro.java +1660 -0
- data/vendor/pygments-main/tests/examplefiles/Makefile +1131 -0
- data/vendor/pygments-main/tests/examplefiles/Object.st +4394 -0
- data/vendor/pygments-main/tests/examplefiles/OrderedMap.hx +584 -0
- data/vendor/pygments-main/tests/examplefiles/RoleQ.pm6 +23 -0
- data/vendor/pygments-main/tests/examplefiles/SmallCheck.hs +378 -0
- data/vendor/pygments-main/tests/examplefiles/Sorting.mod +470 -0
- data/vendor/pygments-main/tests/examplefiles/Sudoku.lhs +382 -0
- data/vendor/pygments-main/tests/examplefiles/addressbook.proto +30 -0
- data/vendor/pygments-main/tests/examplefiles/antlr_throws +1 -0
- data/vendor/pygments-main/tests/examplefiles/apache2.conf +393 -0
- data/vendor/pygments-main/tests/examplefiles/as3_test.as +143 -0
- data/vendor/pygments-main/tests/examplefiles/as3_test2.as +46 -0
- data/vendor/pygments-main/tests/examplefiles/as3_test3.as +3 -0
- data/vendor/pygments-main/tests/examplefiles/aspx-cs_example +27 -0
- data/vendor/pygments-main/tests/examplefiles/autoit_submit.au3 +25 -0
- data/vendor/pygments-main/tests/examplefiles/badcase.java +2 -0
- data/vendor/pygments-main/tests/examplefiles/batchfile.bat +49 -0
- data/vendor/pygments-main/tests/examplefiles/bigtest.nsi +308 -0
- data/vendor/pygments-main/tests/examplefiles/boot-9.scm +1557 -0
- data/vendor/pygments-main/tests/examplefiles/ca65_example +284 -0
- data/vendor/pygments-main/tests/examplefiles/cbmbas_example +9 -0
- data/vendor/pygments-main/tests/examplefiles/cells.ps +515 -0
- data/vendor/pygments-main/tests/examplefiles/ceval.c +2604 -0
- data/vendor/pygments-main/tests/examplefiles/cheetah_example.html +13 -0
- data/vendor/pygments-main/tests/examplefiles/classes.dylan +125 -0
- data/vendor/pygments-main/tests/examplefiles/condensed_ruby.rb +10 -0
- data/vendor/pygments-main/tests/examplefiles/coq_RelationClasses +447 -0
- data/vendor/pygments-main/tests/examplefiles/database.pytb +20 -0
- data/vendor/pygments-main/tests/examplefiles/de.MoinMoin.po +2461 -0
- data/vendor/pygments-main/tests/examplefiles/demo.ahk +181 -0
- data/vendor/pygments-main/tests/examplefiles/demo.cfm +38 -0
- data/vendor/pygments-main/tests/examplefiles/django_sample.html+django +68 -0
- data/vendor/pygments-main/tests/examplefiles/dwarf.cw +17 -0
- data/vendor/pygments-main/tests/examplefiles/erl_session +10 -0
- data/vendor/pygments-main/tests/examplefiles/escape_semicolon.clj +1 -0
- data/vendor/pygments-main/tests/examplefiles/evil_regex.js +48 -0
- data/vendor/pygments-main/tests/examplefiles/example.Rd +78 -0
- data/vendor/pygments-main/tests/examplefiles/example.bug +54 -0
- data/vendor/pygments-main/tests/examplefiles/example.c +2080 -0
- data/vendor/pygments-main/tests/examplefiles/example.ceylon +52 -0
- data/vendor/pygments-main/tests/examplefiles/example.clay +33 -0
- data/vendor/pygments-main/tests/examplefiles/example.cls +15 -0
- data/vendor/pygments-main/tests/examplefiles/example.cob +3556 -0
- data/vendor/pygments-main/tests/examplefiles/example.cpp +2363 -0
- data/vendor/pygments-main/tests/examplefiles/example.gs +106 -0
- data/vendor/pygments-main/tests/examplefiles/example.gst +7 -0
- data/vendor/pygments-main/tests/examplefiles/example.hx +142 -0
- data/vendor/pygments-main/tests/examplefiles/example.jag +48 -0
- data/vendor/pygments-main/tests/examplefiles/example.kt +47 -0
- data/vendor/pygments-main/tests/examplefiles/example.lagda +19 -0
- data/vendor/pygments-main/tests/examplefiles/example.lua +250 -0
- data/vendor/pygments-main/tests/examplefiles/example.monkey +152 -0
- data/vendor/pygments-main/tests/examplefiles/example.moo +26 -0
- data/vendor/pygments-main/tests/examplefiles/example.moon +629 -0
- data/vendor/pygments-main/tests/examplefiles/example.msc +43 -0
- data/vendor/pygments-main/tests/examplefiles/example.nim +1010 -0
- data/vendor/pygments-main/tests/examplefiles/example.ns2 +69 -0
- data/vendor/pygments-main/tests/examplefiles/example.p +34 -0
- data/vendor/pygments-main/tests/examplefiles/example.pas +2708 -0
- data/vendor/pygments-main/tests/examplefiles/example.prg +161 -0
- data/vendor/pygments-main/tests/examplefiles/example.rb +1852 -0
- data/vendor/pygments-main/tests/examplefiles/example.reg +19 -0
- data/vendor/pygments-main/tests/examplefiles/example.rexx +50 -0
- data/vendor/pygments-main/tests/examplefiles/example.rhtml +561 -0
- data/vendor/pygments-main/tests/examplefiles/example.rkt +95 -0
- data/vendor/pygments-main/tests/examplefiles/example.rpf +4 -0
- data/vendor/pygments-main/tests/examplefiles/example.sh-session +19 -0
- data/vendor/pygments-main/tests/examplefiles/example.shell-session +45 -0
- data/vendor/pygments-main/tests/examplefiles/example.sml +156 -0
- data/vendor/pygments-main/tests/examplefiles/example.snobol +15 -0
- data/vendor/pygments-main/tests/examplefiles/example.stan +108 -0
- data/vendor/pygments-main/tests/examplefiles/example.tea +34 -0
- data/vendor/pygments-main/tests/examplefiles/example.ts +28 -0
- data/vendor/pygments-main/tests/examplefiles/example.u +548 -0
- data/vendor/pygments-main/tests/examplefiles/example.weechatlog +9 -0
- data/vendor/pygments-main/tests/examplefiles/example.xhtml +376 -0
- data/vendor/pygments-main/tests/examplefiles/example.xtend +34 -0
- data/vendor/pygments-main/tests/examplefiles/example.yaml +302 -0
- data/vendor/pygments-main/tests/examplefiles/example2.aspx +29 -0
- data/vendor/pygments-main/tests/examplefiles/example2.msc +79 -0
- data/vendor/pygments-main/tests/examplefiles/example_elixir.ex +363 -0
- data/vendor/pygments-main/tests/examplefiles/example_file.fy +128 -0
- data/vendor/pygments-main/tests/examplefiles/firefox.mak +586 -0
- data/vendor/pygments-main/tests/examplefiles/flipflop.sv +19 -0
- data/vendor/pygments-main/tests/examplefiles/foo.sce +6 -0
- data/vendor/pygments-main/tests/examplefiles/format.ml +1213 -0
- data/vendor/pygments-main/tests/examplefiles/fucked_up.rb +77 -0
- data/vendor/pygments-main/tests/examplefiles/function.mu +1 -0
- data/vendor/pygments-main/tests/examplefiles/functional.rst +1472 -0
- data/vendor/pygments-main/tests/examplefiles/garcia-wachs.kk +133 -0
- data/vendor/pygments-main/tests/examplefiles/genclass.clj +510 -0
- data/vendor/pygments-main/tests/examplefiles/genshi_example.xml+genshi +193 -0
- data/vendor/pygments-main/tests/examplefiles/genshitext_example.genshitext +33 -0
- data/vendor/pygments-main/tests/examplefiles/glsl.frag +7 -0
- data/vendor/pygments-main/tests/examplefiles/glsl.vert +13 -0
- data/vendor/pygments-main/tests/examplefiles/grammar-test.p6 +22 -0
- data/vendor/pygments-main/tests/examplefiles/hello.smali +40 -0
- data/vendor/pygments-main/tests/examplefiles/hello.sp +9 -0
- data/vendor/pygments-main/tests/examplefiles/html+php_faulty.php +1 -0
- data/vendor/pygments-main/tests/examplefiles/http_request_example +15 -0
- data/vendor/pygments-main/tests/examplefiles/http_response_example +29 -0
- data/vendor/pygments-main/tests/examplefiles/import.hs +4 -0
- data/vendor/pygments-main/tests/examplefiles/inet_pton6.dg +71 -0
- data/vendor/pygments-main/tests/examplefiles/intro.ik +24 -0
- data/vendor/pygments-main/tests/examplefiles/ints.php +10 -0
- data/vendor/pygments-main/tests/examplefiles/intsyn.fun +675 -0
- data/vendor/pygments-main/tests/examplefiles/intsyn.sig +286 -0
- data/vendor/pygments-main/tests/examplefiles/irb_heredoc +8 -0
- data/vendor/pygments-main/tests/examplefiles/irc.lsp +214 -0
- data/vendor/pygments-main/tests/examplefiles/java.properties +16 -0
- data/vendor/pygments-main/tests/examplefiles/jbst_example1.jbst +28 -0
- data/vendor/pygments-main/tests/examplefiles/jbst_example2.jbst +45 -0
- data/vendor/pygments-main/tests/examplefiles/jinjadesignerdoc.rst +713 -0
- data/vendor/pygments-main/tests/examplefiles/json.lasso +301 -0
- data/vendor/pygments-main/tests/examplefiles/json.lasso9 +213 -0
- data/vendor/pygments-main/tests/examplefiles/lighttpd_config.conf +13 -0
- data/vendor/pygments-main/tests/examplefiles/linecontinuation.py +47 -0
- data/vendor/pygments-main/tests/examplefiles/livescript-demo.ls +41 -0
- data/vendor/pygments-main/tests/examplefiles/logos_example.xm +28 -0
- data/vendor/pygments-main/tests/examplefiles/ltmain.sh +2849 -0
- data/vendor/pygments-main/tests/examplefiles/main.cmake +42 -0
- data/vendor/pygments-main/tests/examplefiles/markdown.lsp +679 -0
- data/vendor/pygments-main/tests/examplefiles/matlab_noreturn +3 -0
- data/vendor/pygments-main/tests/examplefiles/matlab_sample +30 -0
- data/vendor/pygments-main/tests/examplefiles/matlabsession_sample.txt +37 -0
- data/vendor/pygments-main/tests/examplefiles/metagrammar.treetop +455 -0
- data/vendor/pygments-main/tests/examplefiles/mg_sample.pro +73 -0
- data/vendor/pygments-main/tests/examplefiles/minehunt.qml +112 -0
- data/vendor/pygments-main/tests/examplefiles/minimal.ns2 +4 -0
- data/vendor/pygments-main/tests/examplefiles/moin_SyntaxReference.txt +340 -0
- data/vendor/pygments-main/tests/examplefiles/multiline_regexes.rb +38 -0
- data/vendor/pygments-main/tests/examplefiles/nanomsg.intr +95 -0
- data/vendor/pygments-main/tests/examplefiles/nasm_aoutso.asm +96 -0
- data/vendor/pygments-main/tests/examplefiles/nasm_objexe.asm +30 -0
- data/vendor/pygments-main/tests/examplefiles/nemerle_sample.n +87 -0
- data/vendor/pygments-main/tests/examplefiles/nginx_nginx.conf +118 -0
- data/vendor/pygments-main/tests/examplefiles/numbers.c +12 -0
- data/vendor/pygments-main/tests/examplefiles/objc_example.m +32 -0
- data/vendor/pygments-main/tests/examplefiles/objc_example2.m +24 -0
- data/vendor/pygments-main/tests/examplefiles/perl_misc +62 -0
- data/vendor/pygments-main/tests/examplefiles/perl_perl5db +998 -0
- data/vendor/pygments-main/tests/examplefiles/perl_regex-delims +120 -0
- data/vendor/pygments-main/tests/examplefiles/perlfunc.1 +856 -0
- data/vendor/pygments-main/tests/examplefiles/phpMyAdmin.spec +163 -0
- data/vendor/pygments-main/tests/examplefiles/phpcomplete.vim +567 -0
- data/vendor/pygments-main/tests/examplefiles/pleac.in.rb +1223 -0
- data/vendor/pygments-main/tests/examplefiles/postgresql_test.txt +47 -0
- data/vendor/pygments-main/tests/examplefiles/pppoe.applescript +10 -0
- data/vendor/pygments-main/tests/examplefiles/psql_session.txt +122 -0
- data/vendor/pygments-main/tests/examplefiles/py3_test.txt +2 -0
- data/vendor/pygments-main/tests/examplefiles/py3tb_test.py3tb +4 -0
- data/vendor/pygments-main/tests/examplefiles/pycon_test.pycon +14 -0
- data/vendor/pygments-main/tests/examplefiles/pytb_test2.pytb +2 -0
- data/vendor/pygments-main/tests/examplefiles/pytb_test3.pytb +4 -0
- data/vendor/pygments-main/tests/examplefiles/python25-bsd.mak +234 -0
- data/vendor/pygments-main/tests/examplefiles/qsort.prolog +13 -0
- data/vendor/pygments-main/tests/examplefiles/r-console-transcript.Rout +38 -0
- data/vendor/pygments-main/tests/examplefiles/ragel-cpp_rlscan +280 -0
- data/vendor/pygments-main/tests/examplefiles/ragel-cpp_snippet +2 -0
- data/vendor/pygments-main/tests/examplefiles/regex.js +22 -0
- data/vendor/pygments-main/tests/examplefiles/reversi.lsp +427 -0
- data/vendor/pygments-main/tests/examplefiles/robotframework.txt +39 -0
- data/vendor/pygments-main/tests/examplefiles/ruby_func_def.rb +11 -0
- data/vendor/pygments-main/tests/examplefiles/rust_example.rs +233 -0
- data/vendor/pygments-main/tests/examplefiles/scilab.sci +30 -0
- data/vendor/pygments-main/tests/examplefiles/session.dylan-console +9 -0
- data/vendor/pygments-main/tests/examplefiles/sibling.prolog +19 -0
- data/vendor/pygments-main/tests/examplefiles/simple.md +747 -0
- data/vendor/pygments-main/tests/examplefiles/smarty_example.html +209 -0
- data/vendor/pygments-main/tests/examplefiles/source.lgt +343 -0
- data/vendor/pygments-main/tests/examplefiles/sources.list +62 -0
- data/vendor/pygments-main/tests/examplefiles/sphere.pov +18 -0
- data/vendor/pygments-main/tests/examplefiles/sqlite3.sqlite3-console +27 -0
- data/vendor/pygments-main/tests/examplefiles/squid.conf +30 -0
- data/vendor/pygments-main/tests/examplefiles/string.jl +1031 -0
- data/vendor/pygments-main/tests/examplefiles/string_delimiters.d +21 -0
- data/vendor/pygments-main/tests/examplefiles/stripheredoc.sh +3 -0
- data/vendor/pygments-main/tests/examplefiles/swig_java.swg +1329 -0
- data/vendor/pygments-main/tests/examplefiles/swig_std_vector.i +225 -0
- data/vendor/pygments-main/tests/examplefiles/test.R +153 -0
- data/vendor/pygments-main/tests/examplefiles/test.adb +211 -0
- data/vendor/pygments-main/tests/examplefiles/test.agda +102 -0
- data/vendor/pygments-main/tests/examplefiles/test.asy +131 -0
- data/vendor/pygments-main/tests/examplefiles/test.awk +121 -0
- data/vendor/pygments-main/tests/examplefiles/test.bas +29 -0
- data/vendor/pygments-main/tests/examplefiles/test.bb +95 -0
- data/vendor/pygments-main/tests/examplefiles/test.bmx +145 -0
- data/vendor/pygments-main/tests/examplefiles/test.boo +39 -0
- data/vendor/pygments-main/tests/examplefiles/test.bro +250 -0
- data/vendor/pygments-main/tests/examplefiles/test.cs +374 -0
- data/vendor/pygments-main/tests/examplefiles/test.css +54 -0
- data/vendor/pygments-main/tests/examplefiles/test.cu +36 -0
- data/vendor/pygments-main/tests/examplefiles/test.d +135 -0
- data/vendor/pygments-main/tests/examplefiles/test.dart +23 -0
- data/vendor/pygments-main/tests/examplefiles/test.dtd +89 -0
- data/vendor/pygments-main/tests/examplefiles/test.ebnf +31 -0
- data/vendor/pygments-main/tests/examplefiles/test.ec +605 -0
- data/vendor/pygments-main/tests/examplefiles/test.ecl +58 -0
- data/vendor/pygments-main/tests/examplefiles/test.eh +315 -0
- data/vendor/pygments-main/tests/examplefiles/test.erl +169 -0
- data/vendor/pygments-main/tests/examplefiles/test.evoque +33 -0
- data/vendor/pygments-main/tests/examplefiles/test.fan +818 -0
- data/vendor/pygments-main/tests/examplefiles/test.flx +57 -0
- data/vendor/pygments-main/tests/examplefiles/test.gdc +13 -0
- data/vendor/pygments-main/tests/examplefiles/test.groovy +97 -0
- data/vendor/pygments-main/tests/examplefiles/test.html +339 -0
- data/vendor/pygments-main/tests/examplefiles/test.ini +10 -0
- data/vendor/pygments-main/tests/examplefiles/test.java +653 -0
- data/vendor/pygments-main/tests/examplefiles/test.jsp +24 -0
- data/vendor/pygments-main/tests/examplefiles/test.maql +45 -0
- data/vendor/pygments-main/tests/examplefiles/test.mod +374 -0
- data/vendor/pygments-main/tests/examplefiles/test.moo +51 -0
- data/vendor/pygments-main/tests/examplefiles/test.myt +166 -0
- data/vendor/pygments-main/tests/examplefiles/test.nim +93 -0
- data/vendor/pygments-main/tests/examplefiles/test.opa +10 -0
- data/vendor/pygments-main/tests/examplefiles/test.p6 +252 -0
- data/vendor/pygments-main/tests/examplefiles/test.pas +743 -0
- data/vendor/pygments-main/tests/examplefiles/test.php +505 -0
- data/vendor/pygments-main/tests/examplefiles/test.plot +333 -0
- data/vendor/pygments-main/tests/examplefiles/test.ps1 +108 -0
- data/vendor/pygments-main/tests/examplefiles/test.pypylog +1839 -0
- data/vendor/pygments-main/tests/examplefiles/test.r3 +94 -0
- data/vendor/pygments-main/tests/examplefiles/test.rb +177 -0
- data/vendor/pygments-main/tests/examplefiles/test.rhtml +43 -0
- data/vendor/pygments-main/tests/examplefiles/test.scaml +8 -0
- data/vendor/pygments-main/tests/examplefiles/test.ssp +12 -0
- data/vendor/pygments-main/tests/examplefiles/test.tcsh +830 -0
- data/vendor/pygments-main/tests/examplefiles/test.vb +407 -0
- data/vendor/pygments-main/tests/examplefiles/test.vhdl +161 -0
- data/vendor/pygments-main/tests/examplefiles/test.xqy +138 -0
- data/vendor/pygments-main/tests/examplefiles/test.xsl +23 -0
- data/vendor/pygments-main/tests/examplefiles/test2.pypylog +120 -0
- data/vendor/pygments-main/tests/examplefiles/truncated.pytb +15 -0
- data/vendor/pygments-main/tests/examplefiles/type.lisp +1218 -0
- data/vendor/pygments-main/tests/examplefiles/underscore.coffee +603 -0
- data/vendor/pygments-main/tests/examplefiles/unicode.applescript +5 -0
- data/vendor/pygments-main/tests/examplefiles/unicodedoc.py +11 -0
- data/vendor/pygments-main/tests/examplefiles/unix-io.lid +37 -0
- data/vendor/pygments-main/tests/examplefiles/webkit-transition.css +3 -0
- data/vendor/pygments-main/tests/examplefiles/while.pov +13 -0
- data/vendor/pygments-main/tests/examplefiles/wiki.factor +384 -0
- data/vendor/pygments-main/tests/examplefiles/xml_example +1897 -0
- data/vendor/pygments-main/tests/examplefiles/zmlrpc.f90 +798 -0
- data/vendor/pygments-main/tests/old_run.py +138 -0
- data/vendor/pygments-main/tests/run.py +49 -0
- data/vendor/pygments-main/tests/support.py +15 -0
- data/vendor/pygments-main/tests/support/tags +36 -0
- data/vendor/pygments-main/tests/test_basic_api.py +295 -0
- data/vendor/pygments-main/tests/test_clexer.py +31 -0
- data/vendor/pygments-main/tests/test_cmdline.py +105 -0
- data/vendor/pygments-main/tests/test_examplefiles.py +99 -0
- data/vendor/pygments-main/tests/test_html_formatter.py +178 -0
- data/vendor/pygments-main/tests/test_latex_formatter.py +55 -0
- data/vendor/pygments-main/tests/test_lexers_other.py +68 -0
- data/vendor/pygments-main/tests/test_perllexer.py +137 -0
- data/vendor/pygments-main/tests/test_regexlexer.py +47 -0
- data/vendor/pygments-main/tests/test_token.py +46 -0
- data/vendor/pygments-main/tests/test_using_api.py +40 -0
- data/vendor/pygments-main/tests/test_util.py +135 -0
- data/vendor/simplejson/.gitignore +10 -0
- data/vendor/simplejson/.travis.yml +5 -0
- data/vendor/simplejson/CHANGES.txt +291 -0
- data/vendor/simplejson/LICENSE.txt +19 -0
- data/vendor/simplejson/MANIFEST.in +5 -0
- data/vendor/simplejson/README.rst +19 -0
- data/vendor/simplejson/conf.py +179 -0
- data/vendor/simplejson/index.rst +628 -0
- data/vendor/simplejson/scripts/make_docs.py +18 -0
- data/vendor/simplejson/setup.py +104 -0
- data/vendor/simplejson/simplejson/__init__.py +510 -0
- data/vendor/simplejson/simplejson/_speedups.c +2745 -0
- data/vendor/simplejson/simplejson/decoder.py +425 -0
- data/vendor/simplejson/simplejson/encoder.py +567 -0
- data/vendor/simplejson/simplejson/ordered_dict.py +119 -0
- data/vendor/simplejson/simplejson/scanner.py +77 -0
- data/vendor/simplejson/simplejson/tests/__init__.py +67 -0
- data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +55 -0
- data/vendor/simplejson/simplejson/tests/test_check_circular.py +30 -0
- data/vendor/simplejson/simplejson/tests/test_decimal.py +66 -0
- data/vendor/simplejson/simplejson/tests/test_decode.py +83 -0
- data/vendor/simplejson/simplejson/tests/test_default.py +9 -0
- data/vendor/simplejson/simplejson/tests/test_dump.py +67 -0
- data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +46 -0
- data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +32 -0
- data/vendor/simplejson/simplejson/tests/test_errors.py +34 -0
- data/vendor/simplejson/simplejson/tests/test_fail.py +91 -0
- data/vendor/simplejson/simplejson/tests/test_float.py +19 -0
- data/vendor/simplejson/simplejson/tests/test_indent.py +86 -0
- data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +20 -0
- data/vendor/simplejson/simplejson/tests/test_namedtuple.py +121 -0
- data/vendor/simplejson/simplejson/tests/test_pass1.py +76 -0
- data/vendor/simplejson/simplejson/tests/test_pass2.py +14 -0
- data/vendor/simplejson/simplejson/tests/test_pass3.py +20 -0
- data/vendor/simplejson/simplejson/tests/test_recursion.py +67 -0
- data/vendor/simplejson/simplejson/tests/test_scanstring.py +117 -0
- data/vendor/simplejson/simplejson/tests/test_separators.py +42 -0
- data/vendor/simplejson/simplejson/tests/test_speedups.py +20 -0
- data/vendor/simplejson/simplejson/tests/test_tuple.py +49 -0
- data/vendor/simplejson/simplejson/tests/test_unicode.py +109 -0
- data/vendor/simplejson/simplejson/tool.py +39 -0
- metadata +557 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 497802c2d36d83721eff4650c2c487c68a2409c6
|
4
|
+
data.tar.gz: be724cc3acd969987cd64fe20c69e782fdad7424
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f0ae7a8a302689694612f04bb3dc2f5179fe9c556649779048f2fa4e43dffc1ea11e6fcbdd324bdbafbbe2eaf76b53cd4f8047221af3ec7b5b2b347710fd40fe
|
7
|
+
data.tar.gz: 95bd0b88d624742f25aa8b5e411c2864fbedc5089cf8ef0f617bb2fa4ffc7ccda249a996f7382a2500b4c0f1eb0dd5bbe64ae1c709059b7b13176b4f87fde879
|
data/.gitignore
ADDED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
changelog
|
2
|
+
===========
|
3
|
+
|
4
|
+
Version 0.5.4 (Nov 3, 2013)
|
5
|
+
-----------------------------
|
6
|
+
|
7
|
+
* Update lexers file
|
8
|
+
|
9
|
+
Version 0.5.3 (Sep 17, 2013)
|
10
|
+
-----------------------------
|
11
|
+
|
12
|
+
* Fixes for Slash lexer
|
13
|
+
* Improve highlighting for Slash lexer
|
14
|
+
* Upgrade to latest pygments (1.7, changes summary follows. See pygments changelog for details)
|
15
|
+
* Add Clay lexer
|
16
|
+
* Add Perl 6 lexer
|
17
|
+
* Add Swig lexer
|
18
|
+
* Add nesC lexer
|
19
|
+
* Add BlitzBasic lexer
|
20
|
+
* Add EBNF lexer
|
21
|
+
* Add Igor Pro lexer
|
22
|
+
* Add Rexx lexer
|
23
|
+
* Add Agda lexer
|
24
|
+
* Recognize vim modelines
|
25
|
+
* Improve Python 3 lexer
|
26
|
+
* Improve Opa lexer
|
27
|
+
* Improve Julia lexer
|
28
|
+
* Improve Lasso lexer
|
29
|
+
* Improve Objective C/C++ lexer
|
30
|
+
* Improve Ruby lexer
|
31
|
+
* Improve Stan lexer
|
32
|
+
* Improve JavaScript lexer
|
33
|
+
* Improve HTTP lexer
|
34
|
+
* Improve Koka lexer
|
35
|
+
* Improve Haxe lexer
|
36
|
+
* Improve Prolog lexer
|
37
|
+
* Improve F# lexer
|
38
|
+
|
39
|
+
Version 0.5.2 (July 17, 2013)
|
40
|
+
-----------------------------
|
41
|
+
|
42
|
+
* Add Slash lexer
|
43
|
+
|
44
|
+
Version 0.5.1 (June 25, 2013)
|
45
|
+
-----------------------------
|
46
|
+
|
47
|
+
* Ensure compatability across distros by detecting if `python2` is available
|
48
|
+
|
49
|
+
Version 0.5.0 (Apr 13, 2013)
|
50
|
+
-----------------------------
|
51
|
+
|
52
|
+
* Use #rstrip to fix table mode bug
|
53
|
+
|
54
|
+
Version 0.4.2 (Feb 25, 2013)
|
55
|
+
-----------------------------
|
56
|
+
|
57
|
+
* Add new lexers, including custom lexers
|
58
|
+
|
59
|
+
Version 0.3.7 (Jan 2, 2013)
|
60
|
+
-----------------------------
|
61
|
+
|
62
|
+
* Fixed missing custom lexers
|
63
|
+
* Added syntax highlighting for Hxml
|
64
|
+
|
65
|
+
Version 0.3.4 (Dec 28, 2012)
|
66
|
+
-----------------------------
|
67
|
+
|
68
|
+
* Add support for Windows
|
69
|
+
* Add MIT license
|
70
|
+
|
71
|
+
|
data/Gemfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
Copyright (c) Ted Nyman and Aman Gupta, 2012-2013
|
3
|
+
|
4
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
|
5
|
+
associated documentation files (the "Software"), to deal in the Software without restriction,
|
6
|
+
including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
7
|
+
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
|
8
|
+
subject to the following conditions:
|
9
|
+
|
10
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial
|
11
|
+
portions of the Software.
|
12
|
+
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
14
|
+
LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
15
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
16
|
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
17
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,118 @@
|
|
1
|
+
# pygments.rb
|
2
|
+
|
3
|
+
A Ruby wrapper for the Python [pygments syntax highlighter](http://pygments.org/).
|
4
|
+
|
5
|
+
pygments.rb works by talking over a simple pipe to a long-lived
|
6
|
+
Python child process. This library replaces [github/albino](https://github.com/github/albino),
|
7
|
+
as well as a version of pygments.rb that used an embedded Python
|
8
|
+
interpreter.
|
9
|
+
|
10
|
+
Each Ruby process that runs has its own 'personal Python';
|
11
|
+
for example, 4 Unicorn workers will have one Python process each.
|
12
|
+
If a Python process dies, a new one will be spawned on the next
|
13
|
+
pygments.rb request.
|
14
|
+
|
15
|
+
## system requirements
|
16
|
+
|
17
|
+
- Python 2.5, Python 2.6, or Python 2.7. You can always use Python 2.x from a `virtualenv` if
|
18
|
+
your default Python install is 3.x.
|
19
|
+
|
20
|
+
## usage
|
21
|
+
|
22
|
+
``` ruby
|
23
|
+
require 'pygments'
|
24
|
+
```
|
25
|
+
|
26
|
+
``` ruby
|
27
|
+
Pygments.highlight(File.read(__FILE__), :lexer => 'ruby')
|
28
|
+
```
|
29
|
+
|
30
|
+
Encoding and other lexer/formatter options can be passed in via an
|
31
|
+
options hash:
|
32
|
+
|
33
|
+
``` ruby
|
34
|
+
Pygments.highlight('code', :options => {:encoding => 'utf-8'})
|
35
|
+
```
|
36
|
+
|
37
|
+
pygments.rb defaults to using an HTML formatter.
|
38
|
+
To use a formatter other than `html`, specify it explicitly
|
39
|
+
like so:
|
40
|
+
|
41
|
+
``` ruby
|
42
|
+
Pygments.highlight('code', :formatter => 'bbcode')
|
43
|
+
Pygments.highlight('code', :formatter => 'terminal')
|
44
|
+
```
|
45
|
+
|
46
|
+
To generate CSS for HTML formatted code, use the `#css` method:
|
47
|
+
|
48
|
+
``` ruby
|
49
|
+
Pygments.css
|
50
|
+
Pygments.css('.highlight')
|
51
|
+
```
|
52
|
+
|
53
|
+
To use a specific pygments style, pass the `:style` option to the `#css` method:
|
54
|
+
|
55
|
+
``` ruby
|
56
|
+
Pygments.css(:style => "monokai")
|
57
|
+
```
|
58
|
+
|
59
|
+
Other Pygments high-level API methods are also available.
|
60
|
+
These methods return arrays detailing all the available lexers, formatters,
|
61
|
+
and styles.
|
62
|
+
|
63
|
+
``` ruby
|
64
|
+
Pygments.lexers
|
65
|
+
Pygments.formatters
|
66
|
+
Pygments.styles
|
67
|
+
```
|
68
|
+
|
69
|
+
To use a custom pygments installation, specify the path to
|
70
|
+
`Pygments#start`:
|
71
|
+
|
72
|
+
``` ruby
|
73
|
+
Pygments.start("/path/to/pygments")
|
74
|
+
```
|
75
|
+
|
76
|
+
If you'd like logging, set the environmental variable `MENTOS_LOG` to a file path for your logfile.
|
77
|
+
|
78
|
+
## benchmarks
|
79
|
+
|
80
|
+
|
81
|
+
$ ruby bench.rb 50
|
82
|
+
Benchmarking....
|
83
|
+
Size: 698 bytes
|
84
|
+
Iterations: 50
|
85
|
+
user system total real
|
86
|
+
pygments popen 0.010000 0.010000 0.020000 ( 0.460370)
|
87
|
+
pygments popen (process already started) 0.010000 0.000000 0.010000 ( 0.272975)
|
88
|
+
pygments popen (process already started 2) 0.000000 0.000000 0.000000 ( 0.273589)
|
89
|
+
|
90
|
+
$ ruby bench.rb 10
|
91
|
+
Benchmarking....
|
92
|
+
Size: 15523 bytes
|
93
|
+
Iterations: 10
|
94
|
+
user system total real
|
95
|
+
pygments popen 0.000000 0.000000 0.000000 ( 0.819419)
|
96
|
+
pygments popen (process already started) 0.010000 0.000000 0.010000 ( 0.676515)
|
97
|
+
pygments popen (process already started 2) 0.000000 0.010000 0.010000 ( 0.674189)
|
98
|
+
|
99
|
+
## license
|
100
|
+
|
101
|
+
The MIT License (MIT)
|
102
|
+
|
103
|
+
Copyright (c) Ted Nyman and Aman Gupta, 2012-2013
|
104
|
+
|
105
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
|
106
|
+
associated documentation files (the "Software"), to deal in the Software without restriction,
|
107
|
+
including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
108
|
+
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
|
109
|
+
subject to the following conditions:
|
110
|
+
|
111
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial
|
112
|
+
portions of the Software.
|
113
|
+
|
114
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
115
|
+
LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
116
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
117
|
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
118
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/Rakefile
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
#!/usr/bin/env rake
|
2
|
+
require "bundler/gem_tasks"
|
3
|
+
|
4
|
+
task :default => :test
|
5
|
+
|
6
|
+
# ==========================================================
|
7
|
+
# Packaging
|
8
|
+
# ==========================================================
|
9
|
+
|
10
|
+
GEMSPEC = eval(File.read('pygments.rb.gemspec'))
|
11
|
+
|
12
|
+
require 'rubygems/package_task'
|
13
|
+
|
14
|
+
# ==========================================================
|
15
|
+
# Testing
|
16
|
+
# ==========================================================
|
17
|
+
|
18
|
+
require 'rake/testtask'
|
19
|
+
Rake::TestTask.new 'test' do |t|
|
20
|
+
t.test_files = FileList['test/test_*.rb']
|
21
|
+
t.ruby_opts = ['-rubygems']
|
22
|
+
end
|
23
|
+
|
24
|
+
# ==========================================================
|
25
|
+
# Benchmarking
|
26
|
+
# ==========================================================
|
27
|
+
|
28
|
+
task :bench do
|
29
|
+
sh "ruby bench.rb"
|
30
|
+
end
|
31
|
+
|
32
|
+
# ==========================================================
|
33
|
+
# Cache lexers
|
34
|
+
# ==========================================================
|
35
|
+
|
36
|
+
# Write all the lexers to a file for easy lookup
|
37
|
+
task :lexers do
|
38
|
+
sh "ruby cache-lexers.rb"
|
39
|
+
end
|
40
|
+
|
41
|
+
# ==========================================================
|
42
|
+
# Vendor
|
43
|
+
# ==========================================================
|
44
|
+
|
45
|
+
namespace :vendor do
|
46
|
+
file 'vendor/pygments-main' do |f|
|
47
|
+
sh "hg clone https://bitbucket.org/birkenfeld/pygments-main #{f.name}"
|
48
|
+
sh "hg --repository #{f.name} identify --id > #{f.name}/REVISION"
|
49
|
+
rm_rf Dir["#{f.name}/.hg*"]
|
50
|
+
end
|
51
|
+
|
52
|
+
task :clobber do
|
53
|
+
rm_rf 'vendor/pygments-main'
|
54
|
+
end
|
55
|
+
|
56
|
+
# Load all the custom lexers in the `vendor/custom_lexers` folder
|
57
|
+
# and stick them in our custom Pygments vendor
|
58
|
+
task :load_lexers do
|
59
|
+
LEXERS_DIR = 'vendor/pygments-main/pygments/lexers'
|
60
|
+
lexers = FileList['vendor/custom_lexers/*.py']
|
61
|
+
lexers.each { |l| FileUtils.copy l, LEXERS_DIR }
|
62
|
+
FileUtils.cd(LEXERS_DIR) { sh "python _mapping.py" }
|
63
|
+
end
|
64
|
+
|
65
|
+
task :update => [:clobber, 'vendor/pygments-main', :load_lexers]
|
66
|
+
end
|
data/bench.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '/lib/pygments.rb')
|
2
|
+
require 'benchmark'
|
3
|
+
|
4
|
+
include Benchmark
|
5
|
+
# number of iterations
|
6
|
+
num = ARGV[0] ? ARGV[0].to_i : 10
|
7
|
+
|
8
|
+
# we can also repeat the code itself
|
9
|
+
repeats = ARGV[1] ? ARGV[1].to_i : 1
|
10
|
+
|
11
|
+
code = File.open('test/test_data.py').read.to_s * repeats
|
12
|
+
|
13
|
+
puts "Benchmarking....\n"
|
14
|
+
puts "Size: " + code.bytesize.to_s + " bytes\n"
|
15
|
+
puts "Iterations: " + num.to_s + "\n"
|
16
|
+
|
17
|
+
Benchmark.bm(40) do |x|
|
18
|
+
x.report("pygments popen ") { for i in 1..num; Pygments.highlight(code, :lexer => 'python'); end }
|
19
|
+
x.report("pygments popen (process already started) ") { for i in 1..num; Pygments.highlight(code, :lexer => 'python'); end }
|
20
|
+
x.report("pygments popen (process already started 2) ") { for i in 1..num; Pygments.highlight(code, :lexer => 'python'); end }
|
21
|
+
end
|
22
|
+
|
data/cache-lexers.rb
ADDED
data/lexers
ADDED
Binary file
|
data/lib/pygments.rb
ADDED
@@ -0,0 +1,148 @@
|
|
1
|
+
module Pygments
|
2
|
+
class Lexer < Struct.new(:name, :aliases, :filenames, :mimetypes)
|
3
|
+
@lexers = []
|
4
|
+
@index = {}
|
5
|
+
@name_index = {}
|
6
|
+
@alias_index = {}
|
7
|
+
@extname_index = {}
|
8
|
+
@mimetypes_index = {}
|
9
|
+
|
10
|
+
# Internal: Create a new Lexer object
|
11
|
+
#
|
12
|
+
# hash - A hash of attributes
|
13
|
+
#
|
14
|
+
# Returns a Lexer object
|
15
|
+
def self.create(hash)
|
16
|
+
lexer = new(hash[:name], hash[:aliases], hash[:filenames], hash[:mimetypes])
|
17
|
+
|
18
|
+
@lexers << lexer
|
19
|
+
|
20
|
+
@index[lexer.name.downcase] = @name_index[lexer.name] = lexer
|
21
|
+
|
22
|
+
lexer.aliases.each do |name|
|
23
|
+
@alias_index[name] = lexer
|
24
|
+
@index[name.downcase] ||= lexer
|
25
|
+
end
|
26
|
+
|
27
|
+
lexer.filenames.each do |filename|
|
28
|
+
extnames = []
|
29
|
+
|
30
|
+
extname = File.extname(filename)
|
31
|
+
if m = extname.match(/\[(.+)\]/)
|
32
|
+
m[1].scan(/./).each do |s|
|
33
|
+
extnames << extname.sub(m[0], s)
|
34
|
+
end
|
35
|
+
elsif extname != ""
|
36
|
+
extnames << extname
|
37
|
+
end
|
38
|
+
|
39
|
+
extnames.each do |extname|
|
40
|
+
@extname_index[extname] = lexer
|
41
|
+
@index[extname.downcase.sub(/^\./, "")] ||= lexer
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
lexer.mimetypes.each do |type|
|
46
|
+
@mimetypes_index[type] = lexer
|
47
|
+
end
|
48
|
+
|
49
|
+
lexer
|
50
|
+
end
|
51
|
+
|
52
|
+
# Public: Get all Lexers
|
53
|
+
#
|
54
|
+
# Returns an Array of Lexers
|
55
|
+
def self.all
|
56
|
+
@lexers
|
57
|
+
end
|
58
|
+
|
59
|
+
# Public: Look up Lexer by name or alias.
|
60
|
+
#
|
61
|
+
# name - A String name or alias
|
62
|
+
#
|
63
|
+
# Lexer.find('Ruby')
|
64
|
+
# => #<Lexer name="Ruby">
|
65
|
+
#
|
66
|
+
# Returns the Lexer or nil if none was found.
|
67
|
+
def self.find(name)
|
68
|
+
@index[name.to_s.downcase]
|
69
|
+
end
|
70
|
+
|
71
|
+
# Public: Alias for find.
|
72
|
+
def self.[](name)
|
73
|
+
find(name)
|
74
|
+
end
|
75
|
+
|
76
|
+
# Public: Look up Lexer by its proper name.
|
77
|
+
#
|
78
|
+
# name - The String name of the Lexer
|
79
|
+
#
|
80
|
+
# Examples
|
81
|
+
#
|
82
|
+
# Lexer.find_by_name('Ruby')
|
83
|
+
# # => #<Lexer name="Ruby">
|
84
|
+
#
|
85
|
+
# Returns the Lexer or nil if none was found.
|
86
|
+
def self.find_by_name(name)
|
87
|
+
@name_index[name]
|
88
|
+
end
|
89
|
+
|
90
|
+
# Public: Look up Lexer by one of its aliases.
|
91
|
+
#
|
92
|
+
# name - A String alias of the Lexer
|
93
|
+
#
|
94
|
+
# Examples
|
95
|
+
#
|
96
|
+
# Lexer.find_by_alias('rb')
|
97
|
+
# # => #<Lexer name="Ruby">
|
98
|
+
#
|
99
|
+
# Returns the Lexer or nil if none was found.
|
100
|
+
def self.find_by_alias(name)
|
101
|
+
@alias_index[name]
|
102
|
+
end
|
103
|
+
|
104
|
+
# Public: Look up Lexer by one of it's file extensions.
|
105
|
+
#
|
106
|
+
# extname - A String file extension.
|
107
|
+
#
|
108
|
+
# Examples
|
109
|
+
#
|
110
|
+
# Lexer.find_by_extname('.rb')
|
111
|
+
# # => #<Lexer name="Ruby">
|
112
|
+
#
|
113
|
+
# Returns the Lexer or nil if none was found.
|
114
|
+
def self.find_by_extname(extname)
|
115
|
+
@extname_index[extname]
|
116
|
+
end
|
117
|
+
|
118
|
+
# Public: Look up Lexer by one of it's mime types.
|
119
|
+
#
|
120
|
+
# type - A mime type String.
|
121
|
+
#
|
122
|
+
# Examples
|
123
|
+
#
|
124
|
+
# Lexer.find_by_mimetype('application/x-ruby')
|
125
|
+
# # => #<Lexer name="Ruby">
|
126
|
+
#
|
127
|
+
# Returns the Lexer or nil if none was found.
|
128
|
+
def self.find_by_mimetype(type)
|
129
|
+
@mimetypes_index[type]
|
130
|
+
end
|
131
|
+
|
132
|
+
# Public: Highlight syntax of text
|
133
|
+
#
|
134
|
+
# text - String of code to be highlighted
|
135
|
+
# options - Hash of options (defaults to {})
|
136
|
+
#
|
137
|
+
# Returns html String
|
138
|
+
def highlight(text, options = {})
|
139
|
+
options[:lexer] = aliases.first
|
140
|
+
Pygments.highlight(text, options)
|
141
|
+
end
|
142
|
+
|
143
|
+
alias_method :==, :equal?
|
144
|
+
alias_method :eql?, :equal?
|
145
|
+
end
|
146
|
+
|
147
|
+
lexers.values.each { |h| Lexer.create(h) }
|
148
|
+
end
|