on master help sign in
Merge pull request #50 from raichoo/master

vim syntax highlighter

commit2303235c5e7b212b0146707a2ef4237c1a971de2 authorEdwin Brady <edwin.brady@gmail.com> dateSat 22 Sep 2012, 04:08 (14 years ago) parent16a6c95758ce70
1 file changed+51
contribs/tool-support/vim/syntax/idris.vim+51
contribs/tool-support/vim/syntax/idris.vimnew file+51
@@ -0,0 +1,51 @@
1+" syntax highlighting for idris (idris-lang.org)
2+"
3+" Heavily modified version of the haskell syntax
4+" highlighter to support idris.
5+"
6+" author: raichoo (raichoo@googlemail.com)
7+" date: Sep 21 2012
8+
9+syn match idrisModule "\<\(module\|namespace\)\>"
10+syn match idrisImport "\<import\>"
11+syn match idrisStructure "\<\(class\|data\|instance\|where\|record\)\>"
12+syn match idrisVisibility "\<\(public\|abstract\|private\)\>"
13+syn match idrisStatement "\<\(do\|case\|of\|let\|in\|with\|total\|dsl\|auto\|using\)\>"
14+syn match idrisSyntax "\(pattern \+\|term \+\)\?syntax"
15+syn match idrisConditional "\<\(if\|then\|else\)\>"
16+syn match idrisTactic contained "\<\(intros\?\|rewrite\|exact\|refine\|trivial\|let\|focus\|try\|compute\|solve\|attack\)\>"
17+syn match idrisNumber "\<[0-9]\+\>\|\<0[xX][0-9a-fA-F]\+\>\|\<0[oO][0-7]\+\>"
18+syn match idrisFloat "\<[0-9]\+\.[0-9]\+\([eE][-+]\=[0-9]\+\)\=\>"
19+syn match idrisDelimiter "(\|)\|\[\|\]\|,\|;\|_\|{\|}"
20+syn match idrisInfix "\<\(prefix\|infix\|infixl\|infixr\)\>"
21+syn match idrisOperators "\([-!#$%&\*\+./<=>\?@\\^|~:]\|\<_\>\)"
22+syn match idrisType "\<\([A-Z][a-zA-Z0-9_]*\|_|_\)\>"
23+syn match idrisLineComment "---*\([^-!#$%&\*\+./<=>\?@\\^|~].*\)\?$"
24+syn match idrisMetaVar "?[a-z][A-Za-z0-9_]\+"
25+syn match idrisLink "%\(lib\|link\|include\)"
26+syn match idrisAccess "%access"
27+syn region idrisString start=+"+ skip=+\\\\\|\\"+ end=+"+
28+syn region idrisBlockComment start="{-" end="-}"
29+syn region idrisProofBlock start="\(default\s\+\)\?proof *{" end="}" contains=idrisTactic
30+
31+highlight def link idrisImport Include
32+highlight def link idrisModule idrisStructure
33+highlight def link idrisStructure Structure
34+highlight def link idrisStatement Statement
35+highlight def link idrisSyntax Statement
36+highlight def link idrisVisibility Statement
37+highlight def link idrisConditional Conditional
38+highlight def link idrisProofBlock Macro
39+highlight idrisTactic ctermfg=cyan
40+highlight idrisLink ctermbg=yellow ctermfg=magenta
41+highlight idrisAccess ctermbg=magenta ctermfg=yellow
42+highlight def link idrisNumber Number
43+highlight def link idrisFloat Float
44+highlight def link idrisDelimiter Delimiter
45+highlight def link idrisInfix PreProc
46+highlight def link idrisOperators Operator
47+highlight def link idrisType Type
48+highlight def link idrisLineComment Comment
49+highlight def link idrisBlockComment Comment
50+highlight idrisMetaVar ctermbg=cyan ctermfg=black
51+highlight def link idrisString String