mirror of
https://github.com/vim/vim.git
synced 2025-10-18 07:54:29 -04:00
patch 9.1.0442: hare runtime files outdated
Problem: hare runtime files outdated Solution: runtime(hare): update hare.vim to match upstream (Amelia Clarke) closes: #14836 Signed-off-by: Amelia Clarke <selene@perilune.dev> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
2b09de9104
commit
35dfe58a54
@@ -1,119 +1,142 @@
|
||||
" PRELUDE {{{1
|
||||
" Vim syntax file
|
||||
" Language: Hare
|
||||
" Maintainer: Amelia Clarke <me@rsaihe.dev>
|
||||
" Last Change: 2022-09-21
|
||||
" Vim syntax file.
|
||||
" Language: Hare
|
||||
" Maintainer: Amelia Clarke <selene@perilune.dev>
|
||||
" Last Change: 2024-05-10
|
||||
" Upstream: https://git.sr.ht/~sircmpwn/hare.vim
|
||||
|
||||
if exists("b:current_syntax")
|
||||
if exists('b:current_syntax')
|
||||
finish
|
||||
endif
|
||||
let b:current_syntax = "hare"
|
||||
syn include @haredoc syntax/haredoc.vim
|
||||
let b:current_syntax = 'hare'
|
||||
|
||||
" SYNTAX {{{1
|
||||
" Syntax {{{1
|
||||
syn case match
|
||||
syn iskeyword @,48-57,@-@,_
|
||||
|
||||
" KEYWORDS {{{2
|
||||
syn keyword hareConditional if else match switch
|
||||
" Keywords {{{2
|
||||
syn keyword hareConditional else if match switch
|
||||
syn keyword hareDefine def
|
||||
syn keyword hareInclude use
|
||||
syn keyword hareKeyword break continue return yield
|
||||
syn keyword hareKeyword case
|
||||
syn keyword hareKeyword const let
|
||||
syn keyword hareKeyword defer
|
||||
syn keyword hareKeyword export static
|
||||
syn keyword hareKeyword fn
|
||||
syn keyword hareKeyword let
|
||||
syn keyword hareLabel case
|
||||
syn keyword hareOperator as is
|
||||
syn keyword hareRepeat for
|
||||
syn keyword hareStorageClass const def export nullable static
|
||||
syn keyword hareStructure enum struct union
|
||||
syn keyword hareTypedef type
|
||||
|
||||
" C ABI.
|
||||
syn keyword hareKeyword vastart vaarg vaend
|
||||
" Attributes.
|
||||
syn keyword hareAttribute @fini @init @test
|
||||
syn keyword hareAttribute @offset @packed
|
||||
syn keyword hareAttribute @symbol
|
||||
syn keyword hareAttribute @threadlocal
|
||||
|
||||
" BUILTINS {{{2
|
||||
syn keyword hareBuiltin abort
|
||||
" Builtins.
|
||||
syn keyword hareBuiltin abort assert
|
||||
syn keyword hareBuiltin align len offset
|
||||
syn keyword hareBuiltin alloc free
|
||||
syn keyword hareBuiltin append delete insert
|
||||
syn keyword hareBuiltin assert
|
||||
syn keyword hareBuiltin len offset
|
||||
syn keyword hareBuiltin vaarg vaend vastart
|
||||
|
||||
" TYPES {{{2
|
||||
" Types {{{2
|
||||
syn keyword hareType bool
|
||||
syn keyword hareType char str
|
||||
syn keyword hareType done
|
||||
syn keyword hareType f32 f64
|
||||
syn keyword hareType u8 u16 u32 u64 i8 i16 i32 i64
|
||||
syn keyword hareType uint int
|
||||
syn keyword hareType rune
|
||||
syn keyword hareType i8 i16 i32 i64 int
|
||||
syn keyword hareType never
|
||||
syn keyword hareType opaque
|
||||
syn keyword hareType rune str
|
||||
syn keyword hareType u8 u16 u32 u64 uint
|
||||
syn keyword hareType uintptr
|
||||
syn keyword hareType valist
|
||||
syn keyword hareType void
|
||||
|
||||
" C ABI.
|
||||
syn keyword hareType valist
|
||||
" Other types.
|
||||
syn keyword hareStorageClass nullable
|
||||
syn keyword hareStructure enum struct union
|
||||
|
||||
" LITERALS {{{2
|
||||
syn keyword hareBoolean true false
|
||||
syn keyword hareNull null
|
||||
" Literals {{{2
|
||||
syn keyword hareBoolean false true
|
||||
syn keyword hareConstant null
|
||||
|
||||
" Number literals.
|
||||
syn match hareNumber "\v(\.@1<!|\.\.)\zs<\d+([Ee][+-]?\d+)?(z|[iu](8|16|32|64)?)?>" display
|
||||
syn match hareNumber "\v(\.@1<!|\.\.)\zs<0b[01]+(z|[iu](8|16|32|64)?)?>" display
|
||||
syn match hareNumber "\v(\.@1<!|\.\.)\zs<0o\o+(z|[iu](8|16|32|64)?)?>" display
|
||||
syn match hareNumber "\v(\.@1<!|\.\.)\zs<0x\x+(z|[iu](8|16|32|64)?)?>" display
|
||||
" Integer literals.
|
||||
syn match hareNumber '\v<%(0|[1-9]%(_?\d)*)%([Ee]\+?\d+)?%([iu]%(8|16|32|64)?|z)?>' display
|
||||
syn match hareNumber '\v<0b[01]%(_?[01])*%([iu]%(8|16|32|64)?|z)?>' display
|
||||
syn match hareNumber '\v<0o\o%(_?\o)*%([iu]%(8|16|32|64)?|z)?>' display
|
||||
syn match hareNumber '\v<0x\x%(_?\x)*%([iu]%(8|16|32|64)?|z)?>' display
|
||||
|
||||
" Floating-point number literals.
|
||||
syn match hareFloat "\v<\d+\.\d+([Ee][+-]?\d+)?(f32|f64)?>" display
|
||||
syn match hareFloat "\v<\d+([Ee][+-]?\d+)?(f32|f64)>" display
|
||||
" Floating-point literals.
|
||||
syn match hareFloat '\v<%(0|[1-9]%(_?\d)*)\.\d%(_?\d)*%([Ee][+-]?\d+)?%(f32|f64)?>' display
|
||||
syn match hareFloat '\v<%(0|[1-9]%(_?\d)*)%([Ee][+-]?\d+)?%(f32|f64)>' display
|
||||
syn match hareFloat '\v<0x\x%(_?\x)*%(\.\x%(_?\x)*)?[Pp][+-]?\d+%(f32|f64)?>' display
|
||||
|
||||
" String and rune literals.
|
||||
syn match hareEscape "\\[\\'"0abfnrtv]" contained display
|
||||
syn match hareEscape "\v\\(x\x{2}|u\x{4}|U\x{8})" contained display
|
||||
syn match hareFormat "\v\{\d*(\%\d*|(:[ 0+-]?\d*(\.\d+)?[Xbox]?))?}" contained display
|
||||
syn match hareFormat "\({{\|}}\)" contained display
|
||||
syn region hareRune start="'" end="'\|$" skip="\\'" contains=hareEscape display extend
|
||||
syn region hareString start=+"+ end=+"\|$+ skip=+\\"+ contains=hareEscape,hareFormat display extend
|
||||
syn region hareString start="`" end="`\|$" contains=hareFormat display
|
||||
" Rune and string literals.
|
||||
syn region hareRune start="'" skip="\\'" end="'" contains=hareEscape
|
||||
syn region hareString start='"' skip='\\"' end='"' contains=hareEscape,hareFormat
|
||||
syn region hareString start='`' end='`' contains=hareFormat
|
||||
|
||||
" MISCELLANEOUS {{{2
|
||||
syn keyword hareTodo FIXME TODO XXX contained
|
||||
" Escape sequences.
|
||||
syn match hareEscape '\\[0abfnrtv\\'"]' contained
|
||||
syn match hareEscape '\v\\%(x\x{2}|u\x{4}|U\x{8})' contained display
|
||||
|
||||
" Attributes.
|
||||
syn match hareAttribute "@[a-z]*"
|
||||
" Format sequences.
|
||||
syn match hareFormat '\v\{\d*%(:%(\.?\d+|[ +\-=Xbefgox]|F[.2ESUs]|_%(.|\\%([0abfnrtv\\'"]|x\x{2}|u\x{4}|U\x{8})))*)?}' contained contains=hareEscape display
|
||||
syn match hareFormat '{\d*%\d*}' contained display
|
||||
syn match hareFormat '{{\|}}' contained display
|
||||
|
||||
" Blocks.
|
||||
syn region hareBlock start="{" end="}" fold transparent
|
||||
" Miscellaneous {{{2
|
||||
|
||||
" Comments.
|
||||
syn region hareComment start="//" end="$" contains=hareCommentDoc,hareTodo,@Spell display keepend
|
||||
syn region hareCommentDoc start="\[\[" end="]]\|\ze\_s" contained display
|
||||
syn region hareComment start='//' end='$' contains=hareTodo,@haredoc,@Spell display
|
||||
syn keyword hareTodo FIXME TODO XXX contained
|
||||
|
||||
" The size keyword can be either a builtin or a type.
|
||||
syn match hareBuiltin "\v<size>\ze(\_s*//.*\_$)*\_s*\(" contains=hareComment
|
||||
syn match hareType "\v<size>((\_s*//.*\_$)*\_s*\()@!" contains=hareComment
|
||||
" Identifiers.
|
||||
syn match hareDelimiter '::' display
|
||||
syn match hareName '\<\h\w*\>' nextgroup=@harePostfix skipempty skipwhite transparent
|
||||
|
||||
" Trailing whitespace.
|
||||
syn match hareSpaceError "\v\s+$" display excludenl
|
||||
syn match hareSpaceError "\v\zs +\ze\t" display
|
||||
" Labels.
|
||||
syn match hareLabel ':\h\w*\>' display
|
||||
|
||||
" Use statement.
|
||||
syn region hareUse start="\v^\s*\zsuse>" end=";" contains=hareComment display
|
||||
" Match `size` as a type unless it is followed by an open paren.
|
||||
syn match hareType '\<size\>' display
|
||||
syn match hareBuiltin '\<size\ze(' display
|
||||
|
||||
syn match hareErrorAssertion "\v(^([^/]|//@!)*\)\_s*)@<=!\=@!"
|
||||
syn match hareQuestionMark "?"
|
||||
" Postfix expressions.
|
||||
syn cluster harePostfix contains=hareErrorTest,hareField,hareIndex,hareParens
|
||||
syn match hareErrorTest '!=\@!' contained nextgroup=@harePostfix skipempty skipwhite
|
||||
syn match hareErrorTest '?' nextgroup=@harePostfix skipempty skipwhite
|
||||
syn match hareField '\.\w*\>'hs=s+1 contained contains=hareNumber nextgroup=@harePostfix skipempty skipwhite
|
||||
syn region hareIndex start='\[' end=']' contained nextgroup=@harePostfix skipempty skipwhite transparent
|
||||
syn region hareParens start='(' end=')' nextgroup=@harePostfix skipempty skipwhite transparent
|
||||
|
||||
" DEFAULT HIGHLIGHTING {{{1
|
||||
hi def link hareAttribute Keyword
|
||||
" Whitespace errors.
|
||||
syn match hareSpaceError '^ \+\ze\t' display
|
||||
syn match hareSpaceError excludenl '\s\+$' containedin=ALL display
|
||||
|
||||
" Folding {{{3
|
||||
syn region hareBlock start='{' end='}' fold transparent
|
||||
|
||||
" Default highlighting {{{1
|
||||
hi def link hareAttribute PreProc
|
||||
hi def link hareBoolean Boolean
|
||||
hi def link hareBuiltin Function
|
||||
hi def link hareBuiltin Operator
|
||||
hi def link hareComment Comment
|
||||
hi def link hareCommentDoc SpecialComment
|
||||
hi def link hareConditional Conditional
|
||||
hi def link hareConstant Constant
|
||||
hi def link hareDefine Define
|
||||
hi def link hareDelimiter Delimiter
|
||||
hi def link hareErrorTest Special
|
||||
hi def link hareEscape SpecialChar
|
||||
hi def link hareFloat Float
|
||||
hi def link hareFormat SpecialChar
|
||||
hi def link hareInclude Include
|
||||
hi def link hareKeyword Keyword
|
||||
hi def link hareLabel Label
|
||||
hi def link hareNull Constant
|
||||
hi def link hareLabel Special
|
||||
hi def link hareNumber Number
|
||||
hi def link hareOperator Operator
|
||||
hi def link hareQuestionMark Special
|
||||
hi def link hareRepeat Repeat
|
||||
hi def link hareRune Character
|
||||
hi def link hareStorageClass StorageClass
|
||||
@@ -122,12 +145,13 @@ hi def link hareStructure Structure
|
||||
hi def link hareTodo Todo
|
||||
hi def link hareType Type
|
||||
hi def link hareTypedef Typedef
|
||||
hi def link hareUse PreProc
|
||||
|
||||
hi def link hareSpaceError Error
|
||||
autocmd InsertEnter * hi link hareSpaceError NONE
|
||||
autocmd InsertLeave * hi link hareSpaceError Error
|
||||
" Highlight embedded haredoc references.
|
||||
hi! def link haredocRefValid SpecialComment
|
||||
|
||||
hi def hareErrorAssertion ctermfg=red cterm=bold guifg=red gui=bold
|
||||
" Highlight whitespace errors by default.
|
||||
if get(g:, 'hare_space_error', 1)
|
||||
hi def link hareSpaceError Error
|
||||
endif
|
||||
|
||||
" vim: tabstop=8 shiftwidth=2 expandtab
|
||||
" vim: et sts=2 sw=2 ts=8
|
||||
|
Reference in New Issue
Block a user