neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

idris2.vim (4427B)


      1 " Vim syntax file
      2 " Language:		Idris 2
      3 " Maintainer:		Idris Hackers (https://github.com/edwinb/idris2-vim), Serhii Khoma <srghma@gmail.com>
      4 " Last Change:		2024 Nov 05
      5 " Original Author:	raichoo (raichoo@googlemail.com)
      6 " License:		Vim (see :h license)
      7 " Repository:		https://github.com/ShinKage/idris2-nvim
      8 "
      9 
     10 if exists("b:current_syntax")
     11  finish
     12 endif
     13 
     14 syn match idris2TypeDecl "[a-zA-Z][a-zA-z0-9_']*\s\+:\s\+" contains=idris2Identifier,idris2Operators
     15 syn region idris2Parens matchgroup=idris2Delimiter start="(" end=")" contains=TOP,idris2TypeDecl
     16 syn region idris2Brackets matchgroup=idris2Delimiter start="\[" end="]" contains=TOP,idris2TypeDecl
     17 syn region idris2Block matchgroup=idris2Delimiter start="{" end="}" contains=TOP,idris2TypeDecl
     18 syn region idris2SnocBrackets matchgroup=idris2Delimiter start="\[<" end="]" contains=TOP
     19 syn region idris2ListBrackets matchgroup=idris2Delimiter start="\[>" end="]" contains=TOP
     20 syn keyword idris2Module module namespace
     21 syn keyword idris2Import import
     22 syn keyword idris2Structure data record interface implementation
     23 syn keyword idris2Where where
     24 syn keyword idris2Visibility public abstract private export
     25 syn keyword idris2Block parameters mutual using
     26 syn keyword idris2Totality total partial covering
     27 syn keyword idris2Annotation auto impossible default constructor
     28 syn keyword idris2Statement do case of rewrite with proof
     29 syn keyword idris2Let let in
     30 syn keyword idris2Forall forall
     31 syn keyword idris2DataOpt noHints uniqueSearch search external noNewtype containedin=idris2Brackets
     32 syn keyword idris2Conditional if then else
     33 syn match idris2Number "\<[0-9]\+\>\|\<0[xX][0-9a-fA-F]\+\>\|\<0[oO][0-7]\+\>"
     34 syn match idris2Float "\<[0-9]\+\.[0-9]\+\([eE][-+]\=[0-9]\+\)\=\>"
     35 syn match idris2Delimiter  "[,;]"
     36 syn keyword idris2Infix prefix infix infixl infixr
     37 syn match idris2Operators "\([-!#$%&\*\+./<=>\?@\\^|~:]\|\<_\>\)"
     38 syn match idris2Type "\<[A-Z][a-zA-Z0-9_']*\>"
     39 syn keyword idris2Todo TODO FIXME XXX HACK contained
     40 syn match idris2LineComment "---*\([^-!#$%&\*\+./<=>\?@\\^|~].*\)\?$" contains=idris2Todo,@Spell
     41 syn match idris2DocComment "|||\([^-!#$%&\*\+./<=>\?@\\^|~].*\)\?$" contains=idris2Todo,@Spell
     42 syn match idris2MetaVar "?[a-zA-Z_][A-Za-z0-9_']*"
     43 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\)"
     44 syn match idris2Char "'[^'\\]'\|'\\.'\|'\\u[0-9a-fA-F]\{4}'"
     45 syn match idris2Backtick "`[A-Za-z][A-Za-z0-9_']*`"
     46 syn region idris2String start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell
     47 syn region idris2BlockComment start="{-" end="-}" contains=idris2BlockComment,idris2Todo,@Spell
     48 syn match idris2Identifier "[a-zA-Z][a-zA-z0-9_']*" contained
     49 
     50 " Default Highlighting  {{{1
     51 
     52 highlight def link idris2Deprecated Error
     53 highlight def link idris2Identifier Identifier
     54 highlight def link idris2Import Structure
     55 highlight def link idris2Module Structure
     56 highlight def link idris2Structure Structure
     57 highlight def link idris2Statement Statement
     58 highlight def link idris2Forall Structure
     59 highlight def link idris2DataOpt Statement
     60 highlight def link idris2DSL Statement
     61 highlight def link idris2Block Statement
     62 highlight def link idris2Annotation Statement
     63 highlight def link idris2Where Structure
     64 highlight def link idris2Let Structure
     65 highlight def link idris2Totality Statement
     66 highlight def link idris2Visibility Statement
     67 highlight def link idris2Conditional Conditional
     68 highlight def link idris2Pragma Statement
     69 highlight def link idris2Number Number
     70 highlight def link idris2Float Float
     71 highlight def link idris2Delimiter Delimiter
     72 highlight def link idris2Infix PreProc
     73 highlight def link idris2Operators Operator
     74 highlight def link idris2Type Include
     75 highlight def link idris2DocComment Comment
     76 highlight def link idris2LineComment Comment
     77 highlight def link idris2BlockComment Comment
     78 highlight def link idris2Todo Todo
     79 highlight def link idris2MetaVar Macro
     80 highlight def link idris2String String
     81 highlight def link idris2Char String
     82 highlight def link idris2Backtick Operator
     83 
     84 let b:current_syntax = "idris2"
     85 
     86 " vim: nowrap sw=2 sts=2 ts=8 noexpandtab ft=vim