summaryrefslogtreecommitdiff
path: root/uvim/runtime/syntax/hare.vim
diff options
context:
space:
mode:
authorMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-03 22:21:25 +0300
committerMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-04 00:23:03 +0300
commit2eae5db069dc171f74cd863487655f6a88e5384d (patch)
tree2d9d05e09978a2a44acbfbb8d651f240df3ca052 /uvim/runtime/syntax/hare.vim
parent473d922faed49241a5d29d9e37dc4819cd512006 (diff)
downloadProject-Tick-2eae5db069dc171f74cd863487655f6a88e5384d.tar.gz
Project-Tick-2eae5db069dc171f74cd863487655f6a88e5384d.zip
NOISSUE rebrand vim to MNV's not Vim
Signed-off-by: Mehmet Samet Duman <yongdohyun@projecttick.org>
Diffstat (limited to 'uvim/runtime/syntax/hare.vim')
-rw-r--r--uvim/runtime/syntax/hare.vim262
1 files changed, 0 insertions, 262 deletions
diff --git a/uvim/runtime/syntax/hare.vim b/uvim/runtime/syntax/hare.vim
deleted file mode 100644
index d94d6a7091..0000000000
--- a/uvim/runtime/syntax/hare.vim
+++ /dev/null
@@ -1,262 +0,0 @@
-vim9script
-
-# Vim syntax file.
-# Language: Hare
-# Maintainer: Amelia Clarke <selene@perilune.dev>
-# Last Change: 2026 Feb 15
-# Upstream: https://git.sr.ht/~sircmpwn/hare.vim
-
-if exists('b:current_syntax')
- finish
-endif
-
-# Syntax {{{1
-syn case match
-syn iskeyword @,48-57,@-@,_
-
-# Identifiers {{{2
-syn cluster hareIdentifier contains=hareName,hareScopeDelimiter,@hareReserved
-syn match hareIdentifier '\v<\h\w*%(::\h\w*)*>' contains=@hareIdentifier nextgroup=hareScopeDelimiter,@harePostfix skipempty skipwhite
-syn match hareName '\<\h\w*\>' contained transparent
-
-# Reserved keywords.
-syn cluster hareReserved contains=hareBoolean,hareBuiltin,hareConditional,hareConstant,hareDefine,hareInclude,hareKeyword,hareLabel,hareOperator,hareRepeat,hareStatement,hareStorageClass,hareStructure,hareType,hareTypedef
-
-# Punctuators {{{2
-
-# Balanced tokens.
-syn region hareBraces matchgroup=hareBrace start='{' end='}' contains=TOP fold transparent
-syn region hareBrackets matchgroup=hareBracket start='\[' end=']' contains=TOP transparent
-syn region hareParens matchgroup=hareParen start='(' end=')' contains=TOP nextgroup=@harePostfix skipempty skipwhite transparent
-
-# Symbolic operators.
-syn match hareSymbolOperator '\.\{2,3}'
-syn match hareSymbolOperator '[!<=>]=\?'
-syn match hareSymbolOperator '=>'
-
-# Additive and multiplicative arithmetic.
-syn match hareSymbolOperator '[-+*/%]=\?'
-
-# Bitwise arithmetic.
-syn match hareSymbolOperator '\%(<<\|>>\)=\?'
-syn match hareSymbolOperator '[&^|]=\?'
-syn match hareSymbolOperator '\~'
-
-# Logical arithmetic.
-syn match hareSymbolOperator '\%(&&\|^^\|||\)=\?'
-
-# Types {{{2
-syn cluster hareType contains=hareArray,hareError,harePointer,hareStorageClass,hareStructure,hareTaggedUnion,hareType
-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 nomem
-syn keyword hareType opaque
-syn keyword hareType rune str
-syn keyword hareType u8 u16 u32 u64 uint uintptr
-syn keyword hareType void
-
-# C ABI.
-syn keyword hareType valist
-
-# Pointer types.
-syn match harePointer '*' contained containedin=hareTaggedUnion,hareTypeParens nextgroup=@hareType skipempty skipwhite
-syn keyword hareStorageClass nullable nextgroup=harePointer skipempty skipwhite
-
-# Slice and array types.
-syn region hareArray matchgroup=hareBracket start='\[' end=']' contained containedin=hareTaggedUnion,hareTypeParens contains=TOP nextgroup=@hareType skipempty skipwhite transparent
-syn match hareArray '\[[*_]]' contains=hareArrayBounds nextgroup=@hareType skipempty skipwhite transparent
-syn match hareArrayBounds '*' contained display
-
-# Tagged union and tuple types.
-syn region hareTaggedUnion matchgroup=hareParen start='(' end=')' contained containedin=hareTaggedUnion,hareTypeParens contains=TOP transparent
-syn match hareTaggedUnionBar '|' contained containedin=hareTaggedUnion
-
-# Other types.
-syn match hareError '!' contained containedin=hareTaggedUnion,hareTypeParens nextgroup=@hareType skipempty skipwhite
-syn keyword hareStructure enum struct union
-
-# Declarations {{{2
-syn keyword hareDefine def
-syn keyword hareInclude use
-syn keyword hareKeyword export static
-syn keyword hareKeyword fn nextgroup=@hareFunction,@hareReserved skipempty skipwhite
-syn keyword hareStatement const let
-syn keyword hareTypedef type nextgroup=hareTypedefBinding,@hareReserved skipempty skipwhite
-
-# Highlight `const` as a storage-class in places types are expected.
-syn keyword hareStorageClass const contained containedin=hareTaggedUnion,hareTypeParens nextgroup=@hareType skipempty skipwhite
-
-# Function declarations.
-syn cluster hareFunction contains=hareFunction,hareFunctionParams
-syn match hareFunction '\v<\h\w*%(::\h\w*)*>' contained contains=@hareIdentifier nextgroup=hareFunctionParams skipempty skipwhite
-syn region hareFunctionParams matchgroup=hareParen start='(' end=')' contained contains=TOP nextgroup=@hareType skipempty skipwhite transparent
-
-# Type declarations.
-# XXX: Does not yet account for type declarations with multiple bindings.
-syn match hareTypedefBinding '\v<\h\w*%(::\h\w*)*>' contained nextgroup=hareTypedefEquals skipempty skipwhite transparent
-syn match hareTypedefEquals '=' contained nextgroup=@hareType skipempty skipwhite transparent
-
-# Attributes {{{3
-syn keyword hareAttribute @init @fini @test
-syn keyword hareAttribute @packed
-syn keyword hareAttribute @symbol nextgroup=hareAttributeParens skipempty skipwhite
-syn keyword hareAttribute @threadlocal
-syn keyword hareAttribute @undefined
-
-# Match the parens following attributes.
-syn region hareAttributeParens matchgroup=hareParen start='(' end=')' contained contains=TOP transparent
-
-# Expressions {{{2
-syn keyword hareConditional else
-syn keyword hareConditional if nextgroup=hareConditionParens skipempty skipwhite
-syn keyword hareConditional match switch nextgroup=@hareCondition skipempty skipwhite
-syn keyword hareLabel case nextgroup=@hareType skipempty skipwhite
-syn keyword hareOperator as is nextgroup=@hareType skipempty skipwhite
-syn keyword hareRepeat for nextgroup=@hareCondition skipempty skipwhite
-syn keyword hareStatement break continue return yield
-syn keyword hareStatement defer
-
-# Match the parens in conditionals and loops.
-syn cluster hareCondition contains=hareConditionLabel,hareConditionParens
-syn match hareConditionLabel ':\h\w*\>' contained nextgroup=hareConditionParens skipempty skipwhite transparent
-syn region hareConditionParens matchgroup=hareParen start='(' end=')' contained contains=TOP transparent
-
-# Builtins {{{3
-syn keyword hareBuiltin abort assert
-syn keyword hareBuiltin align nextgroup=hareTypeParens skipempty skipwhite
-syn keyword hareBuiltin alloc free
-syn keyword hareBuiltin append insert delete
-syn keyword hareBuiltin len offset
-
-# C ABI.
-syn keyword hareBuiltin vastart vaarg vaend
-
-# Highlight `size` as a type unless it is followed by an open paren.
-syn match hareType '\<size\>'
-syn match hareBuiltin '\<size\ze(' nextgroup=hareTypeParens
-
-# Match the parens in builtin expressions expecting a type.
-syn region hareTypeParens matchgroup=hareParen start='(' end=')' contained contains=TOP nextgroup=@harePostfix skipempty skipwhite transparent
-
-# Postfix expressions {{{3
-# TODO: Match postfix expressions after literals.
-syn cluster harePostfix contains=hareCast,hareField,hareSlice,hareSpecial
-
-# Casts and type hints.
-syn match hareCast ':' nextgroup=@hareType skipempty skipwhite
-
-# Error checking.
-syn match hareSpecial '!=\@!' contained nextgroup=@harePostfix skipempty skipwhite
-syn match hareSpecial '?' nextgroup=@harePostfix skipempty skipwhite
-
-# Field access.
-syn match hareField '\.\w\+\>' contained contains=hareName,hareNumber,@hareReserved nextgroup=@harePostfix skipempty skipwhite transparent
-
-# Indexing and slicing.
-syn region hareSlice matchgroup=hareBracket start='\[' end=']' contained contains=TOP nextgroup=@harePostfix skipempty skipwhite transparent
-
-# Literals {{{2
-syn keyword hareBoolean true false
-syn keyword hareConstant null
-
-# Integers {{{3
-syn match hareNumber '\v<%(0|[1-9]%(_?\d)*)%([Ee]\+?\d+)?%([iu]%(8|16|32|64)?|z)?>'
-syn match hareNumber '\v<0b[01]%(_?[01])*%([iu]%(8|16|32|64)?|z)?>'
-syn match hareNumber '\v<0o\o%(_?\o)*%([iu]%(8|16|32|64)?|z)?>'
-syn match hareNumber '\v<0x\x%(_?\x)*%([iu]%(8|16|32|64)?|z)?>'
-
-# Floats {{{3
-# XXX: Technically, the third form is not a valid floating literal according to
-# the specification, but is currently accepted by the Hare compiler and
-# used occasionally within the standard library.
-syn match hareFloat '\v<%(0|[1-9]%(_?\d)*)\.\d%(_?\d)*%([Ee][+-]?\d+)?%(f32|f64)?>'
-syn match hareFloat '\v<%(0|[1-9]%(_?\d)*)%([Ee][+-]?\d+)?%(f32|f64)>'
-syn match hareFloat '\v<%(0|[1-9]%(_?\d)*)[Ee]-\d+>'
-syn match hareFloat '\v<0x\x%(_?\x)*%(\.\x%(_?\x)*)?[Pp][+-]?\d+%(f32|f64)?>'
-
-# Rune and string literals {{{3
-syn region hareRune matchgroup=hareRuneDelimiter start="'" skip="\\'" end="'" contains=hareEscape
-syn region hareString matchgroup=hareStringDelimiter start='"' skip='\\"' end='"' contains=hareEscape,hareFormat
-syn region hareString matchgroup=hareStringDelimiter 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+|[- +=befgoxX]|F[.2EsSU]|_%(\_[^\\]|\\%([0abfnrtv\\'"]|x\x{2}|u\x{4}|U\x{8})))*)?}' contained contains=hareEscape
-syn match hareFormat '{\d*%\d*}' contained display
-syn match hareFormat '{{\|}}' contained
-
-# Miscellaneous {{{2
-
-# Annotations.
-syn region hareAnnotation start='#\[' end=']' contains=hareAnnotationIdentifier,hareComment,hareRune,hareString
-syn match hareAnnotationIdentifier '\v#\[\s*\zs\h\w*%(::\h\w*)*>' contained contains=hareName,@hareReserved nextgroup=hareAnnotationParens skipempty skipwhite
-syn region hareAnnotationParens matchgroup=hareAnnotationParen start='(' end=')' contained contains=TOP
-
-# Comments.
-syn region hareComment excludenl start='//' end='$' contains=hareSpecialComment,hareTodo,@Spell
-syn match hareSpecialComment '\v\[\[\h\w*%(::\h\w*)*%(::)?]]' contained contains=@NoSpell display
-syn keyword hareTodo FIXME TODO XXX contained
-
-# Scope delimiters.
-syn match hareScopeDelimiter '::'
-
-# User labels.
-syn match hareUserLabel ':\h\w*\>' contains=hareName,@hareReserved
-
-# Default highlighting {{{1
-hi def link hareAnnotation Special
-hi def link hareAnnotationIdentifier hareAnnotation
-hi def link hareAnnotationParen hareAnnotation
-hi def link hareArrayBounds harePointer
-hi def link hareAttribute PreProc
-hi def link hareBoolean Boolean
-hi def link hareBuiltin hareOperator
-hi def link hareComment Comment
-hi def link hareConditional Conditional
-hi def link hareConstant Constant
-hi def link hareDefine Define
-hi def link hareError hareSpecial
-hi def link hareEscape SpecialChar
-hi def link hareFloat Float
-hi def link hareFormat SpecialChar
-hi def link hareFunction Function
-hi def link hareInclude Include
-hi def link hareKeyword Keyword
-hi def link hareLabel Label
-hi def link hareNumber Number
-hi def link hareOperator Operator
-hi def link harePointer hareStorageClass
-hi def link hareRepeat Repeat
-hi def link hareRune Character
-hi def link hareRuneDelimiter hareRune
-hi def link hareScopeDelimiter Delimiter
-hi def link hareSpecial Special
-hi def link hareSpecialComment SpecialComment
-hi def link hareStatement Statement
-hi def link hareStorageClass StorageClass
-hi def link hareString String
-hi def link hareStringDelimiter hareString
-hi def link hareStructure Structure
-hi def link hareTodo Todo
-hi def link hareType Type
-hi def link hareTypedef Typedef
-hi def link hareUserLabel Identifier
-
-# Highlight incorrect whitespace by default.
-syn match hareSpaceError excludenl '\s\+$' containedin=ALL display
-syn match hareSpaceError ' \+\ze\t' display
-if get(g:, 'hare_space_error', 1)
- hi! def link hareSpaceError Error
-else
- hi! def link hareSpaceError NONE
-endif
-
-b:current_syntax = 'hare'
-
-# vim: fdm=marker et sts=2 sw=2 ts=8 tw=80