diff options
Diffstat (limited to 'runtime/syntax/clean.vim')
-rw-r--r-- | runtime/syntax/clean.vim | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/runtime/syntax/clean.vim b/runtime/syntax/clean.vim new file mode 100644 index 000000000..233ecbda1 --- /dev/null +++ b/runtime/syntax/clean.vim @@ -0,0 +1,94 @@ +" Vim syntax file +" Language: Clean +" Author: Pieter van Engelen <pietere@sci.kun.nl> +" Co-Author: Arthur van Leeuwen <arthurvl@sci.kun.nl> +" Last Change: Fri Sep 29 11:35:34 CEST 2000 + +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +" Some Clean-keywords +syn keyword cleanConditional if case +syn keyword cleanLabel let! with where in of +syn keyword cleanInclude from import +syn keyword cleanSpecial Start +syn keyword cleanKeyword infixl infixr infix +syn keyword cleanBasicType Int Real Char Bool String +syn keyword cleanSpecialType World ProcId Void Files File +syn keyword cleanModuleSystem module implementation definition system +syn keyword cleanTypeClass class instance export + +" To do some Denotation Highlighting +syn keyword cleanBoolDenot True False +syn region cleanStringDenot start=+"+ end=+"+ +syn match cleanCharDenot "'.'" +syn match cleanCharsDenot "'[^'\\]*\(\\.[^'\\]\)*'" contained +syn match cleanIntegerDenot "[+-~]\=\<\(\d\+\|0[0-7]\+\|0x[0-9A-Fa-f]\+\)\>" +syn match cleanRealDenot "[+-~]\=\<\d\+\.\d+\(E[+-~]\=\d+\)\=" + +" To highlight the use of lists, tuples and arrays +syn region cleanList start="\[" end="\]" contains=ALL +syn region cleanRecord start="{" end="}" contains=ALL +syn region cleanArray start="{:" end=":}" contains=ALL +syn match cleanTuple "([^=]*,[^=]*)" contains=ALL + +" To do some Comment Highlighting +syn region cleanComment start="/\*" end="\*/" contains=cleanComment +syn match cleanComment "//.*" + +" Now for some useful typedefinitionrecognition +syn match cleanFuncTypeDef "\([a-zA-Z].*\|(\=[-~@#$%^?!+*<>\/|&=:]\+)\=\)[ \t]*\(infix[lr]\=\)\=[ \t]*\d\=[ \t]*::.*->.*" contains=cleanSpecial + +" Define the default highlighting. +" For version 5.7 and earlier: only when not done already +" For version 5.8 and later: only when an item doesn't have highlighting yet +if version >= 508 || !exists("did_clean_syntax_init") + if version < 508 + let did_clean_syntax_init = 1 + command -nargs=+ HiLink hi link <args> + else + command -nargs=+ HiLink hi def link <args> + endif + + " Comments + HiLink cleanComment Comment + " Constants and denotations + HiLink cleanCharsDenot String + HiLink cleanStringDenot String + HiLink cleanCharDenot Character + HiLink cleanIntegerDenot Number + HiLink cleanBoolDenot Boolean + HiLink cleanRealDenot Float + " Identifiers + " Statements + HiLink cleanTypeClass Keyword + HiLink cleanConditional Conditional + HiLink cleanLabel Label + HiLink cleanKeyword Keyword + " Generic Preprocessing + HiLink cleanInclude Include + HiLink cleanModuleSystem PreProc + " Type + HiLink cleanBasicType Type + HiLink cleanSpecialType Type + HiLink cleanFuncTypeDef Typedef + " Special + HiLink cleanSpecial Special + HiLink cleanList Special + HiLink cleanArray Special + HiLink cleanRecord Special + HiLink cleanTuple Special + " Error + " Todo + + delcommand HiLink +endif + +let b:current_syntax = "clean" + +" vim: ts=4 |