home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / runtime / dos / syntax / clean.vim < prev    next >
Encoding:
Text File  |  2012-05-31  |  3.2 KB  |  100 lines

  1. " Vim syntax file
  2. " Language:        Clean
  3. " Author:        Pieter van Engelen <pietere@sci.kun.nl>
  4. " Co-Author:    Arthur van Leeuwen <arthurvl@sci.kun.nl>
  5. " Last Change:    2011 Dec 25 by Thilo Six
  6.  
  7. " For version 5.x: Clear all syntax items
  8. " For version 6.x: Quit when a syntax file was already loaded
  9. if version < 600
  10.   syntax clear
  11. elseif exists("b:current_syntax")
  12.   finish
  13. endif
  14.  
  15. let s:cpo_save = &cpo
  16. set cpo&vim
  17.  
  18. " Some Clean-keywords
  19. syn keyword cleanConditional if case
  20. syn keyword cleanLabel let! with where in of
  21. syn keyword cleanInclude from import
  22. syn keyword cleanSpecial Start
  23. syn keyword cleanKeyword infixl infixr infix
  24. syn keyword cleanBasicType Int Real Char Bool String
  25. syn keyword cleanSpecialType World ProcId Void Files File
  26. syn keyword cleanModuleSystem module implementation definition system
  27. syn keyword cleanTypeClass class instance export
  28.  
  29. " To do some Denotation Highlighting
  30. syn keyword cleanBoolDenot True False
  31. syn region  cleanStringDenot start=+"+ end=+"+
  32. syn match cleanCharDenot "'.'"
  33. syn match cleanCharsDenot "'[^'\\]*\(\\.[^'\\]\)*'" contained
  34. syn match cleanIntegerDenot "[+-~]\=\<\(\d\+\|0[0-7]\+\|0x[0-9A-Fa-f]\+\)\>"
  35. syn match cleanRealDenot "[+-~]\=\<\d\+\.\d+\(E[+-~]\=\d+\)\="
  36.  
  37. " To highlight the use of lists, tuples and arrays
  38. syn region cleanList start="\[" end="\]" contains=ALL
  39. syn region cleanRecord start="{" end="}" contains=ALL
  40. syn region cleanArray start="{:" end=":}" contains=ALL
  41. syn match cleanTuple "([^=]*,[^=]*)" contains=ALL
  42.  
  43. " To do some Comment Highlighting
  44. syn region cleanComment start="/\*"  end="\*/" contains=cleanComment
  45. syn match cleanComment "//.*"
  46.  
  47. " Now for some useful typedefinitionrecognition
  48. syn match cleanFuncTypeDef "\([a-zA-Z].*\|(\=[-~@#$%^?!+*<>\/|&=:]\+)\=\)[ \t]*\(infix[lr]\=\)\=[ \t]*\d\=[ \t]*::.*->.*" contains=cleanSpecial
  49.  
  50. " Define the default highlighting.
  51. " For version 5.7 and earlier: only when not done already
  52. " For version 5.8 and later: only when an item doesn't have highlighting yet
  53. if version >= 508 || !exists("did_clean_syntax_init")
  54.   if version < 508
  55.     let did_clean_syntax_init = 1
  56.     command -nargs=+ HiLink hi link <args>
  57.   else
  58.     command -nargs=+ HiLink hi def link <args>
  59.   endif
  60.  
  61.    " Comments
  62.    HiLink cleanComment      Comment
  63.    " Constants and denotations
  64.    HiLink cleanCharsDenot   String
  65.    HiLink cleanStringDenot  String
  66.    HiLink cleanCharDenot    Character
  67.    HiLink cleanIntegerDenot Number
  68.    HiLink cleanBoolDenot    Boolean
  69.    HiLink cleanRealDenot    Float
  70.    " Identifiers
  71.    " Statements
  72.    HiLink cleanTypeClass    Keyword
  73.    HiLink cleanConditional  Conditional
  74.    HiLink cleanLabel        Label
  75.    HiLink cleanKeyword      Keyword
  76.    " Generic Preprocessing
  77.    HiLink cleanInclude      Include
  78.    HiLink cleanModuleSystem PreProc
  79.    " Type
  80.    HiLink cleanBasicType    Type
  81.    HiLink cleanSpecialType  Type
  82.    HiLink cleanFuncTypeDef  Typedef
  83.    " Special
  84.    HiLink cleanSpecial      Special
  85.    HiLink cleanList            Special
  86.    HiLink cleanArray        Special
  87.    HiLink cleanRecord        Special
  88.    HiLink cleanTuple        Special
  89.    " Error
  90.    " Todo
  91.  
  92.   delcommand HiLink
  93. endif
  94.  
  95. let b:current_syntax = "clean"
  96.  
  97. let &cpo = s:cpo_save
  98. unlet s:cpo_save
  99. " vim: ts=4
  100.