mirror of
https://github.com/neovim/neovim.git
synced 2024-12-29 14:41:06 -07:00
87 lines
4.3 KiB
VimL
87 lines
4.3 KiB
VimL
|
" Vim syntax file
|
||
|
" Language: Idris 2
|
||
|
" Maintainer: Idris Hackers (https://github.com/edwinb/idris2-vim), Serhii Khoma <srghma@gmail.com>
|
||
|
" Last Change: 2024 Nov 05
|
||
|
" Original Author: raichoo (raichoo@googlemail.com)
|
||
|
" License: Vim (see :h license)
|
||
|
" Repository: https://github.com/ShinKage/idris2-nvim
|
||
|
"
|
||
|
|
||
|
if exists("b:current_syntax")
|
||
|
finish
|
||
|
endif
|
||
|
|
||
|
syn match idris2TypeDecl "[a-zA-Z][a-zA-z0-9_']*\s\+:\s\+" contains=idris2Identifier,idris2Operators
|
||
|
syn region idris2Parens matchgroup=idris2Delimiter start="(" end=")" contains=TOP,idris2TypeDecl
|
||
|
syn region idris2Brackets matchgroup=idris2Delimiter start="\[" end="]" contains=TOP,idris2TypeDecl
|
||
|
syn region idris2Block matchgroup=idris2Delimiter start="{" end="}" contains=TOP,idris2TypeDecl
|
||
|
syn region idris2SnocBrackets matchgroup=idris2Delimiter start="\[<" end="]" contains=TOP
|
||
|
syn region idris2ListBrackets matchgroup=idris2Delimiter start="\[>" end="]" contains=TOP
|
||
|
syn keyword idris2Module module namespace
|
||
|
syn keyword idris2Import import
|
||
|
syn keyword idris2Structure data record interface implementation
|
||
|
syn keyword idris2Where where
|
||
|
syn keyword idris2Visibility public abstract private export
|
||
|
syn keyword idris2Block parameters mutual using
|
||
|
syn keyword idris2Totality total partial covering
|
||
|
syn keyword idris2Annotation auto impossible default constructor
|
||
|
syn keyword idris2Statement do case of rewrite with proof
|
||
|
syn keyword idris2Let let in
|
||
|
syn keyword idris2Forall forall
|
||
|
syn keyword idris2DataOpt noHints uniqueSearch search external noNewtype containedin=idris2Brackets
|
||
|
syn keyword idris2Conditional if then else
|
||
|
syn match idris2Number "\<[0-9]\+\>\|\<0[xX][0-9a-fA-F]\+\>\|\<0[oO][0-7]\+\>"
|
||
|
syn match idris2Float "\<[0-9]\+\.[0-9]\+\([eE][-+]\=[0-9]\+\)\=\>"
|
||
|
syn match idris2Delimiter "[,;]"
|
||
|
syn keyword idris2Infix prefix infix infixl infixr
|
||
|
syn match idris2Operators "\([-!#$%&\*\+./<=>\?@\\^|~:]\|\<_\>\)"
|
||
|
syn match idris2Type "\<[A-Z][a-zA-Z0-9_']*\>"
|
||
|
syn keyword idris2Todo TODO FIXME XXX HACK contained
|
||
|
syn match idris2LineComment "---*\([^-!#$%&\*\+./<=>\?@\\^|~].*\)\?$" contains=idris2Todo,@Spell
|
||
|
syn match idris2DocComment "|||\([^-!#$%&\*\+./<=>\?@\\^|~].*\)\?$" contains=idris2Todo,@Spell
|
||
|
syn match idris2MetaVar "?[a-zA-Z_][A-Za-z0-9_']*"
|
||
|
syn match idris2Pragma "%\(hide\|logging\|auto_lazy\|unbound_implicits\|prefix_record_projections\|ambiguity_depth\|nf_metavar_threshold\|search_timeout\|pair\|rewrite\|integerLit\|stringLit\|charLit\|doubleLit\|name\|start\|allow_overloads\|language\|default\|transform\|hint\|globalhint\|defaulthint\|inline\|noinline\|extern\|macro\|spec\|foreign\|nomangle\|builtin\|MkWorld\|World\|search\|runElab\|tcinline\|auto_implicit_depth\)"
|
||
|
syn match idris2Char "'[^'\\]'\|'\\.'\|'\\u[0-9a-fA-F]\{4}'"
|
||
|
syn match idris2Backtick "`[A-Za-z][A-Za-z0-9_']*`"
|
||
|
syn region idris2String start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell
|
||
|
syn region idris2BlockComment start="{-" end="-}" contains=idris2BlockComment,idris2Todo,@Spell
|
||
|
syn match idris2Identifier "[a-zA-Z][a-zA-z0-9_']*" contained
|
||
|
|
||
|
" Default Highlighting {{{1
|
||
|
|
||
|
highlight def link idris2Deprecated Error
|
||
|
highlight def link idris2Identifier Identifier
|
||
|
highlight def link idris2Import Structure
|
||
|
highlight def link idris2Module Structure
|
||
|
highlight def link idris2Structure Structure
|
||
|
highlight def link idris2Statement Statement
|
||
|
highlight def link idris2Forall Structure
|
||
|
highlight def link idris2DataOpt Statement
|
||
|
highlight def link idris2DSL Statement
|
||
|
highlight def link idris2Block Statement
|
||
|
highlight def link idris2Annotation Statement
|
||
|
highlight def link idris2Where Structure
|
||
|
highlight def link idris2Let Structure
|
||
|
highlight def link idris2Totality Statement
|
||
|
highlight def link idris2Visibility Statement
|
||
|
highlight def link idris2Conditional Conditional
|
||
|
highlight def link idris2Pragma Statement
|
||
|
highlight def link idris2Number Number
|
||
|
highlight def link idris2Float Float
|
||
|
highlight def link idris2Delimiter Delimiter
|
||
|
highlight def link idris2Infix PreProc
|
||
|
highlight def link idris2Operators Operator
|
||
|
highlight def link idris2Type Include
|
||
|
highlight def link idris2DocComment Comment
|
||
|
highlight def link idris2LineComment Comment
|
||
|
highlight def link idris2BlockComment Comment
|
||
|
highlight def link idris2Todo Todo
|
||
|
highlight def link idris2MetaVar Macro
|
||
|
highlight def link idris2String String
|
||
|
highlight def link idris2Char String
|
||
|
highlight def link idris2Backtick Operator
|
||
|
|
||
|
let b:current_syntax = "idris2"
|
||
|
|
||
|
" vim: nowrap sw=2 sts=2 ts=8 noexpandtab ft=vim
|