pygments.rb 0.5.4 → 0.6.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 +40 -0
- data/README.md +3 -0
- data/lexers +0 -0
- data/lib/pygments/popen.rb +3 -2
- data/lib/pygments/version.rb +1 -1
- data/pygments.rb.gemspec +2 -1
- data/vendor/pygments-main/AUTHORS +20 -1
- data/vendor/pygments-main/CHANGES +55 -3
- data/vendor/pygments-main/LICENSE +1 -1
- data/vendor/pygments-main/MANIFEST.in +1 -1
- data/vendor/pygments-main/Makefile +5 -8
- data/vendor/pygments-main/REVISION +1 -1
- data/vendor/pygments-main/doc/Makefile +153 -0
- data/vendor/pygments-main/doc/_static/favicon.ico +0 -0
- data/vendor/pygments-main/doc/_static/logo_new.png +0 -0
- data/vendor/pygments-main/doc/_static/logo_only.png +0 -0
- data/vendor/pygments-main/doc/_templates/docssidebar.html +3 -0
- data/vendor/pygments-main/doc/_templates/indexsidebar.html +25 -0
- data/vendor/pygments-main/doc/_themes/pygments14/layout.html +98 -0
- data/vendor/pygments-main/doc/_themes/pygments14/static/bodybg.png +0 -0
- data/vendor/pygments-main/doc/_themes/pygments14/static/docbg.png +0 -0
- data/vendor/pygments-main/doc/_themes/pygments14/static/listitem.png +0 -0
- data/vendor/pygments-main/doc/_themes/pygments14/static/logo.png +0 -0
- data/vendor/pygments-main/doc/_themes/pygments14/static/pocoo.png +0 -0
- data/vendor/pygments-main/doc/_themes/pygments14/static/pygments14.css_t +401 -0
- data/vendor/pygments-main/doc/_themes/pygments14/theme.conf +15 -0
- data/vendor/pygments-main/doc/conf.py +249 -0
- data/vendor/pygments-main/doc/docs/api.rst +316 -0
- data/vendor/pygments-main/doc/docs/authors.rst +4 -0
- data/vendor/pygments-main/doc/docs/changelog.rst +1 -0
- data/vendor/pygments-main/{docs/src/cmdline.txt → doc/docs/cmdline.rst} +9 -11
- data/vendor/pygments-main/{docs/src/filterdevelopment.txt → doc/docs/filterdevelopment.rst} +1 -1
- data/vendor/pygments-main/{docs/src/filters.txt → doc/docs/filters.rst} +4 -5
- data/vendor/pygments-main/{docs/src/formatterdevelopment.txt → doc/docs/formatterdevelopment.rst} +1 -1
- data/vendor/pygments-main/{docs/src/formatters.txt → doc/docs/formatters.rst} +6 -6
- data/vendor/pygments-main/doc/docs/index.rst +66 -0
- data/vendor/pygments-main/{docs/src/integrate.txt → doc/docs/integrate.rst} +3 -7
- data/vendor/pygments-main/{docs/src/java.txt → doc/docs/java.rst} +0 -0
- data/vendor/pygments-main/{docs/src/lexerdevelopment.txt → doc/docs/lexerdevelopment.rst} +13 -14
- data/vendor/pygments-main/{docs/src/lexers.txt → doc/docs/lexers.rst} +7 -5
- data/vendor/pygments-main/{docs/src/moinmoin.txt → doc/docs/moinmoin.rst} +0 -0
- data/vendor/pygments-main/{docs/src/plugins.txt → doc/docs/plugins.rst} +0 -0
- data/vendor/pygments-main/{docs/src/quickstart.txt → doc/docs/quickstart.rst} +22 -19
- data/vendor/pygments-main/{docs/src/rstdirective.txt → doc/docs/rstdirective.rst} +0 -0
- data/vendor/pygments-main/{docs/src/styles.txt → doc/docs/styles.rst} +2 -2
- data/vendor/pygments-main/{docs/src/tokens.txt → doc/docs/tokens.rst} +10 -7
- data/vendor/pygments-main/{docs/src/unicode.txt → doc/docs/unicode.rst} +8 -7
- data/vendor/pygments-main/doc/download.rst +41 -0
- data/vendor/pygments-main/doc/faq.rst +143 -0
- data/vendor/pygments-main/doc/index.rst +53 -0
- data/vendor/pygments-main/doc/languages.rst +151 -0
- data/vendor/pygments-main/doc/make.bat +190 -0
- data/vendor/pygments-main/{docs → doc}/pygmentize.1 +0 -0
- data/vendor/pygments-main/external/autopygmentize +65 -48
- data/vendor/pygments-main/external/markdown-processor.py +15 -15
- data/vendor/pygments-main/external/moin-parser.py +1 -1
- data/vendor/pygments-main/external/rst-directive.py +2 -3
- data/vendor/pygments-main/ez_setup.py +340 -234
- data/vendor/pygments-main/pygments/__init__.py +4 -4
- data/vendor/pygments-main/pygments/cmdline.py +81 -68
- data/vendor/pygments-main/pygments/console.py +1 -1
- data/vendor/pygments-main/pygments/filter.py +1 -1
- data/vendor/pygments-main/pygments/filters/__init__.py +11 -9
- data/vendor/pygments-main/pygments/formatter.py +3 -3
- data/vendor/pygments-main/pygments/formatters/__init__.py +5 -3
- data/vendor/pygments-main/pygments/formatters/_mapping.py +16 -5
- data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
- data/vendor/pygments-main/pygments/formatters/html.py +44 -26
- data/vendor/pygments-main/pygments/formatters/img.py +21 -14
- data/vendor/pygments-main/pygments/formatters/latex.py +104 -12
- data/vendor/pygments-main/pygments/formatters/other.py +53 -6
- data/vendor/pygments-main/pygments/formatters/rtf.py +30 -16
- data/vendor/pygments-main/pygments/formatters/svg.py +2 -2
- data/vendor/pygments-main/pygments/formatters/terminal.py +41 -1
- data/vendor/pygments-main/pygments/formatters/terminal256.py +2 -2
- data/vendor/pygments-main/pygments/lexer.py +59 -39
- data/vendor/pygments-main/pygments/lexers/__init__.py +38 -15
- data/vendor/pygments-main/pygments/lexers/_asybuiltins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_clbuiltins.py +15 -15
- data/vendor/pygments-main/pygments/lexers/_cocoabuiltins.py +73 -0
- data/vendor/pygments-main/pygments/lexers/_lassobuiltins.py +11 -1
- data/vendor/pygments-main/pygments/lexers/_luabuiltins.py +14 -8
- data/vendor/pygments-main/pygments/lexers/_mapping.py +81 -30
- data/vendor/pygments-main/pygments/lexers/_openedgebuiltins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_phpbuiltins.py +1067 -95
- data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +7 -7
- data/vendor/pygments-main/pygments/lexers/_robotframeworklexer.py +5 -4
- data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_sourcemodbuiltins.py +12 -7
- data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +112 -18
- data/vendor/pygments-main/pygments/lexers/_vimbuiltins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/agile.py +644 -382
- data/vendor/pygments-main/pygments/lexers/asm.py +66 -29
- data/vendor/pygments-main/pygments/lexers/compiled.py +1643 -174
- data/vendor/pygments-main/pygments/lexers/dalvik.py +27 -6
- data/vendor/pygments-main/pygments/lexers/dotnet.py +45 -33
- data/vendor/pygments-main/pygments/lexers/foxpro.py +3 -3
- data/vendor/pygments-main/pygments/lexers/functional.py +1510 -570
- data/vendor/pygments-main/pygments/lexers/graph.py +81 -0
- data/vendor/pygments-main/pygments/lexers/hdl.py +29 -30
- data/vendor/pygments-main/pygments/lexers/inferno.py +96 -0
- data/vendor/pygments-main/pygments/lexers/jvm.py +622 -207
- data/vendor/pygments-main/pygments/lexers/math.py +438 -70
- data/vendor/pygments-main/pygments/lexers/other.py +885 -171
- data/vendor/pygments-main/pygments/lexers/parsers.py +24 -24
- data/vendor/pygments-main/pygments/lexers/qbasic.py +157 -0
- data/vendor/pygments-main/pygments/lexers/rdf.py +99 -0
- data/vendor/pygments-main/pygments/lexers/shell.py +28 -25
- data/vendor/pygments-main/pygments/lexers/special.py +7 -8
- data/vendor/pygments-main/pygments/lexers/sql.py +56 -23
- data/vendor/pygments-main/pygments/lexers/templates.py +377 -59
- data/vendor/pygments-main/pygments/lexers/text.py +208 -46
- data/vendor/pygments-main/pygments/lexers/web.py +729 -264
- data/vendor/pygments-main/pygments/modeline.py +1 -1
- data/vendor/pygments-main/pygments/plugin.py +1 -1
- data/vendor/pygments-main/pygments/scanner.py +1 -1
- data/vendor/pygments-main/pygments/sphinxext.py +153 -0
- data/vendor/pygments-main/pygments/style.py +3 -2
- data/vendor/pygments-main/pygments/styles/__init__.py +5 -1
- 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 +29 -0
- data/vendor/pygments-main/pygments/styles/manni.py +1 -1
- data/vendor/pygments-main/pygments/styles/monokai.py +4 -4
- 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 +125 -0
- data/vendor/pygments-main/pygments/styles/paraiso_light.py +125 -0
- data/vendor/pygments-main/pygments/styles/pastie.py +1 -1
- data/vendor/pygments-main/pygments/styles/perldoc.py +1 -1
- data/vendor/pygments-main/pygments/styles/rrt.py +1 -1
- 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 +51 -0
- data/vendor/pygments-main/pygments/token.py +4 -1
- data/vendor/pygments-main/pygments/unistring.py +6 -5
- data/vendor/pygments-main/pygments/util.py +35 -21
- data/vendor/pygments-main/scripts/check_sources.py +28 -44
- data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +5 -4
- data/vendor/pygments-main/scripts/find_codetags.py +27 -19
- data/vendor/pygments-main/scripts/find_error.py +16 -13
- data/vendor/pygments-main/scripts/get_vimkw.py +3 -3
- data/vendor/pygments-main/scripts/vim2pygments.py +9 -7
- data/vendor/pygments-main/setup.py +19 -19
- data/vendor/pygments-main/tests/examplefiles/99_bottles_of_beer.chpl +118 -0
- data/vendor/pygments-main/tests/examplefiles/Error.pmod +38 -0
- data/vendor/pygments-main/tests/examplefiles/FakeFile.pike +360 -0
- data/vendor/pygments-main/tests/examplefiles/{ANTLRv3.g → antlr_ANTLRv3.g} +0 -0
- data/vendor/pygments-main/tests/examplefiles/clojure-weird-keywords.clj +5 -0
- data/vendor/pygments-main/tests/examplefiles/core.cljs +52 -0
- data/vendor/pygments-main/tests/examplefiles/demo.cfm +13 -1
- data/vendor/pygments-main/tests/examplefiles/demo.hbs +12 -0
- data/vendor/pygments-main/tests/examplefiles/ember.handlebars +33 -0
- data/vendor/pygments-main/tests/examplefiles/example.als +217 -0
- data/vendor/pygments-main/tests/examplefiles/example.c +1 -1
- data/vendor/pygments-main/tests/examplefiles/example.chai +6 -0
- data/vendor/pygments-main/tests/examplefiles/example.coffee +27 -0
- data/vendor/pygments-main/tests/examplefiles/example.e +124 -0
- data/vendor/pygments-main/tests/examplefiles/example.f90 +8 -0
- data/vendor/pygments-main/tests/examplefiles/example.feature +16 -0
- data/vendor/pygments-main/tests/examplefiles/example.gd +23 -0
- data/vendor/pygments-main/tests/examplefiles/example.gi +64 -0
- data/vendor/pygments-main/tests/examplefiles/example.groovy +2 -0
- data/vendor/pygments-main/tests/examplefiles/example.hs +27 -0
- data/vendor/pygments-main/tests/examplefiles/example.hx +44 -1
- data/vendor/pygments-main/tests/examplefiles/example.i6t +32 -0
- data/vendor/pygments-main/tests/examplefiles/example.i7x +45 -0
- data/vendor/pygments-main/tests/examplefiles/example.inf +374 -0
- data/vendor/pygments-main/tests/examplefiles/example.j +564 -0
- data/vendor/pygments-main/tests/examplefiles/example.java +16 -0
- data/vendor/pygments-main/tests/examplefiles/example.kal +75 -0
- data/vendor/pygments-main/tests/examplefiles/example.liquid +42 -0
- data/vendor/pygments-main/tests/examplefiles/example.ma +8 -0
- data/vendor/pygments-main/tests/examplefiles/example.mq4 +187 -0
- data/vendor/pygments-main/tests/examplefiles/example.mqh +123 -0
- data/vendor/pygments-main/tests/examplefiles/example.ni +57 -0
- data/vendor/pygments-main/tests/examplefiles/example.nix +80 -0
- data/vendor/pygments-main/tests/examplefiles/example.pp +8 -0
- data/vendor/pygments-main/tests/examplefiles/example.red +257 -0
- data/vendor/pygments-main/tests/examplefiles/example.reds +150 -0
- data/vendor/pygments-main/tests/examplefiles/example.rkt +677 -29
- data/vendor/pygments-main/tests/examplefiles/example.sh +22 -0
- data/vendor/pygments-main/tests/examplefiles/example.slim +31 -0
- data/vendor/pygments-main/tests/examplefiles/example.sls +51 -0
- data/vendor/pygments-main/tests/examplefiles/example.stan +2 -0
- data/vendor/pygments-main/tests/examplefiles/example.todotxt +9 -0
- data/vendor/pygments-main/tests/examplefiles/exampleScript.cfc +241 -0
- data/vendor/pygments-main/tests/examplefiles/exampleTag.cfc +18 -0
- data/vendor/pygments-main/tests/examplefiles/example_elixir.ex +192 -350
- data/vendor/pygments-main/tests/examplefiles/hash_syntax.rb +5 -0
- data/vendor/pygments-main/tests/examplefiles/hello.at +6 -0
- data/vendor/pygments-main/tests/examplefiles/hello.golo +5 -0
- data/vendor/pygments-main/tests/examplefiles/hello.lsl +12 -0
- data/vendor/pygments-main/tests/examplefiles/{File.hy → hybris_File.hy} +0 -0
- data/vendor/pygments-main/tests/examplefiles/{mg_sample.pro → idl_sample.pro} +0 -0
- data/vendor/pygments-main/tests/examplefiles/iex_example +23 -0
- data/vendor/pygments-main/tests/examplefiles/inet_pton6.dg +24 -24
- data/vendor/pygments-main/tests/examplefiles/language.hy +165 -0
- data/vendor/pygments-main/tests/examplefiles/limbo.b +456 -0
- data/vendor/pygments-main/tests/examplefiles/livescript-demo.ls +3 -1
- data/vendor/pygments-main/tests/examplefiles/main.cmake +2 -0
- data/vendor/pygments-main/tests/examplefiles/objc_example.m +163 -16
- data/vendor/pygments-main/tests/examplefiles/{example.p → openedge_example} +0 -0
- data/vendor/pygments-main/tests/examplefiles/pawn_example +25 -0
- data/vendor/pygments-main/tests/examplefiles/qbasic_example +2 -0
- data/vendor/pygments-main/tests/examplefiles/r6rs-comments.scm +23 -0
- data/vendor/pygments-main/tests/examplefiles/{robotframework.txt → robotframework_test.txt} +0 -0
- data/vendor/pygments-main/tests/examplefiles/rql-queries.rql +34 -0
- data/vendor/pygments-main/tests/examplefiles/scope.cirru +43 -0
- data/vendor/pygments-main/tests/examplefiles/sparql.rq +23 -0
- data/vendor/pygments-main/tests/examplefiles/test.R +37 -5
- data/vendor/pygments-main/tests/examplefiles/test.apl +26 -0
- data/vendor/pygments-main/tests/examplefiles/test.cyp +123 -0
- data/vendor/pygments-main/tests/examplefiles/test.idr +93 -0
- data/vendor/pygments-main/tests/examplefiles/test.mask +41 -0
- data/vendor/pygments-main/tests/examplefiles/test.pan +54 -0
- data/vendor/pygments-main/tests/examplefiles/test.php +3 -1
- data/vendor/pygments-main/tests/examplefiles/test.pig +148 -0
- data/vendor/pygments-main/tests/examplefiles/test.pwn +253 -0
- data/vendor/pygments-main/tests/examplefiles/test.r3 +27 -7
- data/vendor/pygments-main/tests/examplefiles/test.rsl +111 -0
- data/vendor/pygments-main/tests/examplefiles/test.swift +65 -0
- data/vendor/pygments-main/tests/examplefiles/test.zep +33 -0
- data/vendor/pygments-main/tests/examplefiles/unicode.go +10 -0
- data/vendor/pygments-main/tests/examplefiles/{test.bas → vbnet_test.bas} +0 -0
- data/vendor/pygments-main/tests/examplefiles/vctreestatus_hg +4 -0
- data/vendor/pygments-main/tests/examplefiles/vimrc +21 -0
- data/vendor/pygments-main/tests/run.py +14 -19
- data/vendor/pygments-main/tests/string_asserts.py +22 -0
- data/vendor/pygments-main/tests/test_basic_api.py +28 -14
- data/vendor/pygments-main/tests/test_cfm.py +46 -0
- data/vendor/pygments-main/tests/test_clexer.py +208 -3
- data/vendor/pygments-main/tests/test_cmdline.py +6 -5
- data/vendor/pygments-main/tests/test_examplefiles.py +30 -19
- data/vendor/pygments-main/tests/test_html_formatter.py +15 -13
- data/vendor/pygments-main/tests/test_latex_formatter.py +4 -2
- data/vendor/pygments-main/tests/test_lexers_other.py +11 -11
- data/vendor/pygments-main/tests/test_objectiveclexer.py +81 -0
- data/vendor/pygments-main/tests/test_perllexer.py +1 -1
- data/vendor/pygments-main/tests/test_qbasiclexer.py +43 -0
- data/vendor/pygments-main/tests/test_regexlexer.py +8 -1
- data/vendor/pygments-main/tests/test_rtf_formatter.py +109 -0
- data/vendor/pygments-main/tests/test_string_asserts.py +39 -0
- data/vendor/pygments-main/tests/test_token.py +3 -3
- data/vendor/pygments-main/tests/test_using_api.py +1 -1
- data/vendor/pygments-main/tests/test_util.py +1 -1
- metadata +138 -51
- data/vendor/pygments-main/docs/generate.py +0 -472
- data/vendor/pygments-main/docs/src/api.txt +0 -270
- data/vendor/pygments-main/docs/src/authors.txt +0 -5
- data/vendor/pygments-main/docs/src/changelog.txt +0 -5
- data/vendor/pygments-main/docs/src/index.txt +0 -69
- data/vendor/pygments-main/docs/src/installation.txt +0 -71
- data/vendor/pygments-main/external/rst-directive-old.py +0 -77
- data/vendor/pygments-main/scripts/reindent.py +0 -291
- data/vendor/pygments-main/tests/examplefiles/import.hs +0 -4
- data/vendor/pygments-main/tests/examplefiles/objc_example2.m +0 -24
- data/vendor/pygments-main/tests/old_run.py +0 -138
@@ -0,0 +1,33 @@
|
|
1
|
+
namespace Test;
|
2
|
+
|
3
|
+
use Test\Foo;
|
4
|
+
|
5
|
+
class Bar
|
6
|
+
{
|
7
|
+
protected a;
|
8
|
+
private b;
|
9
|
+
public c {set, get};
|
10
|
+
|
11
|
+
public function __construct(string str, boolean bool)
|
12
|
+
{
|
13
|
+
let this->c = str;
|
14
|
+
this->setC(bool);
|
15
|
+
let this->b = [];
|
16
|
+
}
|
17
|
+
|
18
|
+
public function sayHello(string name)
|
19
|
+
{
|
20
|
+
echo "Hello " . name;
|
21
|
+
}
|
22
|
+
|
23
|
+
protected function loops()
|
24
|
+
{
|
25
|
+
for a in b {
|
26
|
+
echo a;
|
27
|
+
}
|
28
|
+
loop {
|
29
|
+
return "boo!";
|
30
|
+
}
|
31
|
+
}
|
32
|
+
|
33
|
+
}
|
File without changes
|
@@ -0,0 +1,21 @@
|
|
1
|
+
" A comment
|
2
|
+
|
3
|
+
:py print "py"
|
4
|
+
::pyt print 'pyt'
|
5
|
+
pyth print '''pyth'''
|
6
|
+
: pytho print "pytho"
|
7
|
+
python print """python"""
|
8
|
+
|
9
|
+
: : python<<E OF
|
10
|
+
print """my script"""
|
11
|
+
|
12
|
+
def MyFunc(str):
|
13
|
+
""" My Function """
|
14
|
+
print str
|
15
|
+
E OF
|
16
|
+
|
17
|
+
let py = 42
|
18
|
+
echo py
|
19
|
+
|
20
|
+
let foo = 42
|
21
|
+
echo foo
|
@@ -8,42 +8,37 @@
|
|
8
8
|
python run.py [testfile ...]
|
9
9
|
|
10
10
|
|
11
|
-
:copyright: Copyright 2006-
|
11
|
+
:copyright: Copyright 2006-2014 by the Pygments team, see AUTHORS.
|
12
12
|
:license: BSD, see LICENSE for details.
|
13
13
|
"""
|
14
14
|
|
15
|
+
from __future__ import print_function
|
16
|
+
|
15
17
|
import sys, os
|
16
18
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
from distutils.util import copydir_run_2to3
|
21
|
-
testroot = os.path.dirname(__file__)
|
22
|
-
newroot = os.path.join(testroot, '..', 'build/lib/test')
|
23
|
-
copydir_run_2to3(testroot, newroot)
|
24
|
-
# make nose believe that we run from the converted dir
|
25
|
-
os.chdir(newroot)
|
26
|
-
else:
|
27
|
-
# only find tests in this directory
|
28
|
-
if os.path.dirname(__file__):
|
29
|
-
os.chdir(os.path.dirname(__file__))
|
19
|
+
# only find tests in this directory
|
20
|
+
if os.path.dirname(__file__):
|
21
|
+
os.chdir(os.path.dirname(__file__))
|
30
22
|
|
31
23
|
|
32
24
|
try:
|
33
25
|
import nose
|
34
26
|
except ImportError:
|
35
|
-
print
|
27
|
+
print('nose is required to run the Pygments test suite')
|
36
28
|
sys.exit(1)
|
37
29
|
|
38
30
|
try:
|
39
31
|
# make sure the current source is first on sys.path
|
40
32
|
sys.path.insert(0, '..')
|
41
33
|
import pygments
|
42
|
-
except
|
43
|
-
print
|
34
|
+
except SyntaxError as err:
|
35
|
+
print('Syntax error: %s' % err)
|
36
|
+
sys.exit(1)
|
37
|
+
except ImportError as err:
|
38
|
+
print('Cannot find Pygments to test: %s' % err)
|
44
39
|
sys.exit(1)
|
45
40
|
else:
|
46
|
-
print
|
47
|
-
|
41
|
+
print('Pygments %s test suite running (Python %s)...' %
|
42
|
+
(pygments.__version__, sys.version.split()[0]))
|
48
43
|
|
49
44
|
nose.main()
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
"""
|
3
|
+
Pygments string assert utility
|
4
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
5
|
+
|
6
|
+
:copyright: Copyright 2006-2014 by the Pygments team, see AUTHORS.
|
7
|
+
:license: BSD, see LICENSE for details.
|
8
|
+
"""
|
9
|
+
|
10
|
+
class StringTests(object):
|
11
|
+
|
12
|
+
def assertStartsWith(self, haystack, needle, msg=None):
|
13
|
+
if msg is None:
|
14
|
+
msg = "'{}' does not start with '{}'".format(haystack, needle)
|
15
|
+
if not haystack.startswith(needle):
|
16
|
+
raise(AssertionError(msg))
|
17
|
+
|
18
|
+
def assertEndsWith(self, haystack, needle, msg=None):
|
19
|
+
if msg is None:
|
20
|
+
msg = "'{}' does not end with '{}'".format(haystack, needle)
|
21
|
+
if not haystack.endswith(needle):
|
22
|
+
raise(AssertionError(msg))
|
@@ -3,11 +3,12 @@
|
|
3
3
|
Pygments basic API tests
|
4
4
|
~~~~~~~~~~~~~~~~~~~~~~~~
|
5
5
|
|
6
|
-
:copyright: Copyright 2006-
|
6
|
+
:copyright: Copyright 2006-2014 by the Pygments team, see AUTHORS.
|
7
7
|
:license: BSD, see LICENSE for details.
|
8
8
|
"""
|
9
9
|
|
10
|
-
import
|
10
|
+
from __future__ import print_function
|
11
|
+
|
11
12
|
import random
|
12
13
|
import unittest
|
13
14
|
|
@@ -15,7 +16,7 @@ from pygments import lexers, formatters, filters, format
|
|
15
16
|
from pygments.token import _TokenType, Text
|
16
17
|
from pygments.lexer import RegexLexer
|
17
18
|
from pygments.formatters.img import FontNotFound
|
18
|
-
from pygments.util import
|
19
|
+
from pygments.util import text_type, StringIO, xrange, ClassNotFound
|
19
20
|
|
20
21
|
import support
|
21
22
|
|
@@ -28,7 +29,7 @@ test_content = ''.join(test_content) + '\n'
|
|
28
29
|
|
29
30
|
def test_lexer_import_all():
|
30
31
|
# instantiate every lexer, to see if the token type defs are correct
|
31
|
-
for x in lexers.LEXERS
|
32
|
+
for x in lexers.LEXERS:
|
32
33
|
c = getattr(lexers, x)()
|
33
34
|
|
34
35
|
|
@@ -45,6 +46,8 @@ def test_lexer_classes():
|
|
45
46
|
result = cls.analyse_text(".abc")
|
46
47
|
assert isinstance(result, float) and 0.0 <= result <= 1.0
|
47
48
|
|
49
|
+
assert all(al.lower() == al for al in cls.aliases)
|
50
|
+
|
48
51
|
inst = cls(opt1="val1", opt2="val2")
|
49
52
|
if issubclass(cls, RegexLexer):
|
50
53
|
if not hasattr(cls, '_tokens'):
|
@@ -60,14 +63,17 @@ def test_lexer_classes():
|
|
60
63
|
if cls.name in ['XQuery', 'Opa']: # XXX temporary
|
61
64
|
return
|
62
65
|
|
63
|
-
|
66
|
+
try:
|
67
|
+
tokens = list(inst.get_tokens(test_content))
|
68
|
+
except KeyboardInterrupt:
|
69
|
+
raise KeyboardInterrupt('interrupted %s.get_tokens(): test_content=%r' % (cls.__name__, test_content))
|
64
70
|
txt = ""
|
65
71
|
for token in tokens:
|
66
72
|
assert isinstance(token, tuple)
|
67
73
|
assert isinstance(token[0], _TokenType)
|
68
74
|
if isinstance(token[1], str):
|
69
|
-
print
|
70
|
-
assert isinstance(token[1],
|
75
|
+
print(repr(token[1]))
|
76
|
+
assert isinstance(token[1], text_type)
|
71
77
|
txt += token[1]
|
72
78
|
assert txt == test_content, "%s lexer roundtrip failed: %r != %r" % \
|
73
79
|
(cls.name, test_content, txt)
|
@@ -94,7 +100,8 @@ def test_lexer_options():
|
|
94
100
|
'SqliteConsoleLexer', 'MatlabSessionLexer', 'ErlangShellLexer',
|
95
101
|
'BashSessionLexer', 'LiterateHaskellLexer', 'LiterateAgdaLexer',
|
96
102
|
'PostgresConsoleLexer', 'ElixirConsoleLexer', 'JuliaConsoleLexer',
|
97
|
-
'RobotFrameworkLexer', 'DylanConsoleLexer', 'ShellSessionLexer'
|
103
|
+
'RobotFrameworkLexer', 'DylanConsoleLexer', 'ShellSessionLexer',
|
104
|
+
'LiterateIdrisLexer', 'LiterateCryptolLexer'):
|
98
105
|
inst = cls(ensurenl=False)
|
99
106
|
ensure(inst.get_tokens('a\nb'), 'a\nb')
|
100
107
|
inst = cls(ensurenl=False, stripall=True)
|
@@ -122,7 +129,7 @@ def test_get_lexers():
|
|
122
129
|
]:
|
123
130
|
yield verify, func, args
|
124
131
|
|
125
|
-
for cls, (_, lname, aliases, _, mimetypes) in lexers.LEXERS.
|
132
|
+
for cls, (_, lname, aliases, _, mimetypes) in lexers.LEXERS.items():
|
126
133
|
assert cls == lexers.find_lexer_class(lname).__name__
|
127
134
|
|
128
135
|
for alias in aliases:
|
@@ -131,6 +138,13 @@ def test_get_lexers():
|
|
131
138
|
for mimetype in mimetypes:
|
132
139
|
assert cls == lexers.get_lexer_for_mimetype(mimetype).__class__.__name__
|
133
140
|
|
141
|
+
try:
|
142
|
+
lexers.get_lexer_by_name(None)
|
143
|
+
except ClassNotFound:
|
144
|
+
pass
|
145
|
+
else:
|
146
|
+
raise Exception
|
147
|
+
|
134
148
|
|
135
149
|
def test_formatter_public_api():
|
136
150
|
ts = list(lexers.PythonLexer().get_tokens("def f(): pass"))
|
@@ -157,7 +171,7 @@ def test_formatter_public_api():
|
|
157
171
|
pass
|
158
172
|
inst.format(ts, out)
|
159
173
|
|
160
|
-
for formatter, info in formatters.FORMATTERS.
|
174
|
+
for formatter, info in formatters.FORMATTERS.items():
|
161
175
|
yield verify, formatter, info
|
162
176
|
|
163
177
|
def test_formatter_encodings():
|
@@ -167,7 +181,7 @@ def test_formatter_encodings():
|
|
167
181
|
fmt = HtmlFormatter()
|
168
182
|
tokens = [(Text, u"ä")]
|
169
183
|
out = format(tokens, fmt)
|
170
|
-
assert type(out) is
|
184
|
+
assert type(out) is text_type
|
171
185
|
assert u"ä" in out
|
172
186
|
|
173
187
|
# encoding option
|
@@ -196,7 +210,7 @@ def test_formatter_unicode_handling():
|
|
196
210
|
if formatter.name != 'Raw tokens':
|
197
211
|
out = format(tokens, inst)
|
198
212
|
if formatter.unicodeoutput:
|
199
|
-
assert type(out) is
|
213
|
+
assert type(out) is text_type
|
200
214
|
|
201
215
|
inst = formatter(encoding='utf-8')
|
202
216
|
out = format(tokens, inst)
|
@@ -208,7 +222,7 @@ def test_formatter_unicode_handling():
|
|
208
222
|
out = format(tokens, inst)
|
209
223
|
assert type(out) is bytes, '%s: %r' % (formatter, out)
|
210
224
|
|
211
|
-
for formatter, info in formatters.FORMATTERS.
|
225
|
+
for formatter, info in formatters.FORMATTERS.items():
|
212
226
|
yield verify, formatter
|
213
227
|
|
214
228
|
|
@@ -236,7 +250,7 @@ class FiltersTest(unittest.TestCase):
|
|
236
250
|
'whitespace': {'spaces': True, 'tabs': True, 'newlines': True},
|
237
251
|
'highlight': {'names': ['isinstance', 'lexers', 'x']},
|
238
252
|
}
|
239
|
-
for x in filters.FILTERS
|
253
|
+
for x in filters.FILTERS:
|
240
254
|
lx = lexers.PythonLexer()
|
241
255
|
lx.add_filter(x, **filter_args.get(x, {}))
|
242
256
|
fp = open(TESTFILE, 'rb')
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
"""
|
3
|
+
Basic ColdfusionHtmlLexer Test
|
4
|
+
~~~~~~~~~~~~~~~~~
|
5
|
+
|
6
|
+
:copyright: Copyright 2014 by the Pygments team, see AUTHORS.
|
7
|
+
:license: BSD, see LICENSE for details.
|
8
|
+
"""
|
9
|
+
|
10
|
+
import unittest
|
11
|
+
import os
|
12
|
+
|
13
|
+
from pygments.token import Token
|
14
|
+
from pygments.lexers import ColdfusionHtmlLexer
|
15
|
+
|
16
|
+
|
17
|
+
class ColdfusionHtmlLexerTest(unittest.TestCase):
|
18
|
+
|
19
|
+
def setUp(self):
|
20
|
+
self.lexer = ColdfusionHtmlLexer()
|
21
|
+
|
22
|
+
def testBasicComment(self):
|
23
|
+
fragment = u'<!--- cfcomment --->'
|
24
|
+
expected = [
|
25
|
+
(Token.Text, u''),
|
26
|
+
(Token.Comment.Multiline, u'<!---'),
|
27
|
+
(Token.Comment.Multiline, u' cfcomment '),
|
28
|
+
(Token.Comment.Multiline, u'--->'),
|
29
|
+
(Token.Text, u'\n'),
|
30
|
+
]
|
31
|
+
self.assertEqual(expected, list(self.lexer.get_tokens(fragment)))
|
32
|
+
|
33
|
+
def testNestedComment(self):
|
34
|
+
fragment = u'<!--- nested <!--- cfcomment ---> --->'
|
35
|
+
expected = [
|
36
|
+
(Token.Text, u''),
|
37
|
+
(Token.Comment.Multiline, u'<!---'),
|
38
|
+
(Token.Comment.Multiline, u' nested '),
|
39
|
+
(Token.Comment.Multiline, u'<!---'),
|
40
|
+
(Token.Comment.Multiline, u' cfcomment '),
|
41
|
+
(Token.Comment.Multiline, u'--->'),
|
42
|
+
(Token.Comment.Multiline, u' '),
|
43
|
+
(Token.Comment.Multiline, u'--->'),
|
44
|
+
(Token.Text, u'\n'),
|
45
|
+
]
|
46
|
+
self.assertEqual(expected, list(self.lexer.get_tokens(fragment)))
|
@@ -3,14 +3,15 @@
|
|
3
3
|
Basic CLexer Test
|
4
4
|
~~~~~~~~~~~~~~~~~
|
5
5
|
|
6
|
-
:copyright: Copyright 2006-
|
6
|
+
:copyright: Copyright 2006-2014 by the Pygments team, see AUTHORS.
|
7
7
|
:license: BSD, see LICENSE for details.
|
8
8
|
"""
|
9
9
|
|
10
10
|
import unittest
|
11
11
|
import os
|
12
|
+
import textwrap
|
12
13
|
|
13
|
-
from pygments.token import Text, Number
|
14
|
+
from pygments.token import Text, Number, Token
|
14
15
|
from pygments.lexers import CLexer
|
15
16
|
|
16
17
|
|
@@ -27,5 +28,209 @@ class CLexerTest(unittest.TestCase):
|
|
27
28
|
Number.Float, Number.Float], code.split()):
|
28
29
|
wanted.append(item)
|
29
30
|
wanted.append((Text, ' '))
|
30
|
-
wanted =
|
31
|
+
wanted = wanted[:-1] + [(Text, '\n')]
|
31
32
|
self.assertEqual(list(self.lexer.get_tokens(code)), wanted)
|
33
|
+
|
34
|
+
def testSwitch(self):
|
35
|
+
fragment = u'''\
|
36
|
+
int main()
|
37
|
+
{
|
38
|
+
switch (0)
|
39
|
+
{
|
40
|
+
case 0:
|
41
|
+
default:
|
42
|
+
;
|
43
|
+
}
|
44
|
+
}
|
45
|
+
'''
|
46
|
+
tokens = [
|
47
|
+
(Token.Keyword.Type, u'int'),
|
48
|
+
(Token.Text, u' '),
|
49
|
+
(Token.Name.Function, u'main'),
|
50
|
+
(Token.Punctuation, u'('),
|
51
|
+
(Token.Punctuation, u')'),
|
52
|
+
(Token.Text, u'\n'),
|
53
|
+
(Token.Punctuation, u'{'),
|
54
|
+
(Token.Text, u'\n'),
|
55
|
+
(Token.Text, u' '),
|
56
|
+
(Token.Keyword, u'switch'),
|
57
|
+
(Token.Text, u' '),
|
58
|
+
(Token.Punctuation, u'('),
|
59
|
+
(Token.Literal.Number.Integer, u'0'),
|
60
|
+
(Token.Punctuation, u')'),
|
61
|
+
(Token.Text, u'\n'),
|
62
|
+
(Token.Text, u' '),
|
63
|
+
(Token.Punctuation, u'{'),
|
64
|
+
(Token.Text, u'\n'),
|
65
|
+
(Token.Text, u' '),
|
66
|
+
(Token.Keyword, u'case'),
|
67
|
+
(Token.Text, u' '),
|
68
|
+
(Token.Literal.Number.Integer, u'0'),
|
69
|
+
(Token.Operator, u':'),
|
70
|
+
(Token.Text, u'\n'),
|
71
|
+
(Token.Text, u' '),
|
72
|
+
(Token.Keyword, u'default'),
|
73
|
+
(Token.Operator, u':'),
|
74
|
+
(Token.Text, u'\n'),
|
75
|
+
(Token.Text, u' '),
|
76
|
+
(Token.Punctuation, u';'),
|
77
|
+
(Token.Text, u'\n'),
|
78
|
+
(Token.Text, u' '),
|
79
|
+
(Token.Punctuation, u'}'),
|
80
|
+
(Token.Text, u'\n'),
|
81
|
+
(Token.Punctuation, u'}'),
|
82
|
+
(Token.Text, u'\n'),
|
83
|
+
]
|
84
|
+
self.assertEqual(tokens, list(self.lexer.get_tokens(textwrap.dedent(fragment))))
|
85
|
+
|
86
|
+
def testSwitchSpaceBeforeColon(self):
|
87
|
+
fragment = u'''\
|
88
|
+
int main()
|
89
|
+
{
|
90
|
+
switch (0)
|
91
|
+
{
|
92
|
+
case 0 :
|
93
|
+
default :
|
94
|
+
;
|
95
|
+
}
|
96
|
+
}
|
97
|
+
'''
|
98
|
+
tokens = [
|
99
|
+
(Token.Keyword.Type, u'int'),
|
100
|
+
(Token.Text, u' '),
|
101
|
+
(Token.Name.Function, u'main'),
|
102
|
+
(Token.Punctuation, u'('),
|
103
|
+
(Token.Punctuation, u')'),
|
104
|
+
(Token.Text, u'\n'),
|
105
|
+
(Token.Punctuation, u'{'),
|
106
|
+
(Token.Text, u'\n'),
|
107
|
+
(Token.Text, u' '),
|
108
|
+
(Token.Keyword, u'switch'),
|
109
|
+
(Token.Text, u' '),
|
110
|
+
(Token.Punctuation, u'('),
|
111
|
+
(Token.Literal.Number.Integer, u'0'),
|
112
|
+
(Token.Punctuation, u')'),
|
113
|
+
(Token.Text, u'\n'),
|
114
|
+
(Token.Text, u' '),
|
115
|
+
(Token.Punctuation, u'{'),
|
116
|
+
(Token.Text, u'\n'),
|
117
|
+
(Token.Text, u' '),
|
118
|
+
(Token.Keyword, u'case'),
|
119
|
+
(Token.Text, u' '),
|
120
|
+
(Token.Literal.Number.Integer, u'0'),
|
121
|
+
(Token.Text, u' '),
|
122
|
+
(Token.Operator, u':'),
|
123
|
+
(Token.Text, u'\n'),
|
124
|
+
(Token.Text, u' '),
|
125
|
+
(Token.Keyword, u'default'),
|
126
|
+
(Token.Text, u' '),
|
127
|
+
(Token.Operator, u':'),
|
128
|
+
(Token.Text, u'\n'),
|
129
|
+
(Token.Text, u' '),
|
130
|
+
(Token.Punctuation, u';'),
|
131
|
+
(Token.Text, u'\n'),
|
132
|
+
(Token.Text, u' '),
|
133
|
+
(Token.Punctuation, u'}'),
|
134
|
+
(Token.Text, u'\n'),
|
135
|
+
(Token.Punctuation, u'}'),
|
136
|
+
(Token.Text, u'\n'),
|
137
|
+
]
|
138
|
+
self.assertEqual(tokens, list(self.lexer.get_tokens(textwrap.dedent(fragment))))
|
139
|
+
|
140
|
+
def testLabel(self):
|
141
|
+
fragment = u'''\
|
142
|
+
int main()
|
143
|
+
{
|
144
|
+
foo:
|
145
|
+
goto foo;
|
146
|
+
}
|
147
|
+
'''
|
148
|
+
tokens = [
|
149
|
+
(Token.Keyword.Type, u'int'),
|
150
|
+
(Token.Text, u' '),
|
151
|
+
(Token.Name.Function, u'main'),
|
152
|
+
(Token.Punctuation, u'('),
|
153
|
+
(Token.Punctuation, u')'),
|
154
|
+
(Token.Text, u'\n'),
|
155
|
+
(Token.Punctuation, u'{'),
|
156
|
+
(Token.Text, u'\n'),
|
157
|
+
(Token.Name.Label, u'foo'),
|
158
|
+
(Token.Punctuation, u':'),
|
159
|
+
(Token.Text, u'\n'),
|
160
|
+
(Token.Text, u' '),
|
161
|
+
(Token.Keyword, u'goto'),
|
162
|
+
(Token.Text, u' '),
|
163
|
+
(Token.Name, u'foo'),
|
164
|
+
(Token.Punctuation, u';'),
|
165
|
+
(Token.Text, u'\n'),
|
166
|
+
(Token.Punctuation, u'}'),
|
167
|
+
(Token.Text, u'\n'),
|
168
|
+
]
|
169
|
+
self.assertEqual(tokens, list(self.lexer.get_tokens(textwrap.dedent(fragment))))
|
170
|
+
|
171
|
+
def testLabelSpaceBeforeColon(self):
|
172
|
+
fragment = u'''\
|
173
|
+
int main()
|
174
|
+
{
|
175
|
+
foo :
|
176
|
+
goto foo;
|
177
|
+
}
|
178
|
+
'''
|
179
|
+
tokens = [
|
180
|
+
(Token.Keyword.Type, u'int'),
|
181
|
+
(Token.Text, u' '),
|
182
|
+
(Token.Name.Function, u'main'),
|
183
|
+
(Token.Punctuation, u'('),
|
184
|
+
(Token.Punctuation, u')'),
|
185
|
+
(Token.Text, u'\n'),
|
186
|
+
(Token.Punctuation, u'{'),
|
187
|
+
(Token.Text, u'\n'),
|
188
|
+
(Token.Name.Label, u'foo'),
|
189
|
+
(Token.Text, u' '),
|
190
|
+
(Token.Punctuation, u':'),
|
191
|
+
(Token.Text, u'\n'),
|
192
|
+
(Token.Text, u' '),
|
193
|
+
(Token.Keyword, u'goto'),
|
194
|
+
(Token.Text, u' '),
|
195
|
+
(Token.Name, u'foo'),
|
196
|
+
(Token.Punctuation, u';'),
|
197
|
+
(Token.Text, u'\n'),
|
198
|
+
(Token.Punctuation, u'}'),
|
199
|
+
(Token.Text, u'\n'),
|
200
|
+
]
|
201
|
+
self.assertEqual(tokens, list(self.lexer.get_tokens(textwrap.dedent(fragment))))
|
202
|
+
|
203
|
+
def testLabelFollowedByStatement(self):
|
204
|
+
fragment = u'''\
|
205
|
+
int main()
|
206
|
+
{
|
207
|
+
foo:return 0;
|
208
|
+
goto foo;
|
209
|
+
}
|
210
|
+
'''
|
211
|
+
tokens = [
|
212
|
+
(Token.Keyword.Type, u'int'),
|
213
|
+
(Token.Text, u' '),
|
214
|
+
(Token.Name.Function, u'main'),
|
215
|
+
(Token.Punctuation, u'('),
|
216
|
+
(Token.Punctuation, u')'),
|
217
|
+
(Token.Text, u'\n'),
|
218
|
+
(Token.Punctuation, u'{'),
|
219
|
+
(Token.Text, u'\n'),
|
220
|
+
(Token.Name.Label, u'foo'),
|
221
|
+
(Token.Punctuation, u':'),
|
222
|
+
(Token.Keyword, u'return'),
|
223
|
+
(Token.Text, u' '),
|
224
|
+
(Token.Literal.Number.Integer, u'0'),
|
225
|
+
(Token.Punctuation, u';'),
|
226
|
+
(Token.Text, u'\n'),
|
227
|
+
(Token.Text, u' '),
|
228
|
+
(Token.Keyword, u'goto'),
|
229
|
+
(Token.Text, u' '),
|
230
|
+
(Token.Name, u'foo'),
|
231
|
+
(Token.Punctuation, u';'),
|
232
|
+
(Token.Text, u'\n'),
|
233
|
+
(Token.Punctuation, u'}'),
|
234
|
+
(Token.Text, u'\n'),
|
235
|
+
]
|
236
|
+
self.assertEqual(tokens, list(self.lexer.get_tokens(textwrap.dedent(fragment))))
|