2 " Language: Motif UIL (User Interface Language)
3 " Maintainer: Thomas Koehler <jean-luc@picard.franken.de>
4 " Last Change: 2002 Sep 20
5 " URL: http://jeanluc-picard.de/vim/syntax/uil.vim
7 " Quit when a syntax file was already loaded
10 elseif exists("b:current_syntax")
14 " A bunch of useful keywords
15 syn keyword uilType arguments callbacks color
16 syn keyword uilType compound_string controls end
17 syn keyword uilType exported file include
18 syn keyword uilType module object procedure
19 syn keyword uilType user_defined xbitmapfile
21 syn keyword uilTodo contained TODO
23 " String and Character contstants
24 " Highlight special characters (those which have a backslash) differently
25 syn match uilSpecial contained "\\\d\d\d\|\\."
26 syn region uilString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=uilSpecial
27 syn match uilCharacter "'[^\\]'"
28 syn region uilString start=+'+ skip=+\\\\\|\\"+ end=+'+ contains=uilSpecial
29 syn match uilSpecialCharacter "'\\.'"
30 syn match uilSpecialStatement "Xm[^ =(){}]*"
31 syn match uilSpecialFunction "MrmNcreateCallback"
32 syn match uilRessource "XmN[^ =(){}]*"
34 syn match uilNumber "-\=\<\d*\.\=\d\+\(e\=f\=\|[uU]\=[lL]\=\)\>"
35 syn match uilNumber "0[xX][0-9a-fA-F]\+\>"
37 syn region uilComment start="/\*" end="\*/" contains=uilTodo
38 syn match uilComment "!.*" contains=uilTodo
39 syn match uilCommentError "\*/"
41 syn region uilPreCondit start="^#\s*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=uilComment,uilString,uilCharacter,uilNumber,uilCommentError
42 syn match uilIncluded contained "<[^>]*>"
43 syn match uilInclude "^#\s*include\s\+." contains=uilString,uilIncluded
44 syn match uilLineSkip "\\$"
45 syn region uilDefine start="^#\s*\(define\>\|undef\>\)" end="$" contains=uilLineSkip,uilComment,uilString,uilCharacter,uilNumber,uilCommentError
47 syn sync ccomment uilComment
49 " Define the default highlighting.
50 " For version 5.7 and earlier: only when not done already
51 " For version 5.8 and later: only when an item doesn't have highlighting yet
52 if version >= 508 || !exists("did_uil_syn_inits")
54 let did_uil_syn_inits = 1
55 command -nargs=+ HiLink hi link <args>
57 command -nargs=+ HiLink hi def link <args>
60 " The default highlighting.
61 HiLink uilCharacter uilString
62 HiLink uilSpecialCharacter uilSpecial
63 HiLink uilNumber uilString
64 HiLink uilCommentError uilError
65 HiLink uilInclude uilPreCondit
66 HiLink uilDefine uilPreCondit
67 HiLink uilIncluded uilString
68 HiLink uilSpecialFunction uilRessource
69 HiLink uilRessource Identifier
70 HiLink uilSpecialStatement Keyword
72 HiLink uilPreCondit PreCondit
74 HiLink uilString String
75 HiLink uilComment Comment
76 HiLink uilSpecial Special
83 let b:current_syntax = "uil"