pygments.rb 0.2.7 → 0.2.8
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.
- data/lib/pygments/version.rb +1 -1
- data/vendor/pygments-main/AUTHORS +2 -0
- data/vendor/pygments-main/CHANGES +11 -3
- data/vendor/pygments-main/REVISION +1 -1
- data/vendor/pygments-main/TODO +0 -2
- data/vendor/pygments-main/docs/generate.py +1 -1
- data/vendor/pygments-main/docs/src/tokens.txt +1 -1
- data/vendor/pygments-main/pygments/__init__.py +1 -1
- data/vendor/pygments-main/pygments/formatters/_mapping.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_mapping.py +4 -2
- data/vendor/pygments-main/pygments/lexers/agile.py +15 -15
- data/vendor/pygments-main/pygments/lexers/asm.py +4 -4
- data/vendor/pygments-main/pygments/lexers/compiled.py +9 -9
- data/vendor/pygments-main/pygments/lexers/dotnet.py +5 -5
- data/vendor/pygments-main/pygments/lexers/functional.py +13 -9
- data/vendor/pygments-main/pygments/lexers/hdl.py +21 -22
- data/vendor/pygments-main/pygments/lexers/jvm.py +178 -9
- data/vendor/pygments-main/pygments/lexers/math.py +4 -4
- data/vendor/pygments-main/pygments/lexers/other.py +31 -31
- data/vendor/pygments-main/pygments/lexers/parsers.py +3 -3
- data/vendor/pygments-main/pygments/lexers/shell.py +7 -6
- data/vendor/pygments-main/pygments/lexers/sql.py +4 -4
- data/vendor/pygments-main/pygments/lexers/templates.py +68 -21
- data/vendor/pygments-main/pygments/lexers/text.py +22 -21
- data/vendor/pygments-main/pygments/lexers/web.py +82 -79
- data/vendor/pygments-main/setup.py +1 -1
- data/vendor/pygments-main/tests/examplefiles/antlr_throws +1 -0
- data/vendor/pygments-main/tests/examplefiles/example.kt +47 -0
- data/vendor/pygments-main/tests/examplefiles/example.sh-session +2 -0
- data/vendor/pygments-main/tests/examplefiles/example.tea +34 -0
- data/vendor/pygments-main/tests/examplefiles/function.mu +1 -0
- metadata +14 -10
data/lib/pygments/version.rb
CHANGED
@@ -48,6 +48,7 @@ Other contributors, listed alphabetically, are:
|
|
48
48
|
* Ben Hollis -- Mason lexer
|
49
49
|
* Tim Howard -- BlitzMax lexer
|
50
50
|
* Ivan Inozemtsev -- Fantom lexer
|
51
|
+
* Brian R. Jackson -- Tea lexer
|
51
52
|
* Dennis Kaarsemaker -- sources.list lexer
|
52
53
|
* Igor Kalnitsky -- vhdl lexer
|
53
54
|
* Adam Koprowski -- Opa lexer
|
@@ -95,6 +96,7 @@ Other contributors, listed alphabetically, are:
|
|
95
96
|
* Kirill Simonov -- YAML lexer
|
96
97
|
* Steve Spigarelli -- XQuery lexer
|
97
98
|
* Jerome St-Louis -- eC lexer
|
99
|
+
* James Strachan -- Kotlin lexer
|
98
100
|
* Tiberius Teng -- default style overhaul
|
99
101
|
* Jeremy Thurgood -- Erlang, Squid config lexers
|
100
102
|
* Erick Tryzelaar -- Felix lexer
|
@@ -6,7 +6,7 @@ http://bitbucket.org/birkenfeld/pygments-main/issues.
|
|
6
6
|
|
7
7
|
Version 1.5
|
8
8
|
-----------
|
9
|
-
(codename
|
9
|
+
(codename Zeitdilatation, released Mar 10, 2012)
|
10
10
|
|
11
11
|
- Lexers added:
|
12
12
|
|
@@ -42,6 +42,8 @@ Version 1.5
|
|
42
42
|
* VHDL (PR#45)
|
43
43
|
* Scilab (#740)
|
44
44
|
* Elixir (PR#57)
|
45
|
+
* Tea (PR#56)
|
46
|
+
* Kotlin (PR#58)
|
45
47
|
|
46
48
|
- Fix Python 3 terminal highlighting with pygmentize (#691).
|
47
49
|
|
@@ -78,6 +80,12 @@ Version 1.5
|
|
78
80
|
|
79
81
|
- Add "rrt" style (#727).
|
80
82
|
|
83
|
+
- Fix infinite looping in Darcs Patch lexer.
|
84
|
+
|
85
|
+
- Lots of misc fixes to character-eating bugs and ordering problems in many
|
86
|
+
different lexers.
|
87
|
+
|
88
|
+
|
81
89
|
Version 1.4
|
82
90
|
-----------
|
83
91
|
(codename Unschärfe, released Jan 03, 2011)
|
@@ -343,7 +351,7 @@ Version 1.0
|
|
343
351
|
|
344
352
|
- Added Tango style, written by Andre Roberge for the Crunchy project.
|
345
353
|
|
346
|
-
- Added Python3TracebackLexer and ``python3`` option to
|
354
|
+
- Added Python3TracebackLexer and ``python3`` option to
|
347
355
|
PythonConsoleLexer.
|
348
356
|
|
349
357
|
- Fixed a few bugs in the Haskell lexer.
|
@@ -681,7 +689,7 @@ Version 0.7
|
|
681
689
|
|
682
690
|
- Added token stream filters, and a pygmentize option to use them.
|
683
691
|
|
684
|
-
- Changed behavior of `in` Operator for tokens.
|
692
|
+
- Changed behavior of `in` Operator for tokens.
|
685
693
|
|
686
694
|
- Added mimetypes for all lexers.
|
687
695
|
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
eff3aee4abff
|
data/vendor/pygments-main/TODO
CHANGED
@@ -56,7 +56,7 @@ def generate_lexer_docs():
|
|
56
56
|
classname,
|
57
57
|
cls.__doc__,
|
58
58
|
', '.join(data[2]) or 'None',
|
59
|
-
', '.join(data[3]).replace('*', '\\*') or 'None',
|
59
|
+
', '.join(data[3]).replace('*', '\\*').replace('_', '\\') or 'None',
|
60
60
|
', '.join(data[4]) or 'None'))
|
61
61
|
if module not in moduledocstrings:
|
62
62
|
moduledocstrings[module] = mod.__doc__
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
"""
|
3
3
|
pygments.formatters._mapping
|
4
|
-
|
4
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
5
5
|
|
6
6
|
Formatter mapping defintions. This file is generated by itself. Everytime
|
7
7
|
you change something on a builtin formatter defintion, run this script from
|
@@ -34,7 +34,7 @@ LEXERS = {
|
|
34
34
|
'AwkLexer': ('pygments.lexers.other', 'Awk', ('awk', 'gawk', 'mawk', 'nawk'), ('*.awk',), ('application/x-awk',)),
|
35
35
|
'BBCodeLexer': ('pygments.lexers.text', 'BBCode', ('bbcode',), (), ('text/x-bbcode',)),
|
36
36
|
'BaseMakefileLexer': ('pygments.lexers.text', 'Base Makefile', ('basemake',), (), ()),
|
37
|
-
'BashLexer': ('pygments.lexers.shell', 'Bash', ('bash', 'sh', 'ksh'), ('*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass'), ('application/x-sh', 'application/x-shellscript')),
|
37
|
+
'BashLexer': ('pygments.lexers.shell', 'Bash', ('bash', 'sh', 'ksh'), ('*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass', '.bashrc', 'bashrc', '.bash_*', 'bash_*'), ('application/x-sh', 'application/x-shellscript')),
|
38
38
|
'BashSessionLexer': ('pygments.lexers.shell', 'Bash Session', ('console',), ('*.sh-session',), ('application/x-shell-session',)),
|
39
39
|
'BatchLexer': ('pygments.lexers.shell', 'Batchfile', ('bat',), ('*.bat', '*.cmd'), ('application/x-dos-batch',)),
|
40
40
|
'BefungeLexer': ('pygments.lexers.other', 'Befunge', ('befunge',), ('*.befunge',), ('application/x-befunge',)),
|
@@ -131,6 +131,7 @@ LEXERS = {
|
|
131
131
|
'JavascriptPhpLexer': ('pygments.lexers.templates', 'JavaScript+PHP', ('js+php', 'javascript+php'), (), ('application/x-javascript+php', 'text/x-javascript+php', 'text/javascript+php')),
|
132
132
|
'JavascriptSmartyLexer': ('pygments.lexers.templates', 'JavaScript+Smarty', ('js+smarty', 'javascript+smarty'), (), ('application/x-javascript+smarty', 'text/x-javascript+smarty', 'text/javascript+smarty')),
|
133
133
|
'JspLexer': ('pygments.lexers.templates', 'Java Server Page', ('jsp',), ('*.jsp',), ('application/x-jsp',)),
|
134
|
+
'KotlinLexer': ('pygments.lexers.jvm', 'Kotlin', ('kotlin',), ('*.kt',), ('text/x-kotlin',)),
|
134
135
|
'LighttpdConfLexer': ('pygments.lexers.text', 'Lighttpd configuration file', ('lighty', 'lighttpd'), (), ('text/x-lighttpd-conf',)),
|
135
136
|
'LiterateHaskellLexer': ('pygments.lexers.functional', 'Literate Haskell', ('lhs', 'literate-haskell'), ('*.lhs',), ('text/x-literate-haskell',)),
|
136
137
|
'LlvmLexer': ('pygments.lexers.asm', 'LLVM', ('llvm',), ('*.ll',), ('text/x-llvm',)),
|
@@ -227,6 +228,7 @@ LEXERS = {
|
|
227
228
|
'SystemVerilogLexer': ('pygments.lexers.hdl', 'systemverilog', ('sv',), ('*.sv', '*.svh'), ('text/x-systemverilog',)),
|
228
229
|
'TclLexer': ('pygments.lexers.agile', 'Tcl', ('tcl',), ('*.tcl',), ('text/x-tcl', 'text/x-script.tcl', 'application/x-tcl')),
|
229
230
|
'TcshLexer': ('pygments.lexers.shell', 'Tcsh', ('tcsh', 'csh'), ('*.tcsh', '*.csh'), ('application/x-csh',)),
|
231
|
+
'TeaTemplateLexer': ('pygments.lexers.templates', 'Tea', ('tea',), ('*.tea',), ('text/x-tea',)),
|
230
232
|
'TexLexer': ('pygments.lexers.text', 'TeX', ('tex', 'latex'), ('*.tex', '*.aux', '*.toc'), ('text/x-tex', 'text/x-latex')),
|
231
233
|
'TextLexer': ('pygments.lexers.special', 'Text only', ('text',), ('*.txt',), ('text/plain',)),
|
232
234
|
'UrbiscriptLexer': ('pygments.lexers.other', 'UrbiScript', ('urbiscript',), ('*.u',), ('application/x-urbiscript',)),
|
@@ -238,7 +240,7 @@ LEXERS = {
|
|
238
240
|
'VelocityXmlLexer': ('pygments.lexers.templates', 'XML+Velocity', ('xml+velocity',), (), ('application/xml+velocity',)),
|
239
241
|
'VerilogLexer': ('pygments.lexers.hdl', 'verilog', ('v',), ('*.v',), ('text/x-verilog',)),
|
240
242
|
'VhdlLexer': ('pygments.lexers.hdl', 'vhdl', ('vhdl',), ('*.vhdl', '*.vhd'), ('text/x-vhdl',)),
|
241
|
-
'VimLexer': ('pygments.lexers.text', 'VimL', ('vim',), ('*.vim', '.vimrc', '.exrc', '.gvimrc', '_vimrc', '_exrc', '_gvimrc'), ('text/x-vim',)),
|
243
|
+
'VimLexer': ('pygments.lexers.text', 'VimL', ('vim',), ('*.vim', '.vimrc', '.exrc', '.gvimrc', '_vimrc', '_exrc', '_gvimrc', 'vimrc', 'gvimrc'), ('text/x-vim',)),
|
242
244
|
'XQueryLexer': ('pygments.lexers.web', 'XQuery', ('xquery', 'xqy'), ('*.xqy', '*.xquery'), ('text/xquery', 'application/xquery')),
|
243
245
|
'XmlDjangoLexer': ('pygments.lexers.templates', 'XML+Django/Jinja', ('xml+django', 'xml+jinja'), (), ('application/xml+django', 'application/xml+jinja')),
|
244
246
|
'XmlErbLexer': ('pygments.lexers.templates', 'XML+Ruby', ('xml+erb', 'xml+ruby'), (), ('application/xml+ruby',)),
|
@@ -381,7 +381,7 @@ class PythonTracebackLexer(RegexLexer):
|
|
381
381
|
bygroups(Text, Name.Builtin, Text, Number, Text)),
|
382
382
|
(r'^( )(.+)(\n)',
|
383
383
|
bygroups(Text, using(PythonLexer), Text)),
|
384
|
-
(r'^([ \t]*)(
|
384
|
+
(r'^([ \t]*)(\.\.\.)(\n)',
|
385
385
|
bygroups(Text, Comment, Text)), # for doctests...
|
386
386
|
(r'^(.+)(: )(.+)(\n)',
|
387
387
|
bygroups(Generic.Error, Text, Name, Text), '#pop'),
|
@@ -417,7 +417,7 @@ class Python3TracebackLexer(RegexLexer):
|
|
417
417
|
bygroups(Text, Name.Builtin, Text, Number, Text, Name, Text)),
|
418
418
|
(r'^( )(.+)(\n)',
|
419
419
|
bygroups(Text, using(Python3Lexer), Text)),
|
420
|
-
(r'^([ \t]*)(
|
420
|
+
(r'^([ \t]*)(\.\.\.)(\n)',
|
421
421
|
bygroups(Text, Comment, Text)), # for doctests...
|
422
422
|
(r'^(.+)(: )(.+)(\n)',
|
423
423
|
bygroups(Generic.Error, Text, Name, Text), '#pop'),
|
@@ -506,7 +506,7 @@ class RubyLexer(ExtendedRegexLexer):
|
|
506
506
|
states = {}
|
507
507
|
states['strings'] = [
|
508
508
|
# easy ones
|
509
|
-
(r'\:@{0,2}([a-zA-Z_]
|
509
|
+
(r'\:@{0,2}([a-zA-Z_]\w*[\!\?]?|\*\*?|[-+]@?|'
|
510
510
|
r'[/%&|^`~]|\[\]=?|<<|>>|<=?>|>=?|===?)', String.Symbol),
|
511
511
|
(r":'(\\\\|\\'|[^'])*'", String.Symbol),
|
512
512
|
(r"'(\\\\|\\'|[^'])*'", String.Single),
|
@@ -703,7 +703,7 @@ class RubyLexer(ExtendedRegexLexer):
|
|
703
703
|
# like keywords (class) or like this: ` ?!?
|
704
704
|
(r'(\.|::)([a-zA-Z_]\w*[\!\?]?|[*%&^`~+-/\[<>=])',
|
705
705
|
bygroups(Operator, Name)),
|
706
|
-
(r'[a-zA-Z_]
|
706
|
+
(r'[a-zA-Z_]\w*[\!\?]?', Name),
|
707
707
|
(r'(\[|\]|\*\*|<<?|>>?|>=|<=|<=>|=~|={3}|'
|
708
708
|
r'!~|&&?|\|\||\.{1,3})', Operator),
|
709
709
|
(r'[-+/*%=<>&!^|~]=?', Operator),
|
@@ -713,7 +713,7 @@ class RubyLexer(ExtendedRegexLexer):
|
|
713
713
|
'funcname': [
|
714
714
|
(r'\(', Punctuation, 'defexpr'),
|
715
715
|
(r'(?:([a-zA-Z_][a-zA-Z0-9_]*)(\.))?'
|
716
|
-
r'([a-zA-Z_]
|
716
|
+
r'([a-zA-Z_]\w*[\!\?]?|\*\*?|[-+]@?|'
|
717
717
|
r'[/%&|^`~]|\[\]=?|<<|>>|<=?>|>=?|===?)',
|
718
718
|
bygroups(Name.Class, Operator, Name.Function), '#pop'),
|
719
719
|
(r'', Text, '#pop')
|
@@ -721,7 +721,7 @@ class RubyLexer(ExtendedRegexLexer):
|
|
721
721
|
'classname': [
|
722
722
|
(r'\(', Punctuation, 'defexpr'),
|
723
723
|
(r'<<', Operator, '#pop'),
|
724
|
-
(r'[A-Z_]
|
724
|
+
(r'[A-Z_]\w*', Name.Class, '#pop'),
|
725
725
|
(r'', Text, '#pop')
|
726
726
|
],
|
727
727
|
'defexpr': [
|
@@ -924,7 +924,7 @@ class PerlLexer(RegexLexer):
|
|
924
924
|
(r'(q|qq|qw|qr|qx)([^a-zA-Z0-9])(.|\n)*?\2', String.Other),
|
925
925
|
(r'package\s+', Keyword, 'modulename'),
|
926
926
|
(r'sub\s+', Keyword, 'funcname'),
|
927
|
-
(r'(\[\]
|
927
|
+
(r'(\[\]|\*\*|::|<<|>>|>=|<=>|<=|={3}|!=|=~|'
|
928
928
|
r'!~|&&?|\|\||\.{1,3})', Operator),
|
929
929
|
(r'[-+/*%=<>&^|!\\~]=?', Operator),
|
930
930
|
(r'[\(\)\[\]:;,<>/\?\{\}]', Punctuation), # yes, there's no shortage
|
@@ -949,10 +949,10 @@ class PerlLexer(RegexLexer):
|
|
949
949
|
(r'(?=[^a-zA-Z0-9_])', Text, '#pop'),
|
950
950
|
],
|
951
951
|
'modulename': [
|
952
|
-
(r'[a-zA-Z_]
|
952
|
+
(r'[a-zA-Z_]\w*', Name.Namespace, '#pop')
|
953
953
|
],
|
954
954
|
'funcname': [
|
955
|
-
(r'[a-zA-Z_]
|
955
|
+
(r'[a-zA-Z_]\w*[\!\?]?', Name.Function),
|
956
956
|
(r'\s+', Text),
|
957
957
|
# argument declaration
|
958
958
|
(r'(\([$@%]*\))(\s*)', bygroups(Punctuation, Text)),
|
@@ -1151,13 +1151,13 @@ class MoonScriptLexer(LuaLexer):
|
|
1151
1151
|
(r'(?s)\[(=*)\[.*?\]\1\]', String),
|
1152
1152
|
(r'(->|=>)', Name.Function),
|
1153
1153
|
(r':[a-zA-Z_][a-zA-Z0-9_]*', Name.Variable),
|
1154
|
-
(r'(
|
1154
|
+
(r'(==|!=|~=|<=|>=|\.\.\.|\.\.|[=+\-*/%^<>#!.\\:])', Operator),
|
1155
1155
|
(r'[;,]', Punctuation),
|
1156
1156
|
(r'[\[\]\{\}\(\)]', Keyword.Type),
|
1157
1157
|
(r'[a-zA-Z_][a-zA-Z0-9_]*:', Name.Variable),
|
1158
1158
|
(r"(class|extends|if|then|super|do|with|import|export|"
|
1159
|
-
|
1160
|
-
|
1159
|
+
r"while|elseif|return|for|in|from|when|using|else|"
|
1160
|
+
r"and|or|not|switch|break)\b", Keyword),
|
1161
1161
|
(r'(true|false|nil)\b', Keyword.Constant),
|
1162
1162
|
(r'(and|or|not)\b', Operator.Word),
|
1163
1163
|
(r'(self)\b', Name.Builtin.Pseudo),
|
@@ -1286,7 +1286,7 @@ class IoLexer(RegexLexer):
|
|
1286
1286
|
# constants
|
1287
1287
|
(r'(nil|false|true)\b', Name.Constant),
|
1288
1288
|
# names
|
1289
|
-
('(Object|list|List|Map|args|Sequence|Coroutine|File)\b',
|
1289
|
+
(r'(Object|list|List|Map|args|Sequence|Coroutine|File)\b',
|
1290
1290
|
Name.Builtin),
|
1291
1291
|
('[a-zA-Z_][a-zA-Z0-9_]*', Name),
|
1292
1292
|
# numbers
|
@@ -1378,7 +1378,7 @@ class TclLexer(RegexLexer):
|
|
1378
1378
|
'params': [
|
1379
1379
|
(r';', Keyword, '#pop'),
|
1380
1380
|
(r'\n', Text, '#pop'),
|
1381
|
-
(r'(else|elseif|then)', Keyword),
|
1381
|
+
(r'(else|elseif|then)\b', Keyword),
|
1382
1382
|
include('basic'),
|
1383
1383
|
include('data'),
|
1384
1384
|
],
|
@@ -1785,7 +1785,7 @@ class FancyLexer(RegexLexer):
|
|
1785
1785
|
('[A-Z][a-zA-Z0-9_]*', Name.Constant),
|
1786
1786
|
('@[a-zA-Z_][a-zA-Z0-9_]*', Name.Variable.Instance),
|
1787
1787
|
('@@[a-zA-Z_][a-zA-Z0-9_]*', Name.Variable.Class),
|
1788
|
-
('
|
1788
|
+
('@@?', Operator),
|
1789
1789
|
('[a-zA-Z_][a-zA-Z0-9_]*', Name),
|
1790
1790
|
# numbers - / checks are necessary to avoid mismarking regexes,
|
1791
1791
|
# see comment in RubyLexer
|
@@ -136,17 +136,17 @@ class ObjdumpLexer(RegexLexer):
|
|
136
136
|
('( *)('+hex+r'+:)(\t)((?:'+hex+hex+' )+)$',
|
137
137
|
bygroups(Text, Name.Label, Text, Number.Hex)),
|
138
138
|
# Skipped a few bytes
|
139
|
-
('\t\.\.\.$', Text),
|
139
|
+
(r'\t\.\.\.$', Text),
|
140
140
|
# Relocation line
|
141
141
|
# (With offset)
|
142
|
-
('(\t\t\t)('+hex+'+:)( )([^\t]+)(\t)(.*?)([-+])(0x' + hex + '+)$',
|
142
|
+
(r'(\t\t\t)('+hex+r'+:)( )([^\t]+)(\t)(.*?)([-+])(0x' + hex + '+)$',
|
143
143
|
bygroups(Text, Name.Label, Text, Name.Property, Text,
|
144
144
|
Name.Constant, Punctuation, Number.Hex)),
|
145
145
|
# (Without offset)
|
146
|
-
('(\t\t\t)('+hex+'+:)( )([^\t]+)(\t)(.*?)$',
|
146
|
+
(r'(\t\t\t)('+hex+r'+:)( )([^\t]+)(\t)(.*?)$',
|
147
147
|
bygroups(Text, Name.Label, Text, Name.Property, Text,
|
148
148
|
Name.Constant)),
|
149
|
-
('[^\n]+\n', Other)
|
149
|
+
(r'[^\n]+\n', Other)
|
150
150
|
]
|
151
151
|
}
|
152
152
|
|
@@ -1058,7 +1058,7 @@ class DylanLexer(RegexLexer):
|
|
1058
1058
|
tokens = {
|
1059
1059
|
'root': [
|
1060
1060
|
(r'\b(subclass|abstract|block|c(on(crete|stant)|lass)|domain'
|
1061
|
-
r'|ex(c(eption|lude)|port)|f(unction(
|
1061
|
+
r'|ex(c(eption|lude)|port)|f(unction(al)?)|generic|handler'
|
1062
1062
|
r'|i(n(herited|line|stance|terface)|mport)|library|m(acro|ethod)'
|
1063
1063
|
r'|open|primary|sealed|si(deways|ngleton)|slot'
|
1064
1064
|
r'|v(ariable|irtual))\b', Name.Builtin),
|
@@ -1068,7 +1068,7 @@ class DylanLexer(RegexLexer):
|
|
1068
1068
|
(r'"', String, 'string'),
|
1069
1069
|
(r"'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'", String.Char),
|
1070
1070
|
(r'=>|\b(a(bove|fterwards)|b(e(gin|low)|y)|c(ase|leanup|reate)'
|
1071
|
-
r'|define|else(
|
1071
|
+
r'|define|else(if)?|end|f(inally|or|rom)|i[fn]|l(et|ocal)|otherwise'
|
1072
1072
|
r'|rename|s(elect|ignal)|t(hen|o)|u(n(less|til)|se)|wh(en|ile))\b',
|
1073
1073
|
Keyword),
|
1074
1074
|
(r'([ \t])([!\$%&\*\/:<=>\?~_^a-zA-Z0-9.+\-]*:)',
|
@@ -2186,7 +2186,7 @@ class AdaLexer(RegexLexer):
|
|
2186
2186
|
'end' : [
|
2187
2187
|
('(if|case|record|loop|select)', Keyword.Reserved),
|
2188
2188
|
('"[^"]+"|[a-zA-Z0-9_.]+', Name.Function),
|
2189
|
-
('
|
2189
|
+
('\s+', Text),
|
2190
2190
|
(';', Punctuation, '#pop'),
|
2191
2191
|
],
|
2192
2192
|
'type_def': [
|
@@ -2572,7 +2572,7 @@ class NimrodLexer(RegexLexer):
|
|
2572
2572
|
(r'##.*$', String.Doc),
|
2573
2573
|
(r'#.*$', Comment),
|
2574
2574
|
(r'\*|=|>|<|\+|-|/|@|\$|~|&|%|\!|\?|\||\\|\[|\]', Operator),
|
2575
|
-
(r'
|
2575
|
+
(r'\.\.|\.|,|\[\.|\.\]|{\.|\.}|\(\.|\.\)|{|}|\(|\)|:|\^|`|;',
|
2576
2576
|
Punctuation),
|
2577
2577
|
|
2578
2578
|
# Strings
|
@@ -2679,7 +2679,7 @@ class FantomLexer(RegexLexer):
|
|
2679
2679
|
id = r'[a-zA-Z_][a-zA-Z0-9_]*',
|
2680
2680
|
# all chars which can be part of type definition. Starts with
|
2681
2681
|
# either letter, or [ (maps), or | (funcs)
|
2682
|
-
type = r'(?:\[|[a-zA-Z_]|\|)[:\
|
2682
|
+
type = r'(?:\[|[a-zA-Z_]|\|)[:\w\[\]\|\->\?]*?',
|
2683
2683
|
)
|
2684
2684
|
)
|
2685
2685
|
|
@@ -2810,7 +2810,7 @@ class FantomLexer(RegexLexer):
|
|
2810
2810
|
|
2811
2811
|
### ArgType argName, #####
|
2812
2812
|
(s(r'($type)(\s+)($id)(\s*)(,)'),
|
2813
|
-
bygroups(using(this, state=
|
2813
|
+
bygroups(using(this, state='inType'), Text, Name.Variable,
|
2814
2814
|
Text, Punctuation)),
|
2815
2815
|
|
2816
2816
|
#### ArgType argName) ####
|
@@ -2818,13 +2818,13 @@ class FantomLexer(RegexLexer):
|
|
2818
2818
|
|
2819
2819
|
### ArgType argName -> ArgType| ###
|
2820
2820
|
(s(r'($type)(\s+)($id)(\s*)(\->)(\s*)($type)(\|)'),
|
2821
|
-
bygroups(using(this, state=
|
2821
|
+
bygroups(using(this, state='inType'), Text, Name.Variable,
|
2822
2822
|
Text, Punctuation, Text, using(this, state = 'inType'),
|
2823
2823
|
Punctuation)),
|
2824
2824
|
|
2825
2825
|
### ArgType argName| ###
|
2826
2826
|
(s(r'($type)(\s+)($id)(\s*)(\|)'),
|
2827
|
-
bygroups(using(this, state=
|
2827
|
+
bygroups(using(this, state='inType'), Text, Name.Variable,
|
2828
2828
|
Text, Punctuation)),
|
2829
2829
|
|
2830
2830
|
### Type var
|
@@ -2843,7 +2843,7 @@ class FantomLexer(RegexLexer):
|
|
2843
2843
|
'insideMethodDeclArgs': [
|
2844
2844
|
(r'\)', Punctuation, '#pop'),
|
2845
2845
|
(s(r'($type)(\s+)($id)(\s*)(\))'),
|
2846
|
-
bygroups(using(this, state=
|
2846
|
+
bygroups(using(this, state='inType'), Text, Name.Variable,
|
2847
2847
|
Text, Punctuation), '#pop'),
|
2848
2848
|
include('root'),
|
2849
2849
|
],
|
@@ -344,7 +344,7 @@ class BooLexer(RegexLexer):
|
|
344
344
|
(r"'(\\\\|\\'|[^']*?)'", String.Single),
|
345
345
|
(r'[a-zA-Z_][a-zA-Z0-9_]*', Name),
|
346
346
|
(r'(\d+\.\d*|\d*\.\d+)([fF][+-]?[0-9]+)?', Number.Float),
|
347
|
-
(r'[0-9][0-9\.]*(
|
347
|
+
(r'[0-9][0-9\.]*(ms?|d|h|s)', Number),
|
348
348
|
(r'0\d+', Number.Oct),
|
349
349
|
(r'0x[a-fA-F0-9]+', Number.Hex),
|
350
350
|
(r'\d+L', Number.Integer.Long),
|
@@ -559,10 +559,10 @@ class FSharpLexer(RegexLexer):
|
|
559
559
|
'with', 'yield', 'yield!'
|
560
560
|
]
|
561
561
|
keyopts = [
|
562
|
-
'!=','#','
|
563
|
-
'
|
564
|
-
'
|
565
|
-
']','_','`','{','
|
562
|
+
'!=','#','&&','&','\(','\)','\*','\+',',','-\.',
|
563
|
+
'->','-','\.\.','\.','::',':=',':>',':',';;',';','<-',
|
564
|
+
'<','>]','>','\?\?','\?','\[<','\[>','\[\|','\[',
|
565
|
+
']','_','`','{','\|\]','\|','}','~','<@','=','@>'
|
566
566
|
]
|
567
567
|
|
568
568
|
operators = r'[!$%&*+\./:<=>?@^|~-]'
|
@@ -113,7 +113,7 @@ class SchemeLexer(RegexLexer):
|
|
113
113
|
# strings, symbols and characters
|
114
114
|
(r'"(\\\\|\\"|[^"])*"', String),
|
115
115
|
(r"'" + valid_name, String.Symbol),
|
116
|
-
(r"#\\([()/'\".
|
116
|
+
(r"#\\([()/'\"._!§$%& ?=+-]{1}|[a-zA-Z0-9]+)", String.Char),
|
117
117
|
|
118
118
|
# constants
|
119
119
|
(r'(#t|#f)', Name.Constant),
|
@@ -560,7 +560,10 @@ class SMLLexer(RegexLexer):
|
|
560
560
|
return [
|
561
561
|
(r'[^"\\]', whatkind),
|
562
562
|
(r'\\[\\\"abtnvfr]', String.Escape),
|
563
|
-
|
563
|
+
# Control-character notation is used for codes < 32,
|
564
|
+
# where \^@ == \000
|
565
|
+
(r'\\\^[\x40-\x5e]', String.Escape),
|
566
|
+
# Docs say 'decimal digits'
|
564
567
|
(r'\\[0-9]{3}', String.Escape),
|
565
568
|
(r'\\u[0-9a-fA-F]{4}', String.Escape),
|
566
569
|
(r'\\\s+\\', String.Interpol),
|
@@ -885,9 +888,9 @@ class OcamlLexer(RegexLexer):
|
|
885
888
|
(r'\b([A-Z][A-Za-z0-9_\']*)(?=\s*\.)',
|
886
889
|
Name.Namespace, 'dotted'),
|
887
890
|
(r'\b([A-Z][A-Za-z0-9_\']*)', Name.Class),
|
888
|
-
(r'\(\*', Comment, 'comment'),
|
891
|
+
(r'\(\*(?![)])', Comment, 'comment'),
|
889
892
|
(r'\b(%s)\b' % '|'.join(keywords), Keyword),
|
890
|
-
(r'(%s)' % '|'.join(keyopts), Operator),
|
893
|
+
(r'(%s)' % '|'.join(keyopts[::-1]), Operator),
|
891
894
|
(r'(%s|%s)?%s' % (infix_syms, prefix_syms, operators), Operator),
|
892
895
|
(r'\b(%s)\b' % '|'.join(word_operators), Operator.Word),
|
893
896
|
(r'\b(%s)\b' % '|'.join(primitives), Keyword.Type),
|
@@ -980,7 +983,7 @@ class ErlangLexer(RegexLexer):
|
|
980
983
|
'universaltime_to_localtime', 'unlink', 'unregister', 'whereis'
|
981
984
|
]
|
982
985
|
|
983
|
-
operators = r'(
|
986
|
+
operators = r'(\+\+?|--?|\*|/|<|>|/=|=:=|=/=|=<|>=|==?|<-|!|\?)'
|
984
987
|
word_operators = [
|
985
988
|
'and', 'andalso', 'band', 'bnot', 'bor', 'bsl', 'bsr', 'bxor',
|
986
989
|
'div', 'not', 'or', 'orelse', 'rem', 'xor'
|
@@ -1494,7 +1497,7 @@ class CoqLexer(RegexLexer):
|
|
1494
1497
|
(r'\b([A-Z][A-Za-z0-9_\']*)(?=\s*\.)',
|
1495
1498
|
Name.Namespace, 'dotted'),
|
1496
1499
|
(r'\b([A-Z][A-Za-z0-9_\']*)', Name.Class),
|
1497
|
-
(r'(%s)' % '|'.join(keyopts), Operator),
|
1500
|
+
(r'(%s)' % '|'.join(keyopts[::-1]), Operator),
|
1498
1501
|
(r'(%s|%s)?%s' % (infix_syms, prefix_syms, operators), Operator),
|
1499
1502
|
(r'\b(%s)\b' % '|'.join(word_operators), Operator.Word),
|
1500
1503
|
(r'\b(%s)\b' % '|'.join(primitives), Keyword.Type),
|
@@ -1704,13 +1707,14 @@ class ElixirLexer(RegexLexer):
|
|
1704
1707
|
r'<=>|&&?|%\(\)|%\[\]|%\{\}|\+\+?|\-\-?|\|\|?|\!|//|[%&`/\|]|'
|
1705
1708
|
r'\*\*?|=?~|<\-)|([a-zA-Z_]\w*([?!])?)(:)(?!:)', String.Symbol),
|
1706
1709
|
(r':"', String.Symbol, 'interpoling_symbol'),
|
1707
|
-
(r'\b(nil|true|false)\b(?![?!])
|
1710
|
+
(r'\b(nil|true|false)\b(?![?!])', Name.Constant),
|
1711
|
+
(r'\b[A-Z]\w*\b', Name.Constant),
|
1708
1712
|
(r'\b(__(FILE|LINE|MODULE|STOP_ITERATOR|EXCEPTION|OP|REF|FUNCTION|'
|
1709
1713
|
r'BLOCK|KVBLOCK)__)\b(?![?!])', Name.Builtin.Pseudo),
|
1710
|
-
(r'[a-zA-Z_]
|
1714
|
+
(r'[a-zA-Z_!]\w*[!\?]?', Name),
|
1711
1715
|
(r'[(){};,/\|:\\\[\]]', Punctuation),
|
1712
1716
|
(r'@[a-zA-Z_]\w*|&\d', Name.Variable),
|
1713
|
-
(r'\b(0[xX][0-9A-Fa-f]+|\d(_?\d)*(\.(?![
|
1717
|
+
(r'\b(0[xX][0-9A-Fa-f]+|\d(_?\d)*(\.(?![^\d\s])'
|
1714
1718
|
r'(_?\d)*)?([eE][-+]?\d(_?\d)*)?|0[bB][01]+)\b', Number),
|
1715
1719
|
include('strings'),
|
1716
1720
|
],
|