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 goSnarkCircuitStatement return
28syn keyword goSnarkCircuitImport import
29syn match goSnarkCircuitFuncCall /\<\K\k*\ze\s*(/
30syn keyword goSnarkCircuitPrivate private nextgroup=goSnarkCircuitInputName skipwhite
31syn keyword goSnarkCircuitPublic public nextgroup=goSnarkCircuitInputName skipwhite
32syn match goSnarkCircuitInputName '\i\+' contained
33syn match goSnarkCircuitBraces "[{}\[\]]"
34syn match goSnarkCircuitParens "[()]"
35syn region goSnarkCircuitPath start=+"+ skip=+\\\\\|\\"+ end=+"\|$+
36
37syn sync fromstart
38syn sync maxlines=100
39
40" Define the default highlighting.
41" Only when an item doesn't have highlighting yet
42hi def link goSnarkCircuitLineComment Comment
43hi def link goSnarkCircuitCommentTodo Todo
44hi def link goSnarkCircuitSpecialCharacter Special
45hi def link goSnarkCircuitNumber Number
46hi def link goSnarkCircuitOpSymbols Operator
47hi def link goSnarkCircuitFuncCall Function
48hi def link goSnarkCircuitEquals Identifier
49hi def link goSnarkCircuitFunction Keyword
50hi def link goSnarkCircuitStatement Statement
51hi def link goSnarkCircuitImport Keyword
52hi def link goSnarkCircuitBraces Function
53hi def link goSnarkCircuitPrivate Keyword
54hi def link goSnarkCircuitPublic Keyword
55hi def link goSnarkCircuitInputName Special
56hi def link goSnarkCircuitOut Special
57hi def link goSnarkCircuitPrivatePublic Keyword
58hi def link goSnarkCircuitPath String
59
60let b:current_syntax = "go-snark-circuit"
61if main_syntax == 'go-snark-circuit'
62 unlet main_syntax
63endif
64let &cpo = s:cpo_save
65unlet s:cpo_save
66
67" vim: ts=8