rouge 3.2.1 → 3.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +2 -0
- data/bin/rougify +1 -0
- data/lib/rouge.rb +1 -0
- data/lib/rouge/cli.rb +2 -1
- data/lib/rouge/demos/jsp +29 -0
- data/lib/rouge/demos/m68k +16 -0
- data/lib/rouge/demos/mathematica +8 -0
- data/lib/rouge/demos/sqf +14 -0
- data/lib/rouge/formatter.rb +2 -1
- data/lib/rouge/formatters/html.rb +1 -0
- data/lib/rouge/formatters/html_inline.rb +1 -0
- data/lib/rouge/formatters/html_legacy.rb +1 -0
- data/lib/rouge/formatters/html_linewise.rb +1 -0
- data/lib/rouge/formatters/html_pygments.rb +2 -0
- data/lib/rouge/formatters/html_table.rb +2 -1
- data/lib/rouge/formatters/null.rb +1 -0
- data/lib/rouge/formatters/terminal256.rb +1 -0
- data/lib/rouge/guesser.rb +2 -0
- data/lib/rouge/guessers/disambiguation.rb +5 -0
- data/lib/rouge/guessers/filename.rb +2 -0
- data/lib/rouge/guessers/glob_mapping.rb +2 -0
- data/lib/rouge/guessers/mimetype.rb +2 -0
- data/lib/rouge/guessers/modeline.rb +2 -0
- data/lib/rouge/guessers/source.rb +2 -0
- data/lib/rouge/guessers/util.rb +2 -0
- data/lib/rouge/lexer.rb +1 -0
- data/lib/rouge/lexers/abap.rb +2 -0
- data/lib/rouge/lexers/actionscript.rb +1 -0
- data/lib/rouge/lexers/apache.rb +2 -0
- data/lib/rouge/lexers/apiblueprint.rb +2 -0
- data/lib/rouge/lexers/apple_script.rb +2 -0
- data/lib/rouge/lexers/awk.rb +1 -0
- data/lib/rouge/lexers/biml.rb +2 -0
- data/lib/rouge/lexers/bsl.rb +1 -0
- data/lib/rouge/lexers/c.rb +1 -0
- data/lib/rouge/lexers/ceylon.rb +1 -0
- data/lib/rouge/lexers/cfscript.rb +1 -0
- data/lib/rouge/lexers/clojure.rb +1 -0
- data/lib/rouge/lexers/cmake.rb +1 -0
- data/lib/rouge/lexers/coffeescript.rb +1 -0
- data/lib/rouge/lexers/common_lisp.rb +1 -0
- data/lib/rouge/lexers/conf.rb +1 -0
- data/lib/rouge/lexers/console.rb +1 -0
- data/lib/rouge/lexers/coq.rb +1 -0
- data/lib/rouge/lexers/cpp.rb +1 -0
- data/lib/rouge/lexers/crystal.rb +1 -0
- data/lib/rouge/lexers/csharp.rb +1 -0
- data/lib/rouge/lexers/css.rb +1 -0
- data/lib/rouge/lexers/d.rb +1 -0
- data/lib/rouge/lexers/dart.rb +1 -0
- data/lib/rouge/lexers/diff.rb +2 -0
- data/lib/rouge/lexers/digdag.rb +2 -0
- data/lib/rouge/lexers/docker.rb +1 -0
- data/lib/rouge/lexers/dot.rb +1 -0
- data/lib/rouge/lexers/eiffel.rb +1 -0
- data/lib/rouge/lexers/elixir.rb +2 -1
- data/lib/rouge/lexers/elm.rb +1 -0
- data/lib/rouge/lexers/erb.rb +1 -0
- data/lib/rouge/lexers/erlang.rb +1 -0
- data/lib/rouge/lexers/factor.rb +1 -0
- data/lib/rouge/lexers/fortran.rb +2 -0
- data/lib/rouge/lexers/fsharp.rb +2 -1
- data/lib/rouge/lexers/gherkin.rb +1 -0
- data/lib/rouge/lexers/gherkin/keywords.rb +2 -0
- data/lib/rouge/lexers/glsl.rb +1 -0
- data/lib/rouge/lexers/go.rb +1 -0
- data/lib/rouge/lexers/gradle.rb +1 -0
- data/lib/rouge/lexers/graphql.rb +1 -0
- data/lib/rouge/lexers/groovy.rb +1 -0
- data/lib/rouge/lexers/hack.rb +1 -0
- data/lib/rouge/lexers/haml.rb +1 -0
- data/lib/rouge/lexers/handlebars.rb +1 -0
- data/lib/rouge/lexers/haskell.rb +1 -0
- data/lib/rouge/lexers/hcl.rb +1 -0
- data/lib/rouge/lexers/html.rb +1 -0
- data/lib/rouge/lexers/http.rb +1 -0
- data/lib/rouge/lexers/hylang.rb +1 -0
- data/lib/rouge/lexers/idlang.rb +2 -0
- data/lib/rouge/lexers/igorpro.rb +1 -0
- data/lib/rouge/lexers/ini.rb +1 -0
- data/lib/rouge/lexers/io.rb +1 -0
- data/lib/rouge/lexers/irb.rb +1 -0
- data/lib/rouge/lexers/java.rb +1 -0
- data/lib/rouge/lexers/javascript.rb +1 -0
- data/lib/rouge/lexers/jinja.rb +1 -0
- data/lib/rouge/lexers/json.rb +1 -0
- data/lib/rouge/lexers/json_doc.rb +1 -0
- data/lib/rouge/lexers/jsonnet.rb +1 -0
- data/lib/rouge/lexers/jsp.rb +120 -0
- data/lib/rouge/lexers/jsx.rb +2 -0
- data/lib/rouge/lexers/julia.rb +1 -0
- data/lib/rouge/lexers/kotlin.rb +64 -16
- data/lib/rouge/lexers/lasso.rb +1 -0
- data/lib/rouge/lexers/liquid.rb +1 -0
- data/lib/rouge/lexers/literate_coffeescript.rb +1 -0
- data/lib/rouge/lexers/literate_haskell.rb +1 -0
- data/lib/rouge/lexers/llvm.rb +1 -0
- data/lib/rouge/lexers/lua.rb +1 -0
- data/lib/rouge/lexers/lua/builtins.rb +2 -0
- data/lib/rouge/lexers/m68k.rb +144 -0
- data/lib/rouge/lexers/make.rb +1 -0
- data/lib/rouge/lexers/markdown.rb +1 -0
- data/lib/rouge/lexers/mathematica.rb +96 -0
- data/lib/rouge/lexers/mathematica/builtins.rb +13 -0
- data/lib/rouge/lexers/matlab.rb +1 -0
- data/lib/rouge/lexers/matlab/builtins.rb +2 -0
- data/lib/rouge/lexers/moonscript.rb +1 -0
- data/lib/rouge/lexers/mosel.rb +1 -0
- data/lib/rouge/lexers/mxml.rb +1 -0
- data/lib/rouge/lexers/nasm.rb +1 -0
- data/lib/rouge/lexers/nginx.rb +1 -0
- data/lib/rouge/lexers/nim.rb +1 -0
- data/lib/rouge/lexers/nix.rb +1 -0
- data/lib/rouge/lexers/objective_c.rb +2 -1
- data/lib/rouge/lexers/ocaml.rb +1 -0
- data/lib/rouge/lexers/pascal.rb +1 -0
- data/lib/rouge/lexers/perl.rb +1 -0
- data/lib/rouge/lexers/php.rb +1 -0
- data/lib/rouge/lexers/php/builtins.rb +2 -0
- data/lib/rouge/lexers/plain_text.rb +1 -0
- data/lib/rouge/lexers/plist.rb +2 -0
- data/lib/rouge/lexers/pony.rb +1 -0
- data/lib/rouge/lexers/powershell.rb +1 -0
- data/lib/rouge/lexers/praat.rb +1 -0
- data/lib/rouge/lexers/prolog.rb +2 -0
- data/lib/rouge/lexers/prometheus.rb +2 -0
- data/lib/rouge/lexers/properties.rb +1 -0
- data/lib/rouge/lexers/protobuf.rb +1 -0
- data/lib/rouge/lexers/puppet.rb +2 -1
- data/lib/rouge/lexers/python.rb +35 -20
- data/lib/rouge/lexers/q.rb +2 -0
- data/lib/rouge/lexers/qml.rb +1 -0
- data/lib/rouge/lexers/r.rb +1 -0
- data/lib/rouge/lexers/racket.rb +2 -0
- data/lib/rouge/lexers/ruby.rb +3 -1
- data/lib/rouge/lexers/rust.rb +7 -1
- data/lib/rouge/lexers/sass.rb +1 -0
- data/lib/rouge/lexers/sass/common.rb +1 -0
- data/lib/rouge/lexers/scala.rb +1 -0
- data/lib/rouge/lexers/scheme.rb +1 -0
- data/lib/rouge/lexers/scss.rb +1 -0
- data/lib/rouge/lexers/sed.rb +1 -0
- data/lib/rouge/lexers/shell.rb +1 -0
- data/lib/rouge/lexers/sieve.rb +1 -0
- data/lib/rouge/lexers/slim.rb +1 -0
- data/lib/rouge/lexers/smalltalk.rb +1 -0
- data/lib/rouge/lexers/smarty.rb +1 -0
- data/lib/rouge/lexers/sml.rb +1 -0
- data/lib/rouge/lexers/sqf.rb +109 -0
- data/lib/rouge/lexers/sqf/commands.rb +15 -0
- data/lib/rouge/lexers/sql.rb +1 -0
- data/lib/rouge/lexers/swift.rb +2 -1
- data/lib/rouge/lexers/tap.rb +2 -0
- data/lib/rouge/lexers/tcl.rb +1 -0
- data/lib/rouge/lexers/terraform.rb +1 -0
- data/lib/rouge/lexers/tex.rb +1 -0
- data/lib/rouge/lexers/toml.rb +1 -0
- data/lib/rouge/lexers/tsx.rb +1 -0
- data/lib/rouge/lexers/tulip.rb +2 -0
- data/lib/rouge/lexers/turtle.rb +1 -0
- data/lib/rouge/lexers/twig.rb +1 -0
- data/lib/rouge/lexers/typescript.rb +1 -0
- data/lib/rouge/lexers/typescript/common.rb +1 -0
- data/lib/rouge/lexers/vala.rb +1 -0
- data/lib/rouge/lexers/vb.rb +1 -0
- data/lib/rouge/lexers/verilog.rb +1 -0
- data/lib/rouge/lexers/vhdl.rb +1 -0
- data/lib/rouge/lexers/viml.rb +1 -0
- data/lib/rouge/lexers/viml/keywords.rb +2 -0
- data/lib/rouge/lexers/vue.rb +2 -0
- data/lib/rouge/lexers/wollok.rb +1 -0
- data/lib/rouge/lexers/xml.rb +1 -0
- data/lib/rouge/lexers/yaml.rb +1 -0
- data/lib/rouge/plugins/redcarpet.rb +1 -0
- data/lib/rouge/regex_lexer.rb +1 -0
- data/lib/rouge/template_lexer.rb +1 -0
- data/lib/rouge/text_analyzer.rb +1 -0
- data/lib/rouge/theme.rb +1 -0
- data/lib/rouge/themes/base16.rb +1 -0
- data/lib/rouge/themes/colorful.rb +1 -0
- data/lib/rouge/themes/github.rb +1 -0
- data/lib/rouge/themes/gruvbox.rb +1 -0
- data/lib/rouge/themes/igor_pro.rb +1 -0
- data/lib/rouge/themes/molokai.rb +1 -0
- data/lib/rouge/themes/monokai.rb +1 -0
- data/lib/rouge/themes/monokai_sublime.rb +2 -0
- data/lib/rouge/themes/pastie.rb +1 -0
- data/lib/rouge/themes/thankful_eyes.rb +1 -0
- data/lib/rouge/themes/tulip.rb +1 -0
- data/lib/rouge/token.rb +1 -0
- data/lib/rouge/util.rb +1 -0
- data/lib/rouge/version.rb +2 -1
- data/rouge.gemspec +2 -0
- metadata +13 -3
data/lib/rouge/lexers/digdag.rb
CHANGED
data/lib/rouge/lexers/docker.rb
CHANGED
data/lib/rouge/lexers/dot.rb
CHANGED
data/lib/rouge/lexers/eiffel.rb
CHANGED
data/lib/rouge/lexers/elixir.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# -*- coding: utf-8 -*- #
|
2
|
+
# frozen_string_literal: true
|
2
3
|
|
3
4
|
module Rouge
|
4
5
|
module Lexers
|
@@ -20,7 +21,7 @@ module Rouge
|
|
20
21
|
rule /#.*$/, Comment::Single
|
21
22
|
rule %r{\b(case|cond|end|bc|lc|if|unless|try|loop|receive|fn|defmodule|
|
22
23
|
defp?|defprotocol|defimpl|defrecord|defmacrop?|defdelegate|
|
23
|
-
defexception|exit|raise|throw|after|rescue|catch|else)\b(?![?!])|
|
24
|
+
defexception|defguardp?|defstruct|exit|raise|throw|after|rescue|catch|else)\b(?![?!])|
|
24
25
|
(?<!\.)\b(do|\-\>)\b}x, Keyword
|
25
26
|
rule /\b(import|require|use|recur|quote|unquote|super|refer)\b(?![?!])/, Keyword::Namespace
|
26
27
|
rule /(?<!\.)\b(and|not|or|when|xor|in)\b/, Operator::Word
|
data/lib/rouge/lexers/elm.rb
CHANGED
data/lib/rouge/lexers/erb.rb
CHANGED
data/lib/rouge/lexers/erlang.rb
CHANGED
data/lib/rouge/lexers/factor.rb
CHANGED
data/lib/rouge/lexers/fortran.rb
CHANGED
data/lib/rouge/lexers/fsharp.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# -*- coding: utf-8 -*- #
|
2
|
+
# frozen_string_literal: true
|
2
3
|
|
3
4
|
module Rouge
|
4
5
|
module Lexers
|
@@ -6,7 +7,7 @@ module Rouge
|
|
6
7
|
title "FSharp"
|
7
8
|
desc 'F# (fsharp.net)'
|
8
9
|
tag 'fsharp'
|
9
|
-
filenames '*.fs', '*.fsx'
|
10
|
+
filenames '*.fs', '*.fsi', '*.fsx'
|
10
11
|
mimetypes 'application/fsharp-script', 'text/x-fsharp', 'text/x-fsi'
|
11
12
|
|
12
13
|
def self.keywords
|
data/lib/rouge/lexers/gherkin.rb
CHANGED
data/lib/rouge/lexers/glsl.rb
CHANGED
data/lib/rouge/lexers/go.rb
CHANGED
data/lib/rouge/lexers/gradle.rb
CHANGED
data/lib/rouge/lexers/graphql.rb
CHANGED
data/lib/rouge/lexers/groovy.rb
CHANGED
data/lib/rouge/lexers/hack.rb
CHANGED
data/lib/rouge/lexers/haml.rb
CHANGED
data/lib/rouge/lexers/haskell.rb
CHANGED
data/lib/rouge/lexers/hcl.rb
CHANGED
data/lib/rouge/lexers/html.rb
CHANGED
data/lib/rouge/lexers/http.rb
CHANGED
data/lib/rouge/lexers/hylang.rb
CHANGED
data/lib/rouge/lexers/idlang.rb
CHANGED
data/lib/rouge/lexers/igorpro.rb
CHANGED
data/lib/rouge/lexers/ini.rb
CHANGED
data/lib/rouge/lexers/io.rb
CHANGED
data/lib/rouge/lexers/irb.rb
CHANGED
data/lib/rouge/lexers/java.rb
CHANGED
data/lib/rouge/lexers/jinja.rb
CHANGED
data/lib/rouge/lexers/json.rb
CHANGED
data/lib/rouge/lexers/jsonnet.rb
CHANGED
@@ -0,0 +1,120 @@
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Rouge
|
5
|
+
module Lexers
|
6
|
+
class JSP < TemplateLexer
|
7
|
+
desc 'JSP'
|
8
|
+
tag 'jsp'
|
9
|
+
filenames '*.jsp'
|
10
|
+
mimetypes 'text/x-jsp', 'application/x-jsp'
|
11
|
+
|
12
|
+
def initialize(*)
|
13
|
+
super
|
14
|
+
@java = Java.new
|
15
|
+
end
|
16
|
+
|
17
|
+
directives = %w(page include taglib)
|
18
|
+
actions = %w(scriptlet declaration expression)
|
19
|
+
|
20
|
+
state :root do
|
21
|
+
|
22
|
+
rule /<%--/, Comment, :jsp_comment
|
23
|
+
|
24
|
+
rule /<%@\s*(#{directives.join('|')})\s*/, Name::Tag, :jsp_directive
|
25
|
+
|
26
|
+
rule /<jsp:directive\.(#{directives.join('|')})/, Name::Tag, :jsp_directive2
|
27
|
+
|
28
|
+
rule /<jsp:(#{actions.join('|')})>/, Name::Tag, :jsp_expression
|
29
|
+
|
30
|
+
# start of tag, e.g. <c:if>
|
31
|
+
rule /<[a-zA-Z]*:[a-zA-Z]*\s*/, Name::Tag, :jsp_tag
|
32
|
+
|
33
|
+
# end of tag, e.g. </c:if>
|
34
|
+
rule /<\/[a-zA-Z]*:[a-zA-Z]*>/, Name::Tag
|
35
|
+
|
36
|
+
rule /<%[!=]?/, Name::Tag, :jsp_expression2
|
37
|
+
|
38
|
+
# fallback to HTML
|
39
|
+
rule(/(.+?)(?=(<%|<\/?[a-zA-Z]*:))/m) { delegate parent }
|
40
|
+
rule(/.+/m) { delegate parent }
|
41
|
+
end
|
42
|
+
|
43
|
+
state :jsp_comment do
|
44
|
+
rule /(--%>)/, Comment, :pop!
|
45
|
+
rule /./m, Comment
|
46
|
+
end
|
47
|
+
|
48
|
+
state :jsp_directive do
|
49
|
+
rule /(%>)/, Name::Tag, :pop!
|
50
|
+
mixin :attributes
|
51
|
+
rule(/(.+?)(?=%>)/m) { delegate parent }
|
52
|
+
end
|
53
|
+
|
54
|
+
state :jsp_directive2 do
|
55
|
+
rule /(\/>)/, Name::Tag, :pop!
|
56
|
+
mixin :attributes
|
57
|
+
rule(/(.+?)(?=\/>)/m) { delegate parent }
|
58
|
+
end
|
59
|
+
|
60
|
+
state :jsp_expression do
|
61
|
+
rule /<\/jsp:(#{actions.join('|')})>/, Name::Tag, :pop!
|
62
|
+
mixin :attributes
|
63
|
+
rule(/[^<\/]+/) { delegate @java }
|
64
|
+
end
|
65
|
+
|
66
|
+
state :jsp_expression2 do
|
67
|
+
rule /%>/, Name::Tag, :pop!
|
68
|
+
rule(/[^%>]+/) { delegate @java }
|
69
|
+
end
|
70
|
+
|
71
|
+
state :jsp_tag do
|
72
|
+
rule /\/?>/, Name::Tag, :pop!
|
73
|
+
mixin :attributes
|
74
|
+
rule(/(.+?)(?=\/?>)/m) { delegate parent }
|
75
|
+
end
|
76
|
+
|
77
|
+
state :attributes do
|
78
|
+
rule /\s*[a-zA-Z0-9_:-]+\s*=\s*/m, Name::Attribute, :attr
|
79
|
+
end
|
80
|
+
|
81
|
+
state :attr do
|
82
|
+
rule /"/ do
|
83
|
+
token Str
|
84
|
+
goto :double_quotes
|
85
|
+
end
|
86
|
+
|
87
|
+
rule /'/ do
|
88
|
+
token Str
|
89
|
+
goto :single_quotes
|
90
|
+
end
|
91
|
+
|
92
|
+
rule /[^\s>]+/, Str, :pop!
|
93
|
+
end
|
94
|
+
|
95
|
+
state :double_quotes do
|
96
|
+
rule /"/, Str, :pop!
|
97
|
+
rule /\$\{/, Str::Interpol, :jsp_interp
|
98
|
+
rule /[^"]+/, Str
|
99
|
+
end
|
100
|
+
|
101
|
+
state :single_quotes do
|
102
|
+
rule /'/, Str, :pop!
|
103
|
+
rule /\$\{/, Str::Interpol, :jsp_interp
|
104
|
+
rule /[^']+/, Str
|
105
|
+
end
|
106
|
+
|
107
|
+
state :jsp_interp do
|
108
|
+
rule /\}/, Str::Interpol, :pop!
|
109
|
+
rule /'/, Literal, :jsp_interp_literal_start
|
110
|
+
rule(/[^'\}]+/) { delegate @java }
|
111
|
+
end
|
112
|
+
|
113
|
+
state :jsp_interp_literal_start do
|
114
|
+
rule /'/, Literal, :pop!
|
115
|
+
rule /[^']*/, Literal
|
116
|
+
end
|
117
|
+
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
data/lib/rouge/lexers/jsx.rb
CHANGED
data/lib/rouge/lexers/julia.rb
CHANGED
data/lib/rouge/lexers/kotlin.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# -*- coding: utf-8 -*- #
|
2
|
+
# frozen_string_literal: true
|
2
3
|
|
3
4
|
module Rouge
|
4
5
|
module Lexers
|
@@ -24,25 +25,18 @@ module Rouge
|
|
24
25
|
)
|
25
26
|
|
26
27
|
name = %r'@?[_\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Nl}][\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Nl}\p{Nd}\p{Pc}\p{Cf}\p{Mn}\p{Mc}]*'
|
28
|
+
name_backtick = %r'#{name}|`#{name}`'
|
27
29
|
|
28
|
-
id = %r'(#{
|
30
|
+
id = %r'(#{name_backtick})'
|
29
31
|
|
30
32
|
state :root do
|
31
|
-
rule %r'
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
rule %r'
|
36
|
-
|
37
|
-
|
38
|
-
rule %r"(\.\.)", Operator
|
39
|
-
rule %r'[~!%^&*()+=|\[\]:;,.<>/?-]', Punctuation
|
40
|
-
rule %r'[{}]', Punctuation
|
41
|
-
rule %r'@"(""|[^"])*"'m, Str
|
42
|
-
rule %r'""".*?"""'m, Str
|
43
|
-
rule %r'"(\\\\|\\"|[^"\n])*["\n]'m, Str
|
44
|
-
rule %r"'\\.'|'[^\\]'", Str::Char
|
45
|
-
rule %r"[0-9](\.[0-9]+)?([eE][+-][0-9]+)?[flFL]?|0[xX][0-9a-fA-F]+[Ll]?", Num
|
33
|
+
rule %r'(\))(\s*)(:)(\s+)(#{name_backtick})(<)' do
|
34
|
+
groups Punctuation, Text, Punctuation, Text, Name::Class, Punctuation
|
35
|
+
push :generic_parameters
|
36
|
+
end
|
37
|
+
rule %r'(\))(\s*)(:)(\s+)(#{name_backtick})' do
|
38
|
+
groups Punctuation, Text, Punctuation, Text, Name::Class
|
39
|
+
end
|
46
40
|
rule %r'\b(companion)(\s+)(object)\b' do
|
47
41
|
groups Keyword, Text, Keyword
|
48
42
|
end
|
@@ -50,16 +44,47 @@ module Rouge
|
|
50
44
|
groups Keyword::Declaration, Text
|
51
45
|
push :class
|
52
46
|
end
|
47
|
+
rule %r'\b(fun)(\s+)' do
|
48
|
+
groups Keyword, Text
|
49
|
+
push :function
|
50
|
+
end
|
51
|
+
rule %r'(#{name_backtick})(:)(\s+)(#{name_backtick})(<)' do
|
52
|
+
groups Name::Variable, Punctuation, Text, Name::Class, Punctuation
|
53
|
+
push :generic_parameters
|
54
|
+
end
|
55
|
+
rule %r'(#{name_backtick})(:)(\s+)(#{name_backtick})' do
|
56
|
+
groups Name::Variable, Punctuation, Text, Name::Class
|
57
|
+
end
|
53
58
|
rule %r'\b(package|import)(\s+)' do
|
54
59
|
groups Keyword, Text
|
55
60
|
push :package
|
56
61
|
end
|
62
|
+
rule %r'\b(val|var)(\s+)(\()' do
|
63
|
+
groups Keyword::Declaration, Text, Punctuation
|
64
|
+
push :destructure
|
65
|
+
end
|
57
66
|
rule %r'\b(val|var)(\s+)' do
|
58
67
|
groups Keyword::Declaration, Text
|
59
68
|
push :property
|
60
69
|
end
|
61
70
|
rule %r/\bfun\b/, Keyword
|
62
71
|
rule /\b(?:#{keywords.join('|')})\b/, Keyword
|
72
|
+
rule %r'^\s*\[.*?\]', Name::Attribute
|
73
|
+
rule %r'[^\S\n]+', Text
|
74
|
+
rule %r'\\\n', Text # line continuation
|
75
|
+
rule %r'//.*?$', Comment::Single
|
76
|
+
rule %r'/[*].*?[*]/'m, Comment::Multiline
|
77
|
+
rule %r'\n', Text
|
78
|
+
rule %r'::|!!|\?[:.]', Operator
|
79
|
+
rule %r"(\.\.)", Operator
|
80
|
+
rule %r'[~!%^&*()+=|\[\]:;,.<>/?-]', Punctuation
|
81
|
+
rule %r'[{}]', Punctuation
|
82
|
+
rule %r'@"(""|[^"])*"'m, Str
|
83
|
+
rule %r'""".*?"""'m, Str
|
84
|
+
rule %r'"(\\\\|\\"|[^"\n])*["\n]'m, Str
|
85
|
+
rule %r"'\\.'|'[^\\]'", Str::Char
|
86
|
+
rule %r"[0-9](\.[0-9]+)?([eE][+-][0-9]+)?[flFL]?|0[xX][0-9a-fA-F]+[Ll]?", Num
|
87
|
+
rule /@#{id}/, Name::Decorator
|
63
88
|
rule id, Name
|
64
89
|
end
|
65
90
|
|
@@ -71,9 +96,32 @@ module Rouge
|
|
71
96
|
rule id, Name::Class, :pop!
|
72
97
|
end
|
73
98
|
|
99
|
+
state :function do
|
100
|
+
rule %r'(<)', Punctuation, :generic_parameters
|
101
|
+
rule %r'(\s+)', Text
|
102
|
+
rule %r'(#{name_backtick})(\.)' do
|
103
|
+
groups Name::Class, Punctuation
|
104
|
+
end
|
105
|
+
rule id, Name::Function, :pop!
|
106
|
+
end
|
107
|
+
|
108
|
+
state :generic_parameters do
|
109
|
+
rule id, Name::Class
|
110
|
+
rule %r'(,)', Punctuation
|
111
|
+
rule %r'(\s+)', Text
|
112
|
+
rule %r'(>)', Punctuation, :pop!
|
113
|
+
end
|
114
|
+
|
74
115
|
state :property do
|
75
116
|
rule id, Name::Property, :pop!
|
76
117
|
end
|
118
|
+
|
119
|
+
state :destructure do
|
120
|
+
rule %r'(,)', Punctuation
|
121
|
+
rule %r'(\))', Punctuation, :pop!
|
122
|
+
rule %r'(\s+)', Text
|
123
|
+
rule id, Name::Property
|
124
|
+
end
|
77
125
|
end
|
78
126
|
end
|
79
127
|
end
|