48 lines
1000 B
VimL
48 lines
1000 B
VimL
" Vim syntax file
|
|
" Language: Kyn
|
|
|
|
if exists("b:current_syntax")
|
|
finish
|
|
endif
|
|
|
|
" Keywords
|
|
syn keyword kynKeyword fun struct let if while return assert is
|
|
|
|
" Instructions/Modules
|
|
syn keyword kynInstruction println print math exit compare input concat split file
|
|
|
|
" Comments
|
|
syn match kynComment /#.*/
|
|
|
|
" Strings
|
|
syn region kynString start=/"/ end=/"/
|
|
|
|
" Numbers
|
|
syn match kynNumber /\d\+\(\.\d\+\)\?/
|
|
|
|
" Variables
|
|
syn match kynVariable /\$[a-zA-Z_][a-zA-Z0-9_]*/
|
|
|
|
" Type Placeholders
|
|
syn match kynType /<[a-zA-Z_][a-zA-Z0-9_]*>/
|
|
|
|
" Operators
|
|
syn match kynOperator /[=+\-*\/^%]/
|
|
syn match kynOperator /==\|!=\|>=\|<=/
|
|
|
|
" Special variables
|
|
syn keyword kynSpecial self
|
|
|
|
" Highlighting links
|
|
hi def link kynKeyword Keyword
|
|
hi def link kynInstruction Statement
|
|
hi def link kynComment Comment
|
|
hi def link kynString String
|
|
hi def link kynNumber Number
|
|
hi def link kynVariable Identifier
|
|
hi def link kynType Type
|
|
hi def link kynOperator Operator
|
|
hi def link kynSpecial Special
|
|
|
|
let b:current_syntax = "kyn"
|