mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	 9ca313fb96
			
		
	
	9ca313fb96
	
	
	
		
			
			Update runtime files
9fbdbb814f
Skip ftplugin/vim.vim (vim9script change)
Drop indent/vim.vim and autoload/dist/vimindent.vim (vim9script rewrite)
		
	
		
			
				
	
	
		
			134 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			134 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " PRELUDE {{{1
 | |
| " Vim syntax file
 | |
| " Language: Hare
 | |
| " Maintainer: Amelia Clarke <me@rsaihe.dev>
 | |
| " Last Change: 2022-09-21
 | |
| 
 | |
| if exists("b:current_syntax")
 | |
|   finish
 | |
| endif
 | |
| let b:current_syntax = "hare"
 | |
| 
 | |
| " SYNTAX {{{1
 | |
| syn case match
 | |
| 
 | |
| " KEYWORDS {{{2
 | |
| syn keyword hareConditional if else match switch
 | |
| syn keyword hareKeyword break continue return yield
 | |
| syn keyword hareKeyword defer
 | |
| 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
 | |
| 
 | |
| " BUILTINS {{{2
 | |
| syn keyword hareBuiltin abort
 | |
| syn keyword hareBuiltin alloc free
 | |
| syn keyword hareBuiltin append delete insert
 | |
| syn keyword hareBuiltin assert
 | |
| syn keyword hareBuiltin len offset
 | |
| 
 | |
| " TYPES {{{2
 | |
| syn keyword hareType bool
 | |
| syn keyword hareType char str
 | |
| 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 uintptr
 | |
| syn keyword hareType void
 | |
| 
 | |
| " C ABI.
 | |
| syn keyword hareType valist
 | |
| 
 | |
| " LITERALS {{{2
 | |
| syn keyword hareBoolean true false
 | |
| syn keyword hareNull 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
 | |
| 
 | |
| " 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
 | |
| 
 | |
| " 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
 | |
| 
 | |
| " MISCELLANEOUS {{{2
 | |
| syn keyword hareTodo FIXME TODO XXX contained
 | |
| 
 | |
| " Attributes.
 | |
| syn match hareAttribute "@[a-z]*"
 | |
| 
 | |
| " Blocks.
 | |
| syn region hareBlock start="{" end="}" fold transparent
 | |
| 
 | |
| " Comments.
 | |
| syn region hareComment start="//" end="$" contains=hareCommentDoc,hareTodo,@Spell display keepend
 | |
| syn region hareCommentDoc start="\[\[" end="]]\|\ze\_s" contained display
 | |
| 
 | |
| " 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
 | |
| 
 | |
| " Trailing whitespace.
 | |
| syn match hareSpaceError "\v\s+$" display excludenl
 | |
| syn match hareSpaceError "\v\zs +\ze\t" display
 | |
| 
 | |
| " Use statement.
 | |
| syn region hareUse start="\v^\s*\zsuse>" end=";" contains=hareComment display
 | |
| 
 | |
| syn match hareErrorAssertion "\v(^([^/]|//@!)*\)\_s*)@<=!\=@!"
 | |
| syn match hareQuestionMark "?"
 | |
| 
 | |
| " DEFAULT HIGHLIGHTING {{{1
 | |
| hi def link hareAttribute Keyword
 | |
| hi def link hareBoolean Boolean
 | |
| hi def link hareBuiltin Function
 | |
| hi def link hareComment Comment
 | |
| hi def link hareCommentDoc SpecialComment
 | |
| hi def link hareConditional Conditional
 | |
| hi def link hareEscape SpecialChar
 | |
| hi def link hareFloat Float
 | |
| hi def link hareFormat SpecialChar
 | |
| hi def link hareKeyword Keyword
 | |
| hi def link hareLabel Label
 | |
| hi def link hareNull Constant
 | |
| 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
 | |
| 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
 | |
| hi def link hareUse PreProc
 | |
| 
 | |
| hi def link hareSpaceError Error
 | |
| autocmd InsertEnter * hi link hareSpaceError NONE
 | |
| autocmd InsertLeave * hi link hareSpaceError Error
 | |
| 
 | |
| hi def hareErrorAssertion ctermfg=red cterm=bold guifg=red gui=bold
 | |
| 
 | |
| " vim: tabstop=8 shiftwidth=2 expandtab
 |