@@ -9,76 +9,112 @@ export default {
99
1010 'char' : {
1111 pattern : / % (?: [ a - z ] [ \w ? ! ] * | .) / i,
12- greedy : true
12+ greedy : true ,
1313 } ,
1414
1515 'string' : {
1616 pattern : / " (?: \\ .| [ ^ " \\ \r \n ] ) * " | ' (?: \\ .| [ ^ ' \\ \r \n ] ) * ' / ,
17- greedy : true
17+ greedy : true ,
1818 } ,
1919
2020 'regex' : {
2121 pattern : / \/ (?: (?: \\ .| [ ^ \\ / \r \n ] ) + \/ [ q i s d l m u c x ] * | \/ ) / ,
22- greedy : true
22+ greedy : true ,
2323 } ,
2424
25- 'declaration ' : [
26- { pattern : / ( \b _ p a c k a g e \s + ) . * / i , lookbehind : true } ,
27- { pattern : / ( \b _ g l o b a l \s + ) (? ! _ ) \w + / i , lookbehind : true } ,
28- { pattern : / ( \b _ c o n s t a n t \s + ) [ a - z _ ] + / i , lookbehind : true }
29- ] ,
25+ 'slot ' : {
26+ pattern : / ( ^ | [ \s ( { ] ) \. \s * [ a - z ] [ \w ? ! ] * / i ,
27+ lookbehind : true ,
28+ greedy : true ,
29+ } ,
3030
3131 'pragma' : {
3232 pattern : / _ p r a g m a .* / ,
3333 alias : 'prolog' ,
3434 inside : {
3535 'modifier' : / c l a s s i f y _ l e v e l | t o p i c | u s a g e / ,
36- 'pragma-punctuation' : { pattern : / [ = { } , ] / }
37- }
36+ 'pragma-punctuation' : { pattern : / [ = { } , ] / } ,
37+ } ,
3838 } ,
3939
40- 'number' : / \b \d + (?: \. \d + ) ? (?: [ e & ] [ + - ] ? \d + ) ? \b | \b (?: [ 2 - 9 ] | [ 1 2 ] \d | 3 [ 0 - 6 ] ) r [ a - z 0 - 9 ] + \b / i,
41-
4240 'symbol' : {
4341 pattern : / ( ^ | \W ) : (?: \| [ ^ | ] * \| | \\ .| [ \w ? ! ] ) + / ,
44- lookbehind : true
42+ lookbehind : true ,
4543 } ,
4644
45+ 'global-reference' : [
46+ { pattern : / @ (?: [ a - z _ ] \w * : ) ? \| [ ^ | ] * \| / i, alias : 'symbol' } , // @|name| or @prefix:|name|
47+ { pattern : / @ (?: [ a - z _ ] \w * : ) ? [ a - z _ ] \w * / i, alias : 'symbol' } , // @name or @prefix :name
48+ ] ,
49+
50+ 'dynamic-variable' : [
51+ { pattern : / \| ! [ \w ? ! ] + ! \| / , alias : 'variable' } , // variable encased like |!var!|
52+ { pattern : / \| ! [ \w ? ! ] + \| ! / , alias : 'variable' } , // variable encased like |!var|!
53+ { pattern : / ! \| [ \w ? ! ] + \| ! / , alias : 'variable' } , // variable encased like !|var!|
54+ { pattern : / ! \| \| ! / , alias : 'variable' } , // empty variable !||!
55+ { pattern : / [ a - z _ ] + : ! [ a - z ] [ \w ? ! ] * ! / i, alias : 'variable' } , // variable with a prefix like sw:!var!
56+ { pattern : / ! [ a - z ] [ \w ? ! ] * ! / i, alias : 'variable' } , // variable encased like !var!
57+ ] ,
58+
59+ 'global-variable' : [
60+ { pattern : / [ a - z _ ] + : [ \w ? ! ] + / i, alias : 'variable' } , // variable with a prefix like sw:gis_program_manager
61+ { pattern : / [ a - z _ ] + : \| [ \w ? ! ] + \| / i, alias : 'variable' } , // variable with a prefix like sw:|gis_program_manager|
62+ ] ,
63+
64+ 'declaration' : [
65+ { pattern : / ( \b _ p a c k a g e \s + ) \w + \b / i, lookbehind : true } ,
66+ { pattern : / ( \b _ (?: c o n s t a n t | g l o b a l | i m p o r t | l o c a l ) \s + ) (? ! _ ) \w + \b / i, lookbehind : true } ,
67+ ] ,
68+
69+ 'number' :
70+ / (?< ! \| ) (?: \b \d + (?: \. \d + ) ? (?: [ e & ] [ + - ] ? \d + ) ? \b | \b (?: [ 2 - 9 ] | [ 1 2 ] \d | 3 [ 0 - 6 ] ) r [ a - z 0 - 9 ] + \b ) / i,
71+
4772 'operator' : [
48- / _ (?: a n d | a n d i f | o r | o r i f | x o r ) < < / i, / (?: \* \* \^ ? | \* \^ ? | \/ \^ ? | _ m o d \^ ? | _ d i v \^ ? | - \^ ? | \+ \^ ? ) < < / i, / \^ ? < < / , // assignment operators
49- / < > / , / > = / , / < = / , / < / , / ~ = / , / = / , // relational operators
50- / \* \* / , / \* / , / \/ / , // arithmetic operators
51- / \+ / , / - / , / ~ / , // unary operators
73+ / _ (?: a n d | a n d i f | o r | o r i f | x o r ) < < / i,
74+ / (?: \* \* \^ ? | \* \^ ? | \/ \^ ? | _ m o d \^ ? | _ d i v \^ ? | - \^ ? | \+ \^ ? ) < < / i,
75+ / \^ ? < < / ,
76+ / < > / ,
77+ / > = / ,
78+ / < = / ,
79+ / < / ,
80+ / ~ = / ,
81+ / = / ,
82+ / \* \* / ,
83+ / \* / ,
84+ / \/ / ,
85+ / \+ / ,
86+ / - / ,
87+ / ~ / ,
5288 ] ,
5389
5490 'keyword-operator' : [
5591 { pattern : / \b _ (?: c f | i s | i s n t ) \b / i, alias : 'keyword' } , // comparison
56- { pattern : / \b _ (?: d i v | m o d ) \b / i, alias : 'keyword' } // math
92+ { pattern : / \b _ (?: d i v | m o d ) \b / i, alias : 'keyword' } , // math
5793 ] ,
5894
95+ 'keyword-variable' : {
96+ pattern : / \b _ (?: c l a s s | d y n a m i c | g l o b a l | i m p o r t | l o c a l ) \b / i,
97+ alias : 'keyword' ,
98+ } ,
99+
59100 'keyword' : [
60- / \b _ (?: c l a s s | d y n a m i c | g l o b a l | i m p o r t | l o c a l ) \b / i, // variables
61101 / \b _ (?: b l o c k | e n d b l o c k ) \b / i, // block
62102 / \b _ (?: e l i f | e l s e | e n d i f | i f | t h e n ) \b / i, // if
63103 / \b _ (?: a n d | a n d i f | n o t | o r | o r i f | x o r ) \b / i, // logical operators
64104 / \b _ (?: c o n t i n u e | e n d l o o p | f i n a l l y | f o r | l e a v e | l o o p | l o o p b o d y | o v e r | w h i l e ) \b / i, // loop
65105 / \b _ (?: d e f a u l t | h a n d l i n g ) \b / i, // handling
66106 / \b _ (?: c a t c h | e n d c a t c h ) \b / i, // catch
67107 / \b _ t h r o w \b / i, // throw
68- / > > / , / \b _ r e t u r n \b / i, // return
108+ / > > / ,
109+ / \b _ r e t u r n \b / i,
69110 / \b _ p r i m i t i v e \b / i, // primitive
70111 / \b _ (?: e n d t r y | t r y | w h e n ) \b / i, // try
71112 / \b _ (?: e n d p r o t e c t | l o c k i n g | p r o t e c t | p r o t e c t i o n ) \b / i, // protect
72113 / \b _ (?: e n d l o c k | l o c k ) \b / i, // lock
73114 / \b _ w i t h \b / i, // standalone since _finally, _handling, _throw, _try, _leave and _continue all can have this
74- / \b _ (?: a l l r e s u l t s | g a t h e r | o p t i o n a l | s c a t t e r ) \b / i // parameter options
115+ / \b _ (?: a l l r e s u l t s | g a t h e r | o p t i o n a l | s c a t t e r ) \b / i, // parameter options
75116 ] ,
76117
77- 'slot' : {
78- pattern : / ( ^ | [ \s ( { ] ) \. \s * [ a - z _ ] + / i,
79- lookbehind : true
80- } ,
81-
82118 'builtin' : / \b _ (?: c l o n e | p a c k a g e | s u p e r | t h i s t h r e a d ) \b / i,
83119
84120 'boolean' : / \b _ (?: f a l s e | m a y b e | t r u e ) \b / i,
@@ -87,42 +123,32 @@ export default {
87123
88124 'unset' : {
89125 pattern : / \b _ u n s e t \b / i,
90- alias : 'symbol'
126+ alias : 'keyword' ,
91127 } ,
92128
93129 'constant' : {
94130 pattern : / \b _ c o n s t a n t \b / i,
95- alias : 'symbol'
96- } ,
97-
98- 'global-reference' : {
99- pattern : / @ (?: [ a - z _ ] \w * : ) ? [ a - z _ ] \w * / i,
100- alias : 'symbol'
131+ alias : 'keyword' ,
101132 } ,
102133
103134 'self' : [
104135 {
105136 pattern : / ( \b _ m e t h o d \s + ) \S + (? = \. ) / ,
106- lookbehind : true
137+ lookbehind : true ,
107138 } ,
108- / \b _ s e l f \b / i
139+ / \b _ s e l f \b / i,
109140 ] ,
110141
111142 'function' : [
112143 / \b _ (?: a b s t r a c t | e n d m e t h o d | i t e r | m e t h o d | p r i v a t e ) \b / i, // method keywords
113144 / \b _ (?: e n d p r o c | p r o c ) \b / i, // procedure
114- { pattern : / ( \. ) \s * \| [ a - z _ ] \w * [ ! ? ] ? \| / , lookbehind : true } , // encased |methodNames|
115- { pattern : / ( \. ) \s * [ a - z _ ] \w * [ ! ? ] ? / , lookbehind : true } , // methods
145+ { pattern : / ( \. ) \s * \| [ a - z ] [ \w ? ! ] * \| / , lookbehind : true } , // encased |methodNames|
146+ { pattern : / ( \. ) \s * [ a - z ] [ \w ? ! ] * / , lookbehind : true } , // methods
116147 ] ,
117148
118149 'variable' : [
119- / \| ! [ \w ? ! ] + ! \| / , // variable encased like |!var!|
120- / \| ! [ \w ? ! ] + \| ! / , // variable encased like |!var|!
121- / ! \| [ \w ? ! ] + \| ! / , // variable encased like !|var!|
122- / ! \| \| ! / , // empty variable !||!
123- / ! [ a - z ] [ \w ? ! ] * ! / , // variable encased like !var!
124- / \b [ a - z _ ] + : \w + \b / i, // variable with a prefix like sw:gis_program_manager
125- { pattern : / ( ^ | [ ^ . ] ) \b [ a - z ] \w * \b / i, lookbehind : true }
150+ / \| [ \w ? ! ] + \| / , // variable encased like |var|, |0|, |123|
151+ { pattern : / ( ^ | [ ^ . ] ) \b [ a - z ] \w * \b / i, lookbehind : true } ,
126152 ] ,
127- }
153+ } ,
128154} ;
0 commit comments