view runtime/syntax/zserio.vim @ 34625:ad1b0609b2f8 v9.1.0201

patch 9.1.0201: gM not working correctly with virt text Commit: https://github.com/vim/vim/commit/366c81a2005370ac738618d889ec0337397a9f96 Author: Dylan Thacker-Smith <dylan.ah.smith@gmail.com> Date: Sun Mar 24 09:46:56 2024 +0100 patch 9.1.0201: gM not working correctly with virt text Problem: `gM` would include outer virtual text and its padding when getting the line length used to calculate the middle of the line, putting the cursor much closer to virtual text lines. Solution: Exclude outer virtual text in getting the line length for `gM`, so that virtual text doesn't influence where the cursor is moved to (Dylan Thacker-Smith). closes: #14262 Signed-off-by: Dylan Thacker-Smith <dylan.ah.smith@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Sun, 24 Mar 2024 10:00:07 +0100
parents 0fdb758ceec2
children
line wrap: on
line source

" 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