123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- " Vim syntax file
- " Language: Chatito
- " Maintainer: ObserverOfTime <chronobserver@disroot.org>
- " Filenames: *.chatito
- " Last Change: 2022 Sep 19
- if exists('b:current_syntax')
- finish
- endif
- " Comment
- syn keyword chatitoTodo contained TODO FIXME XXX
- syn match chatitoComment /^#.*/ contains=chatitoTodo,@Spell
- syn match chatitoComment +^//.*+ contains=chatitoTodo,@Spell
- " Import
- syn match chatitoImport /^import \+.*$/ transparent contains=chatitoImportKeyword,chatitoImportFile
- syn keyword chatitoImportKeyword import contained nextgroup=chatitoImportFile
- syn match chatitoImportFile /.*$/ contained skipwhite
- " Intent
- syn match chatitoIntent /^%\[[^\]?]\+\]\((.\+)\)\=$/ contains=chatitoArgs
- " Slot
- syn match chatitoSlot /^@\[[^\]?#]\+\(#[^\]?#]\+\)\=\]\((.\+)\)\=$/ contains=chatitoArgs,chatitoVariation
- syn match chatitoSlot /@\[[^\]?#]\+\(#[^\]?#]\+\)\=?\=\]/ contained contains=chatitoOpt,chatitoVariation
- " Alias
- syn match chatitoAlias /^\~\[[^\]?]\+\]\=$/
- syn match chatitoAlias /\~\[[^\]?]\+?\=\]/ contained contains=chatitoOpt
- " Probability
- syn match chatitoProbability /\*\[\d\+\(\.\d\+\)\=%\=\]/ contained
- " Optional
- syn match chatitoOpt '?' contained
- " Arguments
- syn match chatitoArgs /(.\+)/ contained
- " Variation
- syn match chatitoVariation /#[^\]?#]\+/ contained
- " Value
- syn match chatitoValue /^ \{4\}\zs.\+$/ contains=chatitoProbability,chatitoSlot,chatitoAlias,@Spell
- " Errors
- syn match chatitoError /^\t/
- hi def link chatitoAlias String
- hi def link chatitoArgs Special
- hi def link chatitoComment Comment
- hi def link chatitoError Error
- hi def link chatitoImportKeyword Include
- hi def link chatitoIntent Statement
- hi def link chatitoOpt SpecialChar
- hi def link chatitoProbability Number
- hi def link chatitoSlot Identifier
- hi def link chatitoTodo Todo
- hi def link chatitoVariation Special
- let b:current_syntax = 'chatito'
|