" syntax highlighting for Idris 2 (idris-lang.org) " " Heavily modified version of the haskell syntax " highlighter to support Idris 2. " " author: raichoo (raichoo@googlemail.com) if exists("b:current_syntax") finish endif syn match idrisTypeDecl "[a-zA-Z][a-zA-z0-9_']*\s\+:\s\+" \ contains=idrisIdentifier,idrisOperators syn region idrisParens matchgroup=idrisDelimiter start="(" end=")" contains=TOP,idrisTypeDecl syn region idrisBrackets matchgroup=idrisDelimiter start="\[" end="]" contains=TOP,idrisTypeDecl syn region idrisBrace matchgroup=idrisDelimiter start="{" end="}" contains=TOP,idrisTypeDecl syn region idrisIdiom matchgroup=idrisDelimiter start="\[|" end="|]" contains=TOP,idrisTypeDecl syn keyword idrisModule module namespace syn keyword idrisImport import syn keyword idrisStructure data record interface implementation syn keyword idrisWhere where syn keyword idrisVisibility public private export syn keyword idrisBlock parameters mutual using syn keyword idrisTotality total partial covering syn keyword idrisAnnotation auto impossible default constructor syn keyword idrisStatement do case of rewrite with proof syn keyword idrisLet let in syn keyword idrisForall forall syn keyword idrisDataOpt noHints uniqueSearch search external noNewtype containedin=idrisBrackets syn keyword idrisConditional if then else syn match idrisNumber "\<[0-9]\+\>\|\<0[xX][0-9a-fA-F]\+\>\|\<0[oO][0-7]\+\>" syn match idrisFloat "\<[0-9]\+\.[0-9]\+\([eE][-+]\=[0-9]\+\)\=\>" syn match idrisDelimiter "[,;]" syn keyword idrisInfix prefix infix infixl infixr syn match idrisOperators "\([-!#$%&\*\+./<=>\?@\\^|~:]\|\<_\>\)" syn match idrisType "\<[A-Z][a-zA-Z0-9_']*\>" syn keyword idrisTodo TODO FIXME XXX HACK contained syn match idrisLineComment "---*\([^-!#$%&\*\+./<=>\?@\\^|~].*\)\?$" contains=idrisTodo,@Spell syn match idrisDocComment "|||\([^-!#$%&\*\+./<=>\?@\\^|~].*\)\?$" contains=idrisTodo,@Spell syn match idrisMetaVar "?[a-z][A-Za-z0-9_']*" syn match idrisPragma "%\(hide\|logging\|auto_lazy\|unbound_implicits\|undotted_record_projections\|ambiguity_depth\|pair\|rewrite\|integerLit\|stringLit\|charLit\|name\|start\|allow_overloads\|language\|default\|transform\|hint\|global_hint\|defaulthint\|inline\|extern\|macro\|spec\|foreign\|runElab\|tcinline\|auto_implicit_depth\|builtin\|search\)\>" syn match idrisChar "'[^'\\]'\|'\\.'\|'\\u[0-9a-fA-F]\{4}'" syn match idrisBacktick "`[A-Za-z][A-Za-z0-9_']*`" syn region idrisString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell syn match idrisRawString /#\@