summaryrefslogtreecommitdiffstats
path: root/.vim
diff options
context:
space:
mode:
Diffstat (limited to '.vim')
-rw-r--r--.vim/ftdetect/fortress.vim4
-rw-r--r--.vim/syntax/fortress.vim90
2 files changed, 94 insertions, 0 deletions
diff --git a/.vim/ftdetect/fortress.vim b/.vim/ftdetect/fortress.vim
new file mode 100644
index 0000000..cbb6329
--- /dev/null
+++ b/.vim/ftdetect/fortress.vim
@@ -0,0 +1,4 @@
+au BufNewFile,BufRead *.fsi,*.fss set ft=fortress
+au BufNewFile,BufRead *.fsi,*.fss set expandtab
+au BufNewFile,BufRead *.fsi,*.fss set softtabstop=4
+au BufNewFile,BufRead *.fsi,*.fss set shiftwidth=4
diff --git a/.vim/syntax/fortress.vim b/.vim/syntax/fortress.vim
new file mode 100644
index 0000000..13aacbb
--- /dev/null
+++ b/.vim/syntax/fortress.vim
@@ -0,0 +1,90 @@
+" Vim syntax file
+" Language: Fortress
+" Filenames: *.fsi *.fss
+" Maintainers: Jon Rafkind <rafkind@cs.utah.edu>
+" URL: http://www.cs.utah.edu/~rafkind
+" Last Change: 2008 May 20 - Initial version
+
+" Some stuff stolen from ocaml.vim
+
+if version < 600
+ syntax clear
+elseif exists("b:current_syntax") && b:current_syntax == "fortress"
+ finish
+endif
+
+" syn region fortressComment start="(\*)" end="\\$" end="$"
+syn region fortressComment start="(\*" end="\*)" contains=fortressComment
+syn match fortressLineComment "(\*).*"
+syn match fortressEnd "\<end\>"
+
+" syn match fortressKeyword "\<getter\>"
+syn keyword fortressKeyword getter else var test
+syn keyword fortressExternal import export
+
+syn region fortressString start=+"+ skip=+\\\\\|\\"+ end=+"+
+syn match fortressChar "'.'"
+syn match fortressNumber "\<-\=\d\(_\|\d\)*"
+
+syn keyword fortressType api object trait value
+syn keyword fortressType extends abstract comprises
+syn keyword fortressType grammar component
+syn keyword fortressType Any Boolean String self
+syn keyword fortressType Char
+syn keyword fortressType ZZ32 ZZ64 RR32 RR64 ZZ
+
+syn keyword fortressOperator println
+
+syn keyword fortressKeyword opr for private asif throw
+
+syn match fortressThenErr "\<then\>"
+syn match fortressCaseErr "\<case\>"
+syn match fortressCatchErr "\<catch\>"
+syn match fortressTypecaseErr "\<of\>"
+
+syn region fortressNone matchgroup=fortressKeyword start="\<if\>" matchgroup=fortressKeyword end="\<then\>" contains=ALLBUT,fortressThenErr nextgroup=fortressIf
+syn region fortressIf matchgroup=fortressKeyword start="\<elif\>" matchgroup=fortressKeyword end="\<then\>" contains=ALLBUT,fortressThenErr nextgroup=fortressIf
+syn region fortressIf matchgroup=fortressKeyword start="\<then\>" matchgroup=fortressKeyword end="\<end\>" contains=ALLBUT,fortressThenErr
+
+syn region fortressNone matchgroup=fortressKeyword start="\<case\>" matchgroup=fortressKeyword end="\<of\>" contains=ALLBUT,fortressCaseErr nextgroup=fortressCase
+syn region fortressCase matchgroup=fortressKeyword start="\<in\>" matchgroup=fortressKeyword end="\<end\>" contains=ALLBUT,fortressCaseErr
+
+syn region fortressNone matchgroup=fortressKeyword start="\<typecase\>" matchgroup=fortressKeyword end="\<of\>" contains=ALLBUT,fortressTypecaseErr nextgroup=fortressTypecase
+syn region fortressTypecase matchgroup=fortressKeyword start="\<of\>" matchgroup=fortressKeyword end="\<end\>" contains=ALLBUT,fortressEndErr
+
+syn region fortressNone matchgroup=fortressKeyword start="\<try\>" matchgroup=fortressKeyword end="\<catch\>" contains=ALLBUT,fortressCatchErr nextgroup=fortressCatch
+syn region fortressCatch matchgroup=fortressKeyword start="\<catch\>" matchgroup=fortressKeyword end="\<end\>" contains=ALLBUT,fortressEndErr
+
+syn region fortressNone matchgroup=fortressKeyword start="\<do\>" matchgroup=fortressKeyword end="\<end\>" contains=ALLBUT,fortressEndErr
+
+syn region fortressApi matchgroup=fortressModule start="\<api\>" matchgroup=fortressModule end="\<end\>" contains=ALLBUT,fortressEndErr
+syn region fortressObject matchgroup=fortressModule start="\<object\>" matchgroup=fortressModule end="\<end\>" contains=ALLBUT,fortressEndErr
+syn region fortressTrait matchgroup=fortressModule start="\<trait\>" matchgroup=fortressModule end="\<end\>" contains=ALLBUT,fortressEndErr
+syn region fortressComponent matchgroup=fortressModule start="\<component\>" matchgroup=fortressModule end="\<end\>" contains=ALLBUT,fortressEndErr
+
+if version >= 508 || !exists("did_fortress_syntax_inits")
+ if version < 508
+ let did_fortress_syntax_inits = 1
+ command -nargs=+ HiLink hi link <args>
+ else
+ command -nargs=+ HiLink hi def link <args>
+ endif
+
+ HiLink fortressComment Comment
+ HiLink fortressLineComment Comment
+ HiLink fortressKeyword Keyword
+ HiLink fortressExternal Include
+ HiLink fortressType Type
+ HiLink fortressOperator Operator
+ HiLink fortressEnd Statement
+
+ HiLink fortressString String
+ HiLink fortressChar String
+ HiLink fortressNumber Number
+
+ HiLink fortressThenErr Error
+
+ delcommand HiLink
+endif
+
+let b:current_syntax = "fortress"