mirror of
https://github.com/neovim/neovim.git
synced 2026-01-03 01:46:31 +10:00
This reverts commits:
- 6b652a785033fd4164e049492a7327c1ed7c3e5f
- 2f689d5abde0ccddca9e20d8c93a0299bd054e32
- a025a46d4169587145fb54f04af349cd05cb6122
Several email addresses that are known to be valid caused bounces
due to an issue with my email setup. The previous commits incorrectly
marked these addresses as invalid. So revert the whole thing again.
62d8f3dab5
N/A patch:
vim-patch:2f689d5: runtime: mark more invalid email addresses
Co-authored-by: Christian Brabandt <cb@256bit.org>
158 lines
5.2 KiB
VimL
158 lines
5.2 KiB
VimL
" 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')
|
|
finish
|
|
endif
|
|
syn include @haredoc syntax/haredoc.vim
|
|
let b:current_syntax = 'hare'
|
|
|
|
" Syntax {{{1
|
|
syn case match
|
|
syn iskeyword @,48-57,@-@,_
|
|
|
|
" 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 hareOperator as is
|
|
syn keyword hareRepeat for
|
|
syn keyword hareTypedef type
|
|
|
|
" Attributes.
|
|
syn keyword hareAttribute @fini @init @test
|
|
syn keyword hareAttribute @offset @packed
|
|
syn keyword hareAttribute @symbol
|
|
syn keyword hareAttribute @threadlocal
|
|
|
|
" 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 vaarg vaend vastart
|
|
|
|
" Types {{{2
|
|
syn keyword hareType bool
|
|
syn keyword hareType done
|
|
syn keyword hareType f32 f64
|
|
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
|
|
|
|
" Other types.
|
|
syn keyword hareStorageClass nullable
|
|
syn keyword hareStructure enum struct union
|
|
|
|
" Literals {{{2
|
|
syn keyword hareBoolean false true
|
|
syn keyword hareConstant null
|
|
|
|
" 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 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
|
|
|
|
" 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
|
|
|
|
" Escape sequences.
|
|
syn match hareEscape '\\[0abfnrtv\\'"]' contained
|
|
syn match hareEscape '\v\\%(x\x{2}|u\x{4}|U\x{8})' contained display
|
|
|
|
" 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
|
|
|
|
" Miscellaneous {{{2
|
|
|
|
" Comments.
|
|
syn region hareComment start='//' end='$' contains=hareTodo,@haredoc,@Spell display
|
|
syn keyword hareTodo FIXME TODO XXX contained
|
|
|
|
" Identifiers.
|
|
syn match hareDelimiter '::' display
|
|
syn match hareName '\<\h\w*\>' nextgroup=@harePostfix skipempty skipwhite transparent
|
|
|
|
" Labels.
|
|
syn match hareLabel ':\h\w*\>' 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
|
|
|
|
" 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
|
|
|
|
" 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 Operator
|
|
hi def link hareComment Comment
|
|
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 Special
|
|
hi def link hareNumber Number
|
|
hi def link hareOperator Operator
|
|
hi def link hareRepeat Repeat
|
|
hi def link hareRune Character
|
|
hi def link hareStorageClass StorageClass
|
|
hi def link hareString String
|
|
hi def link hareStructure Structure
|
|
hi def link hareTodo Todo
|
|
hi def link hareType Type
|
|
hi def link hareTypedef Typedef
|
|
|
|
" Highlight embedded haredoc references.
|
|
hi! def link haredocRefValid SpecialComment
|
|
|
|
" Highlight whitespace errors by default.
|
|
if get(g:, 'hare_space_error', 1)
|
|
hi def link hareSpaceError Error
|
|
endif
|
|
|
|
" vim: et sts=2 sw=2 ts=8
|