-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathlark.vim
More file actions
46 lines (38 loc) · 1.75 KB
/
lark.vim
File metadata and controls
46 lines (38 loc) · 1.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
if exists("b:current_syntax")
finish
endif
"To do :
"- disable higlight on pattern_group for ()[]{} if there are preseded by \
syn match regex_symbols /\(\(\\\)\@<=\(\\\\\)*\)\@<!\(+\|(\|)\|{\|}\|\[\|\]\|+\|\*\|?\|\.\|\^\|\$\||\)/
syn keyword pattern_agroup /
syn match statement +^\s*%\(ignore\|import\|declare\|override\|extend\)+
syn match rule "^\s*\(!\?\)\([_?]\)\?\l\(\l\|[_0-9]\)*"
syn match token "^\s*\(_\?\)\u\(_\|\u\|\d\)*"
syn match inner_token "\(\l\|\u\|_\)\@<!\(_\?\)\u\(_\|\u\|\d\)\+"
syn match separators +|\|:\|\(->\)+
syn match agroup +"\|(\|)\|{\|}\|\[\|\]+
syn match template_symbols +\,+
syn region template start="{" end="}" contains=template_symbols
"The pattern \(\\\)\@<!\(\\\\\)*\\/ match a odd count
"of '\' non preceded by '\'
"syn region pattern matchgroup=pattern_agroup start="/\(/\)\@!" end="/\|\n" skip="\(\\\)\@<!\(\\\\\)*\\/" contains=agroup
"syn region string matchgroup=agroup start='"' end='"\|\n' skip='\(\\\)\@<!\(\\\\\)*\\"'
syn region pattern matchgroup=pattern_agroup start="/" end="/" skip="\\." contains=regex_symbols
syn region string matchgroup=agroup start='"' end='"\|\n' skip='\\.'
"Comment needs to be matched **after** REGEX Patterns otherwise comments are
"highlighted as an empty regex pattern followed by tokens
syn region comment start="//\|#" end="$"
let b:current_syntax = "lark"
hi def link statement Statement
hi def link rule Identifier
hi def link token Type
hi def link inner_token Type
hi def link separators Operator
hi def link agroup Operator
hi def link regex_symbols Operator
hi def link pattern_agroup Operator
hi def link comment Comment
hi def link pattern String
hi def link string String
hi def link template_symbols Operator
hi def link template Delimiter