@@ -8,11 +8,13 @@ variables:
88 wsb : ' (?<=^|[\s,()\[\]{}~'' `"^@]|#_)'
99 wse : ' (?=$|[\s,()\[\]{}";])'
1010 nwse : ' [^\s,()\[\]{}";]'
11- sym_head : ' [\p{Alpha}*!_?$%&=<>]'
12- sym_head_lax : ' [\p{Alpha}*!_?$%&=<>'' \-+.#:]'
13- sym_body : ' [\p{Alpha}*!_?$%&=<>'' \-+.#:0-9]'
11+
12+ sym_head : ' [\p{Alpha}*!_?$%&=<>.]'
13+ sym_head_lax : ' [\p{Alpha}*!_?$%&=<>.'' \-+#:]'
14+ sym_body : ' [\p{Alpha}*!_?$%&=<>.'' \-+#:0-9]'
1415 ns_symbol : ' (?:[\-+.]|[\-+.]{{sym_head_lax}}{{sym_body}}*|{{sym_head}}{{sym_body}}*)'
1516 symbol : ' (?:/|{{ns_symbol}})'
17+
1618 kw : ' \p{Alpha}*!_?$%&=<>'' \-+.#0-9'
1719 regexp_name : ' [a-zA-Z][a-zA-Z0-9]*'
1820contexts :
@@ -223,7 +225,7 @@ contexts:
223225 pop : 1
224226
225227 keyword :
226- - match : ' {{wsb}}(::?)([{{kw}}][{{kw}}:]*[{{kw}}]|[{{kw}}])(/)([{{kw}}:/]*[{{kw}}]|[{{kw}}]){{wse}}'
228+ - match : ' {{wsb}}(::?)([{{kw}}][{{kw}}:]*[{{kw}}]|[{{kw}}])(/)([{{kw}}:/]*[{{kw}}]|[{{kw}}]|/+ ){{wse}}'
227229 scope : constant.other.keyword.clojure
228230 captures :
229231 1 : punctuation.definition.keyword.begin.clojure
@@ -235,6 +237,17 @@ contexts:
235237 captures :
236238 1 : punctuation.definition.keyword.begin.clojure
237239 pop : 1
240+ - match : ' {{wsb}}(:)/{{wse}}'
241+ scope : constant.other.keyword.clojure
242+ captures :
243+ 1 : punctuation.definition.keyword.begin.clojure
244+ pop : 1
245+ - match : ' {{wsb}}(:)/(//+){{wse}}'
246+ scope : constant.other.keyword.clojure
247+ captures :
248+ 1 : punctuation.definition.keyword.begin.clojure
249+ 2 : punctuation.definition.namespace.clojure
250+ pop : 1
238251
239252 integer :
240253 - match : ' {{wsb}}[+-]?(?:0[xX][0-9A-Fa-f]+|0[1-7]+|[1-9][0-9]*|[1-9][0-9]?[rR][0-9A-Za-z]+|0)(N)?{{wse}}'
@@ -271,7 +284,7 @@ contexts:
271284 push : list_second
272285
273286 symbol_name :
274- - match : ' {{wsb}}(?:{{symbol}}|({{ns_symbol}})(/)(?:/|{{sym_body}}+) ){{wse}}'
287+ - match : ' {{wsb}}(?:{{symbol}}|({{ns_symbol}})(/)(?:/|{{sym_body}})+ ){{wse}}'
275288 scope : source.symbol.clojure entity.name.clojure
276289 captures :
277290 1 : meta.namespace.symbol.clojure
@@ -280,15 +293,15 @@ contexts:
280293 push : list_rest
281294
282295 symbol_unused :
283- - match : ' {{wsb}}(?:(?=_){{symbol}}|({{ns_symbol}})(/)(?=_){{symbol}} ){{wse}}'
296+ - match : ' {{wsb}}(?:(?=_){{symbol}}|({{ns_symbol}})(/)(?=_)(?:/|{{sym_body}})* ){{wse}}'
284297 scope : source.symbol.unused.clojure
285298 captures :
286299 1 : meta.namespace.symbol.clojure
287300 2 : punctuation.definition.namespace.clojure
288301 pop : 1
289302
290303 symbol :
291- - match : ' {{wsb}}(?:{{symbol}}|({{ns_symbol}})(/)(?:/|{{sym_body}}+) ){{wse}}'
304+ - match : ' {{wsb}}(?:{{symbol}}|({{ns_symbol}})(/)(?:/|{{sym_body}})+ ){{wse}}'
292305 scope : source.symbol.clojure
293306 captures :
294307 1 : meta.namespace.symbol.clojure
@@ -543,7 +556,7 @@ contexts:
543556 pop : 2
544557
545558 deep_keyword :
546- - match : ' {{wsb}}(::?)([{{kw}}][{{kw}}:]*[{{kw}}]|[{{kw}}])(/)([{{kw}}:/]*[{{kw}}]|[{{kw}}]){{wse}}'
559+ - match : ' {{wsb}}(::?)([{{kw}}][{{kw}}:]*[{{kw}}]|[{{kw}}])(/)([{{kw}}:/]*[{{kw}}]|[{{kw}}]|/+ ){{wse}}'
547560 scope : constant.other.keyword.clojure
548561 captures :
549562 1 : punctuation.definition.keyword.begin.clojure
@@ -555,6 +568,17 @@ contexts:
555568 captures :
556569 1 : punctuation.definition.keyword.begin.clojure
557570 pop : 2
571+ - match : ' {{wsb}}(:)/{{wse}}'
572+ scope : constant.other.keyword.clojure
573+ captures :
574+ 1 : punctuation.definition.keyword.begin.clojure
575+ pop : 2
576+ - match : ' {{wsb}}(:)/(//+){{wse}}'
577+ scope : constant.other.keyword.clojure
578+ captures :
579+ 1 : punctuation.definition.keyword.begin.clojure
580+ 2 : punctuation.definition.namespace.clojure
581+ pop : 2
558582
559583 deep_integer :
560584 - match : ' {{wsb}}[+-]?(?:0[xX][0-9A-Fa-f]+|0[1-7]+|[1-9][0-9]*|[1-9][0-9]?[rR][0-9A-Za-z]+|0)(N)?{{wse}}'
@@ -582,7 +606,7 @@ contexts:
582606 pop : 2
583607
584608 deep_symbol_def :
585- - match : ' {{wsb}}(?:(?=def){{symbol}}|({{ns_symbol}})(/)(?=def){{symbol}}){{wse}}'
609+ - match : ' {{wsb}}(?:ns| (?=def){{symbol}}|({{ns_symbol}})(/)(?=def){{symbol}}){{wse}}'
586610 scope : source.symbol.def.clojure
587611 captures :
588612 1 : meta.namespace.symbol.clojure
@@ -591,7 +615,7 @@ contexts:
591615 push : deep_list_second
592616
593617 deep_symbol_name :
594- - match : ' {{wsb}}(?:{{symbol}}|({{ns_symbol}})(/){{symbol}} ){{wse}}'
618+ - match : ' {{wsb}}(?:{{symbol}}|({{ns_symbol}})(/)(?:/|{{sym_body}})+ ){{wse}}'
595619 scope : source.symbol.clojure entity.name.clojure
596620 captures :
597621 1 : meta.namespace.symbol.clojure
@@ -600,15 +624,15 @@ contexts:
600624 push : deep_list_rest
601625
602626 deep_symbol_unused :
603- - match : ' {{wsb}}(?:(?=_){{symbol}}|({{ns_symbol}})(/)(?=_){{symbol}} ){{wse}}'
627+ - match : ' {{wsb}}(?:(?=_){{symbol}}|({{ns_symbol}})(/)(?=_)(?:/|{{sym_body}})* ){{wse}}'
604628 scope : source.symbol.unused.clojure
605629 captures :
606630 1 : meta.namespace.symbol.clojure
607631 2 : punctuation.definition.namespace.clojure
608632 pop : 2
609633
610634 deep_symbol :
611- - match : ' {{wsb}}(?:{{symbol}}|({{ns_symbol}})(/){{symbol}} ){{wse}}'
635+ - match : ' {{wsb}}(?:{{symbol}}|({{ns_symbol}})(/)(?:/|{{sym_body}})+ ){{wse}}'
612636 scope : source.symbol.clojure
613637 captures :
614638 1 : meta.namespace.symbol.clojure
0 commit comments