mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-03 17:24:29 +00:00 
			
		
		
		
	runtime(zserio): add zserio syntax (vim/vim#13005)
acb91d3905
Co-authored-by: Dominique Pellé <dominique.pelle@gmail.com>
		
	
		
			
				
	
	
		
			113 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			113 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
" Vim syntax file
 | 
						|
" Language:	Zserio
 | 
						|
" Maintainer:	Dominique Pellé <dominique.pelle@gmail.com>
 | 
						|
" Last Change:	2023 Jun 18
 | 
						|
"
 | 
						|
" Zserio is a serialization schema language for modeling binary
 | 
						|
" data types, bitstreams or file formats. Based on the zserio
 | 
						|
" language it is possible to automatically generate encoders and
 | 
						|
" decoders for a given schema in various target languages
 | 
						|
" (e.g. Java, C++, Python).
 | 
						|
"
 | 
						|
" Zserio is an evolution of the DataScript language.
 | 
						|
"
 | 
						|
" For more information, see:
 | 
						|
" - http://zserio.org/
 | 
						|
" - https://github.com/ndsev/zserio
 | 
						|
 | 
						|
" quit when a syntax file was already loaded
 | 
						|
if exists("b:current_syntax")
 | 
						|
  finish
 | 
						|
endif
 | 
						|
 | 
						|
let s:keepcpo= &cpo
 | 
						|
set cpo&vim
 | 
						|
 | 
						|
syn case match
 | 
						|
 | 
						|
syn keyword zserioPackage      import package zserio_compatibility_version
 | 
						|
syn keyword zserioType         bit bool string
 | 
						|
syn keyword zserioType         int int8 int16 int32 int64
 | 
						|
syn keyword zserioType         uint8 uint16 uint32 uint64
 | 
						|
syn keyword zserioType         float16 float32 float64
 | 
						|
syn keyword zserioType         varint varint16 varint32 varint64
 | 
						|
syn keyword zserioType         varuint varsize varuint16 varuint32 varuint64
 | 
						|
syn keyword zserioAlign        align
 | 
						|
syn keyword zserioLabel        case default
 | 
						|
syn keyword zserioConditional  if condition
 | 
						|
syn keyword zserioBoolean      true false
 | 
						|
syn keyword zserioCompound     struct union choice on enum bitmask subtype
 | 
						|
syn keyword zserioKeyword      function return
 | 
						|
syn keyword zserioOperator     lengthof valueof instanceof numbits isset
 | 
						|
syn keyword zserioRpc          service pubsub topic publish subscribe
 | 
						|
syn keyword zserioRule         rule_group rule
 | 
						|
syn keyword zserioStorageClass const implicit packed instantiate
 | 
						|
syn keyword zserioTodo         contained TODO FIXME XXX
 | 
						|
syn keyword zserioSql          sql sql_table sql_database sql_virtual sql_without_rowid
 | 
						|
syn keyword zserioSql          explicit using
 | 
						|
 | 
						|
" zserioCommentGroup allows adding matches for special things in comments.
 | 
						|
syn cluster zserioCommentGroup  contains=zserioTodo
 | 
						|
 | 
						|
syn match   zserioOffset        display "^\s*[a-zA-Z_:\.][a-zA-Z0-9_:\.]*\s*:"
 | 
						|
 | 
						|
syn match   zserioNumber        display "\<\d\+\>"
 | 
						|
syn match   zserioNumberHex     display "\<0[xX]\x\+\>"
 | 
						|
syn match   zserioNumberBin     display "\<[01]\+[bB]\>" contains=zserioBinaryB
 | 
						|
syn match   zserioBinaryB       display contained "[bB]\>"
 | 
						|
syn match   zserioOctal         display "\<0\o\+\>" contains=zserioOctalZero
 | 
						|
syn match   zserioOctalZero     display contained "\<0"
 | 
						|
 | 
						|
syn match   zserioOctalError    display "\<0\o*[89]\d*\>"
 | 
						|
 | 
						|
syn match   zserioCommentError      display "\*/"
 | 
						|
syn match   zserioCommentStartError display "/\*"me=e-1 contained
 | 
						|
 | 
						|
syn region   zserioCommentL
 | 
						|
  \ start="//" skip="\\$" end="$" keepend
 | 
						|
  \ contains=@zserioCommentGroup,@Spell
 | 
						|
syn region   zserioComment
 | 
						|
  \ matchgroup=zserioCommentStart start="/\*" end="\*/"
 | 
						|
  \ contains=@zserioCommentGroup,zserioCommentStartError,@Spell extend
 | 
						|
 | 
						|
syn region  zserioString
 | 
						|
  \ start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell
 | 
						|
 | 
						|
syn sync ccomment zserioComment
 | 
						|
 | 
						|
" Define the default highlighting.
 | 
						|
hi def link zserioType              Type
 | 
						|
hi def link zserioEndian            StorageClass
 | 
						|
hi def link zserioStorageClass      StorageClass
 | 
						|
hi def link zserioAlign             Label
 | 
						|
hi def link zserioLabel             Label
 | 
						|
hi def link zserioOffset            Label
 | 
						|
hi def link zserioSql               PreProc
 | 
						|
hi def link zserioCompound          Structure
 | 
						|
hi def link zserioConditional       Conditional
 | 
						|
hi def link zserioBoolean           Boolean
 | 
						|
hi def link zserioKeyword           Statement
 | 
						|
hi def link zserioRpc               Keyword
 | 
						|
hi def link zserioRule              Keyword
 | 
						|
hi def link zserioString            String
 | 
						|
hi def link zserioNumber            Number
 | 
						|
hi def link zserioNumberBin         Number
 | 
						|
hi def link zserioBinaryB           Special
 | 
						|
hi def link zserioOctal             Number
 | 
						|
hi def link zserioOctalZero         Special
 | 
						|
hi def link zserioOctalError        Error
 | 
						|
hi def link zserioNumberHex         Number
 | 
						|
hi def link zserioTodo              Todo
 | 
						|
hi def link zserioOperator          Operator
 | 
						|
hi def link zserioPackage           Include
 | 
						|
hi def link zserioCommentError      Error
 | 
						|
hi def link zserioCommentStartError Error
 | 
						|
hi def link zserioCommentStart      zserioComment
 | 
						|
hi def link zserioCommentL          zserioComment
 | 
						|
hi def link zserioComment           Comment
 | 
						|
 | 
						|
let b:current_syntax = "zserio"
 | 
						|
 | 
						|
let &cpo = s:keepcpo
 | 
						|
unlet s:keepcpo
 |