go-snark/vim-syntax/syntax/go-snark-circuit.vim
vim-syntax/syntax/go-snark-circuit.vimRaw
1" Vim syntax file
2" Language: go-snark-circuit
3" URL: https://github.com/arnaucube/go-snark/blob/master/vim-syntax/syntax/go-snark-circuit.vim
4
5if !exists("main_syntax")
6 " quit when a syntax file was already loaded
7 if exists("b:current_syntax")
8 finish
9 endif
10 let main_syntax = 'go-snark-circuit'
11elseif exists("b:current_syntax") && b:current_syntax == "go-snark-circuit"
12 finish
13endif
14
15let s:cpo_save = &cpo
16set cpo&vim
17
18syn keyword goSnarkCircuitCommentTodo TODO FIXME XXX TBD contained
19syn match goSnarkCircuitLineComment "\/\/.*" contains=@Spell,goSnarkCircuitCommentTodo
20syn match goSnarkCircuitSpecialCharacter "'\\.'"
21syn match goSnarkCircuitNumber "-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>"
22syn match goSnarkCircuitOpSymbols "+\|-\|\*\|:\|)\|(\|="
23syn keyword goSnarkCircuitPrivatePublic private public
24syn keyword goSnarkCircuitOut out
25syn keyword goSnarkCircuitEquals equals
26syn keyword goSnarkCircuitFunction func
27syn keyword goSnarkCircuitImport import
28syn match goSnarkCircuitFuncCall /\<\K\k*\ze\s*(/
29syn keyword goSnarkCircuitPrivate private nextgroup=goSnarkCircuitInputName skipwhite
30syn keyword goSnarkCircuitPublic public nextgroup=goSnarkCircuitInputName skipwhite
31syn match goSnarkCircuitInputName '\i\+' contained
32syn match goSnarkCircuitBraces "[{}\[\]]"
33syn match goSnarkCircuitParens "[()]"
34syn region goSnarkCircuitPath start=+"+ skip=+\\\\\|\\"+ end=+"\|$+
35
36syn sync fromstart
37syn sync maxlines=100
38
39" Define the default highlighting.
40" Only when an item doesn't have highlighting yet
41hi def link goSnarkCircuitLineComment Comment
42hi def link goSnarkCircuitCommentTodo Todo
43hi def link goSnarkCircuitSpecialCharacter Special
44hi def link goSnarkCircuitNumber Number
45hi def link goSnarkCircuitOpSymbols Operator
46hi def link goSnarkCircuitFuncCall Function
47hi def link goSnarkCircuitEquals Identifier
48hi def link goSnarkCircuitFunction Keyword
49hi def link goSnarkCircuitImport Keyword
50hi def link goSnarkCircuitBraces Function
51hi def link goSnarkCircuitPrivate Keyword
52hi def link goSnarkCircuitPublic Keyword
53hi def link goSnarkCircuitInputName Special
54hi def link goSnarkCircuitOut Special
55hi def link goSnarkCircuitPrivatePublic Keyword
56hi def link goSnarkCircuitPath String
57
58let b:current_syntax = "go-snark-circuit"
59if main_syntax == 'go-snark-circuit'
60 unlet main_syntax
61endif
62let &cpo = s:cpo_save
63unlet s:cpo_save
64
65" vim: ts=8