pygments.rb 0.5.4 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/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,125 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
"""
|
|
3
|
+
pygments.styles.paraiso_light
|
|
4
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
5
|
+
|
|
6
|
+
Paraíso (Light) by Jan T. Sott
|
|
7
|
+
|
|
8
|
+
Pygments template by Jan T. Sott (https://github.com/idleberg)
|
|
9
|
+
Created with Base16 Builder by Chris Kempson
|
|
10
|
+
(https://github.com/chriskempson/base16-builder).
|
|
11
|
+
|
|
12
|
+
:copyright: Copyright 2006-2014 by the Pygments team, see AUTHORS.
|
|
13
|
+
:license: BSD, see LICENSE for details.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
from pygments.style import Style
|
|
17
|
+
from pygments.token import Keyword, Name, Comment, String, Error, Text, \
|
|
18
|
+
Number, Operator, Generic, Whitespace, Punctuation, Other, Literal
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
BACKGROUND = "#e7e9db"
|
|
22
|
+
CURRENT_LINE = "#b9b6b0"
|
|
23
|
+
SELECTION = "#a39e9b"
|
|
24
|
+
FOREGROUND = "#2f1e2e"
|
|
25
|
+
COMMENT = "#8d8687"
|
|
26
|
+
RED = "#ef6155"
|
|
27
|
+
ORANGE = "#f99b15"
|
|
28
|
+
YELLOW = "#fec418"
|
|
29
|
+
GREEN = "#48b685"
|
|
30
|
+
AQUA = "#5bc4bf"
|
|
31
|
+
BLUE = "#06b6ef"
|
|
32
|
+
PURPLE = "#815ba4"
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class ParaisoLightStyle(Style):
|
|
36
|
+
|
|
37
|
+
default_style = ''
|
|
38
|
+
|
|
39
|
+
background_color = BACKGROUND
|
|
40
|
+
highlight_color = SELECTION
|
|
41
|
+
|
|
42
|
+
background_color = BACKGROUND
|
|
43
|
+
highlight_color = SELECTION
|
|
44
|
+
|
|
45
|
+
styles = {
|
|
46
|
+
# No corresponding class for the following:
|
|
47
|
+
Text: FOREGROUND, # class: ''
|
|
48
|
+
Whitespace: "", # class: 'w'
|
|
49
|
+
Error: RED, # class: 'err'
|
|
50
|
+
Other: "", # class 'x'
|
|
51
|
+
|
|
52
|
+
Comment: COMMENT, # class: 'c'
|
|
53
|
+
Comment.Multiline: "", # class: 'cm'
|
|
54
|
+
Comment.Preproc: "", # class: 'cp'
|
|
55
|
+
Comment.Single: "", # class: 'c1'
|
|
56
|
+
Comment.Special: "", # class: 'cs'
|
|
57
|
+
|
|
58
|
+
Keyword: PURPLE, # class: 'k'
|
|
59
|
+
Keyword.Constant: "", # class: 'kc'
|
|
60
|
+
Keyword.Declaration: "", # class: 'kd'
|
|
61
|
+
Keyword.Namespace: AQUA, # class: 'kn'
|
|
62
|
+
Keyword.Pseudo: "", # class: 'kp'
|
|
63
|
+
Keyword.Reserved: "", # class: 'kr'
|
|
64
|
+
Keyword.Type: YELLOW, # class: 'kt'
|
|
65
|
+
|
|
66
|
+
Operator: AQUA, # class: 'o'
|
|
67
|
+
Operator.Word: "", # class: 'ow' - like keywords
|
|
68
|
+
|
|
69
|
+
Punctuation: FOREGROUND, # class: 'p'
|
|
70
|
+
|
|
71
|
+
Name: FOREGROUND, # class: 'n'
|
|
72
|
+
Name.Attribute: BLUE, # class: 'na' - to be revised
|
|
73
|
+
Name.Builtin: "", # class: 'nb'
|
|
74
|
+
Name.Builtin.Pseudo: "", # class: 'bp'
|
|
75
|
+
Name.Class: YELLOW, # class: 'nc' - to be revised
|
|
76
|
+
Name.Constant: RED, # class: 'no' - to be revised
|
|
77
|
+
Name.Decorator: AQUA, # class: 'nd' - to be revised
|
|
78
|
+
Name.Entity: "", # class: 'ni'
|
|
79
|
+
Name.Exception: RED, # class: 'ne'
|
|
80
|
+
Name.Function: BLUE, # class: 'nf'
|
|
81
|
+
Name.Property: "", # class: 'py'
|
|
82
|
+
Name.Label: "", # class: 'nl'
|
|
83
|
+
Name.Namespace: YELLOW, # class: 'nn' - to be revised
|
|
84
|
+
Name.Other: BLUE, # class: 'nx'
|
|
85
|
+
Name.Tag: AQUA, # class: 'nt' - like a keyword
|
|
86
|
+
Name.Variable: RED, # class: 'nv' - to be revised
|
|
87
|
+
Name.Variable.Class: "", # class: 'vc' - to be revised
|
|
88
|
+
Name.Variable.Global: "", # class: 'vg' - to be revised
|
|
89
|
+
Name.Variable.Instance: "", # class: 'vi' - to be revised
|
|
90
|
+
|
|
91
|
+
Number: ORANGE, # class: 'm'
|
|
92
|
+
Number.Float: "", # class: 'mf'
|
|
93
|
+
Number.Hex: "", # class: 'mh'
|
|
94
|
+
Number.Integer: "", # class: 'mi'
|
|
95
|
+
Number.Integer.Long: "", # class: 'il'
|
|
96
|
+
Number.Oct: "", # class: 'mo'
|
|
97
|
+
|
|
98
|
+
Literal: ORANGE, # class: 'l'
|
|
99
|
+
Literal.Date: GREEN, # class: 'ld'
|
|
100
|
+
|
|
101
|
+
String: GREEN, # class: 's'
|
|
102
|
+
String.Backtick: "", # class: 'sb'
|
|
103
|
+
String.Char: FOREGROUND, # class: 'sc'
|
|
104
|
+
String.Doc: COMMENT, # class: 'sd' - like a comment
|
|
105
|
+
String.Double: "", # class: 's2'
|
|
106
|
+
String.Escape: ORANGE, # class: 'se'
|
|
107
|
+
String.Heredoc: "", # class: 'sh'
|
|
108
|
+
String.Interpol: ORANGE, # class: 'si'
|
|
109
|
+
String.Other: "", # class: 'sx'
|
|
110
|
+
String.Regex: "", # class: 'sr'
|
|
111
|
+
String.Single: "", # class: 's1'
|
|
112
|
+
String.Symbol: "", # class: 'ss'
|
|
113
|
+
|
|
114
|
+
Generic: "", # class: 'g'
|
|
115
|
+
Generic.Deleted: RED, # class: 'gd',
|
|
116
|
+
Generic.Emph: "italic", # class: 'ge'
|
|
117
|
+
Generic.Error: "", # class: 'gr'
|
|
118
|
+
Generic.Heading: "bold " + FOREGROUND, # class: 'gh'
|
|
119
|
+
Generic.Inserted: GREEN, # class: 'gi'
|
|
120
|
+
Generic.Output: "", # class: 'go'
|
|
121
|
+
Generic.Prompt: "bold " + COMMENT, # class: 'gp'
|
|
122
|
+
Generic.Strong: "bold", # class: 'gs'
|
|
123
|
+
Generic.Subheading: "bold " + AQUA, # class: 'gu'
|
|
124
|
+
Generic.Traceback: "", # class: 'gt'
|
|
125
|
+
}
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
have been chosen to have the same style. Similarly, keywords (Keyword.*),
|
|
34
34
|
and Operator.Word (and, or, in) have been assigned the same style.
|
|
35
35
|
|
|
36
|
-
:copyright: Copyright 2006-
|
|
36
|
+
:copyright: Copyright 2006-2014 by the Pygments team, see AUTHORS.
|
|
37
37
|
:license: BSD, see LICENSE for details.
|
|
38
38
|
"""
|
|
39
39
|
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
"""
|
|
3
|
+
pygments.styles.xcode
|
|
4
|
+
~~~~~~~~~~~~~~~~~~~~~
|
|
5
|
+
|
|
6
|
+
Style similar to the `Xcode` default theme.
|
|
7
|
+
|
|
8
|
+
:copyright: Copyright 2006-2014 by the Pygments team, see AUTHORS.
|
|
9
|
+
:license: BSD, see LICENSE for details.
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
from pygments.style import Style
|
|
13
|
+
from pygments.token import Keyword, Name, Comment, String, Error, \
|
|
14
|
+
Number, Operator, Literal
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class XcodeStyle(Style):
|
|
18
|
+
"""
|
|
19
|
+
Style similar to the Xcode default colouring theme.
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
default_style = ''
|
|
23
|
+
|
|
24
|
+
styles = {
|
|
25
|
+
Comment: '#177500',
|
|
26
|
+
Comment.Preproc: '#633820',
|
|
27
|
+
|
|
28
|
+
String: '#C41A16',
|
|
29
|
+
String.Char: '#2300CE',
|
|
30
|
+
|
|
31
|
+
Operator: '#000000',
|
|
32
|
+
|
|
33
|
+
Keyword: '#A90D91',
|
|
34
|
+
|
|
35
|
+
Name: '#000000',
|
|
36
|
+
Name.Attribute: '#836C28',
|
|
37
|
+
Name.Class: '#3F6E75',
|
|
38
|
+
Name.Function: '#000000',
|
|
39
|
+
Name.Builtin: '#A90D91',
|
|
40
|
+
# In Obj-C code this token is used to colour Cocoa types
|
|
41
|
+
Name.Builtin.Pseudo: '#5B269A',
|
|
42
|
+
Name.Variable: '#000000',
|
|
43
|
+
Name.Tag: '#000000',
|
|
44
|
+
Name.Decorator: '#000000',
|
|
45
|
+
# Workaround for a BUG here: lexer treats multiline method signatres as labels
|
|
46
|
+
Name.Label: '#000000',
|
|
47
|
+
|
|
48
|
+
Literal: '#1C01CE',
|
|
49
|
+
Number: '#1C01CE',
|
|
50
|
+
Error: '#000000',
|
|
51
|
+
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
Basic token types and the standard tokens.
|
|
7
7
|
|
|
8
|
-
:copyright: Copyright 2006-
|
|
8
|
+
:copyright: Copyright 2006-2014 by the Pygments team, see AUTHORS.
|
|
9
9
|
:license: BSD, see LICENSE for details.
|
|
10
10
|
"""
|
|
11
11
|
|
|
@@ -49,6 +49,7 @@ Token = _TokenType()
|
|
|
49
49
|
# Special token types
|
|
50
50
|
Text = Token.Text
|
|
51
51
|
Whitespace = Text.Whitespace
|
|
52
|
+
Escape = Token.Escape
|
|
52
53
|
Error = Token.Error
|
|
53
54
|
# Text that doesn't belong to this lexer (e.g. HTML in PHP)
|
|
54
55
|
Other = Token.Other
|
|
@@ -116,6 +117,7 @@ STANDARD_TYPES = {
|
|
|
116
117
|
|
|
117
118
|
Text: '',
|
|
118
119
|
Whitespace: 'w',
|
|
120
|
+
Escape: 'esc',
|
|
119
121
|
Error: 'err',
|
|
120
122
|
Other: 'x',
|
|
121
123
|
|
|
@@ -164,6 +166,7 @@ STANDARD_TYPES = {
|
|
|
164
166
|
String.Symbol: 'ss',
|
|
165
167
|
|
|
166
168
|
Number: 'm',
|
|
169
|
+
Number.Bin: 'mb',
|
|
167
170
|
Number.Float: 'mf',
|
|
168
171
|
Number.Hex: 'mh',
|
|
169
172
|
Number.Integer: 'mi',
|
|
@@ -8,10 +8,11 @@
|
|
|
8
8
|
|
|
9
9
|
Inspired by chartypes_create.py from the MoinMoin project.
|
|
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 pygments.util import u_prefix, unichr
|
|
15
16
|
|
|
16
17
|
Cc = u'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f'
|
|
17
18
|
|
|
@@ -52,7 +53,7 @@ Pc = u'_\u203f\u2040\u2054\ufe33\ufe34\ufe4d\ufe4e\ufe4f\uff3f'
|
|
|
52
53
|
|
|
53
54
|
Pd = u'\\-\u058a\u05be\u1400\u1806\u2010\u2011\u2012\u2013\u2014\u2015\u2e17\u2e1a\u301c\u3030\u30a0\ufe31\ufe32\ufe58\ufe63\uff0d'
|
|
54
55
|
|
|
55
|
-
Pe = u')]}\u0f3b\u0f3d\u169c\u2046\u207e\u208e\u232a\u2769\u276b\u276d\u276f\u2771\u2773\u2775\u27c6\u27e7\u27e9\u27eb\u27ed\u27ef\u2984\u2986\u2988\u298a\u298c\u298e\u2990\u2992\u2994\u2996\u2998\u29d9\u29db\u29fd\u2e23\u2e25\u2e27\u2e29\u3009\u300b\u300d\u300f\u3011\u3015\u3017\u3019\u301b\u301e\u301f\ufd3f\ufe18\ufe36\ufe38\ufe3a\ufe3c\ufe3e\ufe40\ufe42\ufe44\ufe48\ufe5a\ufe5c\ufe5e\uff09\uff3d\uff5d\uff60\uff63'
|
|
56
|
+
Pe = u')\\]}\u0f3b\u0f3d\u169c\u2046\u207e\u208e\u232a\u2769\u276b\u276d\u276f\u2771\u2773\u2775\u27c6\u27e7\u27e9\u27eb\u27ed\u27ef\u2984\u2986\u2988\u298a\u298c\u298e\u2990\u2992\u2994\u2996\u2998\u29d9\u29db\u29fd\u2e23\u2e25\u2e27\u2e29\u3009\u300b\u300d\u300f\u3011\u3015\u3017\u3019\u301b\u301e\u301f\ufd3f\ufe18\ufe36\ufe38\ufe3a\ufe3c\ufe3e\ufe40\ufe42\ufe44\ufe48\ufe5a\ufe5c\ufe5e\uff09\uff3d\uff5d\uff60\uff63'
|
|
56
57
|
|
|
57
58
|
Pf = u'\xbb\u2019\u201d\u203a\u2e03\u2e05\u2e0a\u2e0d\u2e1d\u2e21'
|
|
58
59
|
|
|
@@ -60,7 +61,7 @@ Pi = u'\xab\u2018\u201b\u201c\u201f\u2039\u2e02\u2e04\u2e09\u2e0c\u2e1c\u2e20'
|
|
|
60
61
|
|
|
61
62
|
Po = u'!"#%&\'*,./:;?@\\\\\xa1\xb7\xbf\u037e\u0387\u055a\u055b\u055c\u055d\u055e\u055f\u0589\u05c0\u05c3\u05c6\u05f3\u05f4\u0609\u060a\u060c\u060d\u061b\u061e\u061f\u066a\u066b\u066c\u066d\u06d4\u0700\u0701\u0702\u0703\u0704\u0705\u0706\u0707\u0708\u0709\u070a\u070b\u070c\u070d\u07f7\u07f8\u07f9\u0830\u0831\u0832\u0833\u0834\u0835\u0836\u0837\u0838\u0839\u083a\u083b\u083c\u083d\u083e\u0964\u0965\u0970\u0df4\u0e4f\u0e5a\u0e5b\u0f04\u0f05\u0f06\u0f07\u0f08\u0f09\u0f0a\u0f0b\u0f0c\u0f0d\u0f0e\u0f0f\u0f10\u0f11\u0f12\u0f85\u0fd0\u0fd1\u0fd2\u0fd3\u0fd4\u104a\u104b\u104c\u104d\u104e\u104f\u10fb\u1361\u1362\u1363\u1364\u1365\u1366\u1367\u1368\u166d\u166e\u16eb\u16ec\u16ed\u1735\u1736\u17d4\u17d5\u17d6\u17d8\u17d9\u17da\u1800\u1801\u1802\u1803\u1804\u1805\u1807\u1808\u1809\u180a\u1944\u1945\u19de\u19df\u1a1e\u1a1f\u1aa0\u1aa1\u1aa2\u1aa3\u1aa4\u1aa5\u1aa6\u1aa8\u1aa9\u1aaa\u1aab\u1aac\u1aad\u1b5a\u1b5b\u1b5c\u1b5d\u1b5e\u1b5f\u1b60\u1c3b\u1c3c\u1c3d\u1c3e\u1c3f\u1c7e\u1c7f\u1cd3\u2016\u2017\u2020\u2021\u2022\u2023\u2024\u2025\u2026\u2027\u2030\u2031\u2032\u2033\u2034\u2035\u2036\u2037\u2038\u203b\u203c\u203d\u203e\u2041\u2042\u2043\u2047\u2048\u2049\u204a\u204b\u204c\u204d\u204e\u204f\u2050\u2051\u2053\u2055\u2056\u2057\u2058\u2059\u205a\u205b\u205c\u205d\u205e\u2cf9\u2cfa\u2cfb\u2cfc\u2cfe\u2cff\u2e00\u2e01\u2e06\u2e07\u2e08\u2e0b\u2e0e\u2e0f\u2e10\u2e11\u2e12\u2e13\u2e14\u2e15\u2e16\u2e18\u2e19\u2e1b\u2e1e\u2e1f\u2e2a\u2e2b\u2e2c\u2e2d\u2e2e\u2e30\u2e31\u3001\u3002\u3003\u303d\u30fb\ua4fe\ua4ff\ua60d\ua60e\ua60f\ua673\ua67e\ua6f2\ua6f3\ua6f4\ua6f5\ua6f6\ua6f7\ua874\ua875\ua876\ua877\ua8ce\ua8cf\ua8f8\ua8f9\ua8fa\ua92e\ua92f\ua95f\ua9c1\ua9c2\ua9c3\ua9c4\ua9c5\ua9c6\ua9c7\ua9c8\ua9c9\ua9ca\ua9cb\ua9cc\ua9cd\ua9de\ua9df\uaa5c\uaa5d\uaa5e\uaa5f\uaade\uaadf\uabeb\ufe10\ufe11\ufe12\ufe13\ufe14\ufe15\ufe16\ufe19\ufe30\ufe45\ufe46\ufe49\ufe4a\ufe4b\ufe4c\ufe50\ufe51\ufe52\ufe54\ufe55\ufe56\ufe57\ufe5f\ufe60\ufe61\ufe68\ufe6a\ufe6b\uff01\uff02\uff03\uff05\uff06\uff07\uff0a\uff0c\uff0e\uff0f\uff1a\uff1b\uff1f\uff20\uff3c\uff61\uff64\uff65'
|
|
62
63
|
|
|
63
|
-
Ps = u'([{\u0f3a\u0f3c\u169b\u201a\u201e\u2045\u207d\u208d\u2329\u2768\u276a\u276c\u276e\u2770\u2772\u2774\u27c5\u27e6\u27e8\u27ea\u27ec\u27ee\u2983\u2985\u2987\u2989\u298b\u298d\u298f\u2991\u2993\u2995\u2997\u29d8\u29da\u29fc\u2e22\u2e24\u2e26\u2e28\u3008\u300a\u300c\u300e\u3010\u3014\u3016\u3018\u301a\u301d\ufd3e\ufe17\ufe35\ufe37\ufe39\ufe3b\ufe3d\ufe3f\ufe41\ufe43\ufe47\ufe59\ufe5b\ufe5d\uff08\uff3b\uff5b\uff5f\uff62'
|
|
64
|
+
Ps = u'(\\[{\u0f3a\u0f3c\u169b\u201a\u201e\u2045\u207d\u208d\u2329\u2768\u276a\u276c\u276e\u2770\u2772\u2774\u27c5\u27e6\u27e8\u27ea\u27ec\u27ee\u2983\u2985\u2987\u2989\u298b\u298d\u298f\u2991\u2993\u2995\u2997\u29d8\u29da\u29fc\u2e22\u2e24\u2e26\u2e28\u3008\u300a\u300c\u300e\u3010\u3014\u3016\u3018\u301a\u301d\ufd3e\ufe17\ufe35\ufe37\ufe39\ufe3b\ufe3d\ufe3f\ufe41\ufe43\ufe47\ufe59\ufe5b\ufe5d\uff08\uff3b\uff5b\uff5f\uff62'
|
|
64
65
|
|
|
65
66
|
Sc = u'$\xa2\xa3\xa4\xa5\u060b\u09f2\u09f3\u09fb\u0af1\u0bf9\u0e3f\u17db\u20a0\u20a1\u20a2\u20a3\u20a4\u20a5\u20a6\u20a7\u20a8\u20a9\u20aa\u20ab\u20ac\u20ad\u20ae\u20af\u20b0\u20b1\u20b2\u20b3\u20b4\u20b5\u20b6\u20b7\u20b8\ua838\ufdfc\ufe69\uff04\uffe0\uffe1\uffe5\uffe6'
|
|
66
67
|
|
|
@@ -133,7 +134,7 @@ except UnicodeDecodeError:
|
|
|
133
134
|
Cs = '' # Jython can't handle isolated surrogates\n\n""" % repr(val).lstrip('u'))
|
|
134
135
|
else:
|
|
135
136
|
f.write('%s = %r\n\n' % (cat, val))
|
|
136
|
-
f.write('cats = %r\n\n' % sorted(categories
|
|
137
|
+
f.write('cats = %r\n\n' % sorted(categories))
|
|
137
138
|
f.write('# Generated from unidata %s\n\n' % (unicodedata.unidata_version,))
|
|
138
139
|
|
|
139
140
|
f.write(footer)
|
|
@@ -5,13 +5,12 @@
|
|
|
5
5
|
|
|
6
6
|
Utility functions.
|
|
7
7
|
|
|
8
|
-
:copyright: Copyright 2006-
|
|
8
|
+
:copyright: Copyright 2006-2014 by the Pygments team, see AUTHORS.
|
|
9
9
|
:license: BSD, see LICENSE for details.
|
|
10
10
|
"""
|
|
11
11
|
|
|
12
12
|
import re
|
|
13
13
|
import sys
|
|
14
|
-
import codecs
|
|
15
14
|
|
|
16
15
|
|
|
17
16
|
split_path_re = re.compile(r'[/\\ ]')
|
|
@@ -52,7 +51,7 @@ def get_bool_opt(options, optname, default=None):
|
|
|
52
51
|
return string
|
|
53
52
|
elif isinstance(string, int):
|
|
54
53
|
return bool(string)
|
|
55
|
-
elif not isinstance(string,
|
|
54
|
+
elif not isinstance(string, string_types):
|
|
56
55
|
raise OptionError('Invalid type %r for option %s; use '
|
|
57
56
|
'1/0, yes/no, true/false, on/off' % (
|
|
58
57
|
string, optname))
|
|
@@ -82,7 +81,7 @@ def get_int_opt(options, optname, default=None):
|
|
|
82
81
|
|
|
83
82
|
def get_list_opt(options, optname, default=None):
|
|
84
83
|
val = options.get(optname, default)
|
|
85
|
-
if isinstance(val,
|
|
84
|
+
if isinstance(val, string_types):
|
|
86
85
|
return val.split()
|
|
87
86
|
elif isinstance(val, (list, tuple)):
|
|
88
87
|
return list(val)
|
|
@@ -209,6 +208,11 @@ def looks_like_xml(text):
|
|
|
209
208
|
# Python narrow build compatibility
|
|
210
209
|
|
|
211
210
|
def _surrogatepair(c):
|
|
211
|
+
# Given a unicode character code
|
|
212
|
+
# with length greater than 16 bits,
|
|
213
|
+
# return the two 16 bit surrogate pair.
|
|
214
|
+
# From example D28 of:
|
|
215
|
+
# http://www.unicode.org/book/ch03.pdf
|
|
212
216
|
return (0xd7c0 + (c >> 10), (0xdc00 + (c & 0x3ff)))
|
|
213
217
|
|
|
214
218
|
def unirange(a, b):
|
|
@@ -253,25 +257,35 @@ def unirange(a, b):
|
|
|
253
257
|
|
|
254
258
|
# Python 2/3 compatibility
|
|
255
259
|
|
|
256
|
-
if sys.version_info < (3,0):
|
|
257
|
-
|
|
260
|
+
if sys.version_info < (3, 0):
|
|
261
|
+
unichr = unichr
|
|
262
|
+
xrange = xrange
|
|
263
|
+
string_types = (str, unicode)
|
|
264
|
+
text_type = unicode
|
|
258
265
|
u_prefix = 'u'
|
|
266
|
+
iteritems = dict.iteritems
|
|
267
|
+
itervalues = dict.itervalues
|
|
259
268
|
import StringIO, cStringIO
|
|
260
|
-
|
|
269
|
+
# unfortunately, io.StringIO in Python 2 doesn't accept str at all
|
|
261
270
|
StringIO = StringIO.StringIO
|
|
262
|
-
|
|
271
|
+
BytesIO = cStringIO.StringIO
|
|
263
272
|
else:
|
|
264
|
-
|
|
265
|
-
|
|
273
|
+
unichr = chr
|
|
274
|
+
xrange = range
|
|
275
|
+
string_types = (str,)
|
|
276
|
+
text_type = str
|
|
266
277
|
u_prefix = ''
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
+
iteritems = dict.items
|
|
279
|
+
itervalues = dict.values
|
|
280
|
+
from io import StringIO, BytesIO
|
|
281
|
+
|
|
282
|
+
def add_metaclass(metaclass):
|
|
283
|
+
"""Class decorator for creating a class with a metaclass."""
|
|
284
|
+
def wrapper(cls):
|
|
285
|
+
orig_vars = cls.__dict__.copy()
|
|
286
|
+
orig_vars.pop('__dict__', None)
|
|
287
|
+
orig_vars.pop('__weakref__', None)
|
|
288
|
+
for slots_var in orig_vars.get('__slots__', ()):
|
|
289
|
+
orig_vars.pop(slots_var)
|
|
290
|
+
return metaclass(cls.__name__, cls.__bases__, orig_vars)
|
|
291
|
+
return wrapper
|
|
@@ -7,13 +7,17 @@
|
|
|
7
7
|
Make sure each Python file has a correct file header
|
|
8
8
|
including copyright and license information.
|
|
9
9
|
|
|
10
|
-
:copyright: Copyright 2006-
|
|
10
|
+
:copyright: Copyright 2006-2014 by the Pygments team, see AUTHORS.
|
|
11
11
|
:license: BSD, see LICENSE for details.
|
|
12
12
|
"""
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
from __future__ import print_function
|
|
15
|
+
|
|
16
|
+
import io
|
|
17
|
+
import os
|
|
18
|
+
import re
|
|
19
|
+
import sys
|
|
15
20
|
import getopt
|
|
16
|
-
import cStringIO
|
|
17
21
|
from os.path import join, splitext, abspath
|
|
18
22
|
|
|
19
23
|
|
|
@@ -30,7 +34,7 @@ def checker(*suffixes, **kwds):
|
|
|
30
34
|
|
|
31
35
|
|
|
32
36
|
name_mail_re = r'[\w ]+(<.*?>)?'
|
|
33
|
-
copyright_re = re.compile(r'^ :copyright: Copyright 2006-
|
|
37
|
+
copyright_re = re.compile(r'^ :copyright: Copyright 2006-2014 by '
|
|
34
38
|
r'the Pygments team, see AUTHORS\.$', re.UNICODE)
|
|
35
39
|
copyright_2_re = re.compile(r'^ %s(, %s)*[,.]$' %
|
|
36
40
|
(name_mail_re, name_mail_re), re.UNICODE)
|
|
@@ -46,7 +50,7 @@ misspellings = ["developement", "adress", "verificate", # ALLOW-MISSPELLING
|
|
|
46
50
|
def check_syntax(fn, lines):
|
|
47
51
|
try:
|
|
48
52
|
compile(''.join(lines), fn, "exec")
|
|
49
|
-
except SyntaxError
|
|
53
|
+
except SyntaxError as err:
|
|
50
54
|
yield 0, "not compilable: %s" % err
|
|
51
55
|
|
|
52
56
|
|
|
@@ -67,9 +71,12 @@ def check_style_and_encoding(fn, lines):
|
|
|
67
71
|
encoding = co.group(1)
|
|
68
72
|
try:
|
|
69
73
|
line.decode(encoding)
|
|
70
|
-
except
|
|
74
|
+
except AttributeError:
|
|
75
|
+
# Python 3 - encoding was already checked
|
|
76
|
+
pass
|
|
77
|
+
except UnicodeDecodeError as err:
|
|
71
78
|
yield lno+1, "not decodable: %s\n Line: %r" % (err, line)
|
|
72
|
-
except LookupError
|
|
79
|
+
except LookupError as err:
|
|
73
80
|
yield 0, "unknown encoding: %s" % encoding
|
|
74
81
|
encoding = 'latin1'
|
|
75
82
|
|
|
@@ -130,7 +137,7 @@ def check_fileheader(fn, lines):
|
|
|
130
137
|
yield 0, "no correct license info"
|
|
131
138
|
|
|
132
139
|
ci = -3
|
|
133
|
-
copyright =
|
|
140
|
+
copyright = llist[ci:ci+1]
|
|
134
141
|
while copyright and copyright_2_re.match(copyright[0]):
|
|
135
142
|
ci -= 1
|
|
136
143
|
copyright = llist[ci:ci+1]
|
|
@@ -138,34 +145,11 @@ def check_fileheader(fn, lines):
|
|
|
138
145
|
yield 0, "no correct copyright info"
|
|
139
146
|
|
|
140
147
|
|
|
141
|
-
@checker('.py', '.html', '.js')
|
|
142
|
-
def check_whitespace_and_spelling(fn, lines):
|
|
143
|
-
for lno, line in enumerate(lines):
|
|
144
|
-
if "\t" in line:
|
|
145
|
-
yield lno+1, "OMG TABS!!!1 "
|
|
146
|
-
if line[:-1].rstrip(' \t') != line[:-1]:
|
|
147
|
-
yield lno+1, "trailing whitespace"
|
|
148
|
-
for word in misspellings:
|
|
149
|
-
if word in line and 'ALLOW-MISSPELLING' not in line:
|
|
150
|
-
yield lno+1, '"%s" used' % word
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
bad_tags = ('<b>', '<i>', '<u>', '<s>', '<strike>'
|
|
154
|
-
'<center>', '<big>', '<small>', '<font')
|
|
155
|
-
|
|
156
|
-
@checker('.html')
|
|
157
|
-
def check_xhtml(fn, lines):
|
|
158
|
-
for lno, line in enumerate(lines):
|
|
159
|
-
for bad_tag in bad_tags:
|
|
160
|
-
if bad_tag in line:
|
|
161
|
-
yield lno+1, "used " + bad_tag
|
|
162
|
-
|
|
163
|
-
|
|
164
148
|
def main(argv):
|
|
165
149
|
try:
|
|
166
150
|
gopts, args = getopt.getopt(argv[1:], "vi:")
|
|
167
151
|
except getopt.GetoptError:
|
|
168
|
-
print
|
|
152
|
+
print("Usage: %s [-v] [-i ignorepath]* [path]" % argv[0])
|
|
169
153
|
return 2
|
|
170
154
|
opts = {}
|
|
171
155
|
for opt, val in gopts:
|
|
@@ -178,20 +162,20 @@ def main(argv):
|
|
|
178
162
|
elif len(args) == 1:
|
|
179
163
|
path = args[0]
|
|
180
164
|
else:
|
|
181
|
-
print
|
|
165
|
+
print("Usage: %s [-v] [-i ignorepath]* [path]" % argv[0])
|
|
182
166
|
return 2
|
|
183
167
|
|
|
184
168
|
verbose = '-v' in opts
|
|
185
169
|
|
|
186
170
|
num = 0
|
|
187
|
-
out =
|
|
171
|
+
out = io.StringIO()
|
|
188
172
|
|
|
189
173
|
# TODO: replace os.walk run with iteration over output of
|
|
190
174
|
# `svn list -R`.
|
|
191
175
|
|
|
192
176
|
for root, dirs, files in os.walk(path):
|
|
193
|
-
if '.
|
|
194
|
-
dirs.remove('.
|
|
177
|
+
if '.hg' in dirs:
|
|
178
|
+
dirs.remove('.hg')
|
|
195
179
|
if '-i' in opts and abspath(root) in opts['-i']:
|
|
196
180
|
del dirs[:]
|
|
197
181
|
continue
|
|
@@ -212,13 +196,13 @@ def main(argv):
|
|
|
212
196
|
continue
|
|
213
197
|
|
|
214
198
|
if verbose:
|
|
215
|
-
print
|
|
199
|
+
print("Checking %s..." % fn)
|
|
216
200
|
|
|
217
201
|
try:
|
|
218
202
|
f = open(fn, 'r')
|
|
219
203
|
lines = list(f)
|
|
220
|
-
except (IOError, OSError)
|
|
221
|
-
print
|
|
204
|
+
except (IOError, OSError) as err:
|
|
205
|
+
print("%s: cannot open: %s" % (fn, err))
|
|
222
206
|
num += 1
|
|
223
207
|
continue
|
|
224
208
|
|
|
@@ -226,15 +210,15 @@ def main(argv):
|
|
|
226
210
|
if not in_pocoo_pkg and checker.only_pkg:
|
|
227
211
|
continue
|
|
228
212
|
for lno, msg in checker(fn, lines):
|
|
229
|
-
print
|
|
213
|
+
print(u"%s:%d: %s" % (fn, lno, msg), file=out)
|
|
230
214
|
num += 1
|
|
231
215
|
if verbose:
|
|
232
|
-
print
|
|
216
|
+
print()
|
|
233
217
|
if num == 0:
|
|
234
|
-
print
|
|
218
|
+
print("No errors found.")
|
|
235
219
|
else:
|
|
236
|
-
print
|
|
237
|
-
print
|
|
220
|
+
print(out.getvalue().rstrip('\n'))
|
|
221
|
+
print("%d error%s found." % (num, num > 1 and "s" or ""))
|
|
238
222
|
return int(num > 0)
|
|
239
223
|
|
|
240
224
|
|