@@ -30,8 +30,12 @@ class CodeRay::Scanners::Lua < CodeRay::Scanners::Scanner
30
30
31
31
SCANNER = /
32
32
(?<space>\s *) # eat leading whitespace, just to make iteration of fluff easier
33
- (?<fluff>(?m: .*?) ) # eat content up until something we want
33
+ (?<fluff>(?m) .*?) # eat content up until something we want
34
34
(?:
35
+ (?<funcname>
36
+ \b function\s +[^\( ]+
37
+ )
38
+ |
35
39
\b (?<keyword>#{ KEYWORDS . join ( '|' ) } )\b
36
40
|
37
41
(?: # strings
@@ -44,7 +48,7 @@ class CodeRay::Scanners::Lua < CodeRay::Scanners::Scanner
44
48
(?<s2q2>')
45
49
|
46
50
(?<s3q1>\[ (?<stringequals>=*)\[ )
47
- (?<s3>(?m: .*?) )
51
+ (?<s3>(?m) .*?)
48
52
(?<s3q2>\] \k <stringequals>\] )
49
53
)
50
54
|
@@ -64,13 +68,13 @@ class CodeRay::Scanners::Lua < CodeRay::Scanners::Scanner
64
68
|
65
69
\. \d + # .3
66
70
)
67
- (?:e[-+]?\d +)? # 3.1e-7
71
+ (?:e[-+]?\d +)? # 3.1e-7
68
72
)
69
73
)\b
70
74
|
71
75
(?:
72
76
(?<blockstart>--\[ (?<blockequals>=*)\[ )
73
- (?<blockmain>(?m: .*?) )
77
+ (?<blockmain>(?m) .*?)
74
78
(?<blockclose>\] \k <blockequals>\] )
75
79
)
76
80
|
@@ -153,6 +157,12 @@ def scan_tokens(tokens, options)
153
157
space = !space
154
158
end
155
159
end
160
+ if match [ :funcname ] && !match [ :funcname ] . empty?
161
+ f , s , n = match [ :funcname ] . split ( /(\s +)/ )
162
+ tokens . text_token ( f , :keyword )
163
+ tokens . text_token ( s , :space )
164
+ tokens . text_token ( n , :function )
165
+ end
156
166
CAPTURE_KINDS . each do |capture , kind |
157
167
next unless match [ capture ] && !match [ capture ] . empty?
158
168
if kind . is_a? Hash
0 commit comments