-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathchad.vim
More file actions
61 lines (53 loc) · 1.76 KB
/
Copy pathchad.vim
File metadata and controls
61 lines (53 loc) · 1.76 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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
" if exists("b:current_syntax")
" finish
"endif
syn keyword chadKeyword while pri if elif else for in struct enum ret break continue use as include assert try get fn const decl recur impl with local macro field defer union
syn keyword chadType void int char bool ptr str err i64 i32 i16 i8 u64 u32 u16 u8 f64 f32 seg vec
syn keyword chadNil nil
syn keyword chadBool false true
syntax region chadStr start=/"/ skip=/\\"/ end=/"/ contains=expressionBlock
syntax region expressionBlock start=/{/ end=/}/ contained
syn match chadInt "\v\d"
syn match chadChar "\v\'([^\']*)\'"
syn match chadIdent "\v[a-z][a-zA-Z\_0-9']*"
syn match chadStruct "\v[A-Z][a-z0-9]*"
syn match chadFn "\v\zs[a-zA-Z|\_|0-9]+\ze\([^\)]*\)(\.[^\)]*\))?"
syn match chadMacro "@\v\zs[a-zA-Z|\_|0-9]+\ze\([^\)]*\)(\.[^\)]*\))?"
syn match chadFn "$[a-zA-Z0-9]*"
syn keyword chadOp is
syn match chadOp "\v\+"
syn match chadOp "\v\-"
syn match chadOp "\v\*"
syn match chadOp "\v\/"
syn match chadOp "\v\%"
syn match chadOp "\v\&"
syn match chadOp "\v\|"
syn match chadOp "\v\="
syn match chadOp "\v\<"
syn match chadOp "\v\>"
syn match chadOp "\v\!"
syn match chadOp "\v\["
syn match chadOp "\v\]"
syn match chadOp "\v\("
syn match chadOp "\v\)"
syn match chadOp "\v\{"
syn match chadOp "\v\}"
syn match chadComment "\v#.*$"
syntax region chadCommentBlock start=/##/ end=/##/ keepend
hi link chadStr String
hi link chadMacro Keyword
hi link chadKeyword Keyword
hi link chadApply Keyword
hi link chadType Type
hi link chadStruct Type
hi link chadComment Comment
hi link chadCommentBlock Comment
hi link chadOp Operator
hi link chadInt Number
hi link chadBool Number
hi link chadNil Number
hi link chadChar Number
hi link chadFn Function
hi link chadFnTrait Function
hi link chadIdent Identifier
let b:current_syntax = "chad"