Mercurial > vim
comparison runtime/syntax/sl.vim @ 7:3fc0f57ecb91 v7.0001
updated for version 7.0001
author | vimboss |
---|---|
date | Sun, 13 Jun 2004 20:20:40 +0000 |
parents | |
children | 43efa4f5a8ea |
comparison
equal
deleted
inserted
replaced
6:c2daee826b8f | 7:3fc0f57ecb91 |
---|---|
1 " Vim syntax file | |
2 " Language: Renderman shader language | |
3 " Maintainer: Dan Piponi <dan@tanelorn.demon.co.uk> | |
4 " Last Change: 2001 May 09 | |
5 | |
6 " For version 5.x: Clear all syntax items | |
7 " For version 6.x: Quit when a syntax file was already loaded | |
8 if version < 600 | |
9 syntax clear | |
10 elseif exists("b:current_syntax") | |
11 finish | |
12 endif | |
13 | |
14 " A bunch of useful Renderman keywords including special | |
15 " RenderMan control structures | |
16 syn keyword slStatement break return continue | |
17 syn keyword slConditional if else | |
18 syn keyword slRepeat while for | |
19 syn keyword slRepeat illuminance illuminate solar | |
20 | |
21 syn keyword slTodo contained TODO FIXME XXX | |
22 | |
23 " String and Character constants | |
24 " Highlight special characters (those which have a backslash) differently | |
25 syn match slSpecial contained "\\[0-9][0-9][0-9]\|\\." | |
26 syn region slString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=slSpecial | |
27 syn match slCharacter "'[^\\]'" | |
28 syn match slSpecialCharacter "'\\.'" | |
29 syn match slSpecialCharacter "'\\[0-9][0-9]'" | |
30 syn match slSpecialCharacter "'\\[0-9][0-9][0-9]'" | |
31 | |
32 "catch errors caused by wrong parenthesis | |
33 syn region slParen transparent start='(' end=')' contains=ALLBUT,slParenError,slIncluded,slSpecial,slTodo,slUserLabel | |
34 syn match slParenError ")" | |
35 syn match slInParen contained "[{}]" | |
36 | |
37 "integer number, or floating point number without a dot and with "f". | |
38 syn case ignore | |
39 syn match slNumber "\<[0-9]\+\(u\=l\=\|lu\|f\)\>" | |
40 "floating point number, with dot, optional exponent | |
41 syn match slFloat "\<[0-9]\+\.[0-9]*\(e[-+]\=[0-9]\+\)\=[fl]\=\>" | |
42 "floating point number, starting with a dot, optional exponent | |
43 syn match slFloat "\.[0-9]\+\(e[-+]\=[0-9]\+\)\=[fl]\=\>" | |
44 "floating point number, without dot, with exponent | |
45 syn match slFloat "\<[0-9]\+e[-+]\=[0-9]\+[fl]\=\>" | |
46 "hex number | |
47 syn match slNumber "\<0x[0-9a-f]\+\(u\=l\=\|lu\)\>" | |
48 "syn match slIdentifier "\<[a-z_][a-z0-9_]*\>" | |
49 syn case match | |
50 | |
51 if exists("sl_comment_strings") | |
52 " A comment can contain slString, slCharacter and slNumber. | |
53 " But a "*/" inside a slString in a slComment DOES end the comment! So we | |
54 " need to use a special type of slString: slCommentString, which also ends on | |
55 " "*/", and sees a "*" at the start of the line as comment again. | |
56 " Unfortunately this doesn't very well work for // type of comments :-( | |
57 syntax match slCommentSkip contained "^\s*\*\($\|\s\+\)" | |
58 syntax region slCommentString contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=slSpecial,slCommentSkip | |
59 syntax region slComment2String contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=slSpecial | |
60 syntax region slComment start="/\*" end="\*/" contains=slTodo,slCommentString,slCharacter,slNumber | |
61 else | |
62 syn region slComment start="/\*" end="\*/" contains=slTodo | |
63 endif | |
64 syntax match slCommentError "\*/" | |
65 | |
66 syn keyword slOperator sizeof | |
67 syn keyword slType float point color string vector normal matrix void | |
68 syn keyword slStorageClass varying uniform extern | |
69 syn keyword slStorageClass light surface volume displacement transformation imager | |
70 syn keyword slVariable Cs Os P dPdu dPdv N Ng u v du dv s t | |
71 syn keyword slVariable L Cl Ol E I ncomps time Ci Oi | |
72 syn keyword slVariable Ps alpha | |
73 syn keyword slVariable dtime dPdtime | |
74 | |
75 syn sync ccomment slComment minlines=10 | |
76 | |
77 " Define the default highlighting. | |
78 " For version 5.7 and earlier: only when not done already | |
79 " For version 5.8 and later: only when an item doesn't have highlighting yet | |
80 if version >= 508 || !exists("did_sl_syntax_inits") | |
81 if version < 508 | |
82 let did_sl_syntax_inits = 1 | |
83 command -nargs=+ HiLink hi link <args> | |
84 else | |
85 command -nargs=+ HiLink hi def link <args> | |
86 endif | |
87 | |
88 HiLink slLabel Label | |
89 HiLink slUserLabel Label | |
90 HiLink slConditional Conditional | |
91 HiLink slRepeat Repeat | |
92 HiLink slCharacter Character | |
93 HiLink slSpecialCharacter slSpecial | |
94 HiLink slNumber Number | |
95 HiLink slFloat Float | |
96 HiLink slParenError slError | |
97 HiLink slInParen slError | |
98 HiLink slCommentError slError | |
99 HiLink slOperator Operator | |
100 HiLink slStorageClass StorageClass | |
101 HiLink slError Error | |
102 HiLink slStatement Statement | |
103 HiLink slType Type | |
104 HiLink slCommentError slError | |
105 HiLink slCommentString slString | |
106 HiLink slComment2String slString | |
107 HiLink slCommentSkip slComment | |
108 HiLink slString String | |
109 HiLink slComment Comment | |
110 HiLink slSpecial SpecialChar | |
111 HiLink slTodo Todo | |
112 HiLink slVariable Identifier | |
113 "HiLink slIdentifier Identifier | |
114 | |
115 delcommand HiLink | |
116 endif | |
117 | |
118 let b:current_syntax = "sl" | |
119 | |
120 " vim: ts=8 |