1" Vim syntax file
2" Language:	3D wavefront's obj file
3" Maintainer:	Vincent Berthoux <twinside@gmail.com>
4" File Types:	.obj (used in 3D)
5" Last Change:  2010 May 18
6"
7" For version 5.x: Clear all syntax items
8" For version 6.x: Quit when a syntax file was already loaded
9if version < 600
10  syntax clear
11elseif exists("b:current_syntax")
12  finish
13endif
14
15syn match       objError        "^\a\+"
16
17syn match       objKeywords     "^cstype\s"
18syn match       objKeywords     "^ctech\s"
19syn match       objKeywords     "^stech\s"
20syn match       objKeywords     "^deg\s"
21syn match       objKeywords     "^curv\(2\?\)\s"
22syn match       objKeywords     "^parm\s"
23syn match       objKeywords     "^surf\s"
24syn match       objKeywords     "^end\s"
25syn match       objKeywords     "^bzp\s"
26syn match       objKeywords     "^bsp\s"
27syn match       objKeywords     "^res\s"
28syn match       objKeywords     "^cdc\s"
29syn match       objKeywords     "^con\s"
30
31syn match       objKeywords     "^shadow_obj\s"
32syn match       objKeywords     "^trace_obj\s"
33syn match       objKeywords     "^usemap\s"
34syn match       objKeywords     "^lod\s"
35syn match       objKeywords     "^maplib\s"
36syn match       objKeywords     "^d_interp\s"
37syn match       objKeywords     "^c_interp\s"
38syn match       objKeywords     "^bevel\s"
39syn match       objKeywords     "^mg\s"
40syn match       objKeywords     "^s\s"
41syn match       objKeywords     "^con\s"
42syn match       objKeywords     "^trim\s"
43syn match       objKeywords     "^hole\s"
44syn match       objKeywords     "^scrv\s"
45syn match       objKeywords     "^sp\s"
46syn match       objKeywords     "^step\s"
47syn match       objKeywords     "^bmat\s"
48syn match       objKeywords     "^csh\s"
49syn match       objKeywords     "^call\s"
50
51syn match       objComment      "^#.*"
52syn match       objVertex       "^v\s"
53syn match       objFace         "^f\s"
54syn match       objVertice      "^vt\s"
55syn match       objNormale      "^vn\s"
56syn match       objGroup        "^g\s.*"
57syn match       objMaterial     "^usemtl\s.*"
58syn match       objInclude      "^mtllib\s.*"
59
60syn match       objFloat        "-\?\d\+\.\d\+\(e\(+\|-\)\d\+\)\?"
61syn match       objInt          "\d\+"
62syn match       objIndex        "\d\+\/\d*\/\d*"
63
64" Define the default highlighting.
65" For version 5.7 and earlier: only when not done already
66" For version 5.8 and later: only when an item doesn't have highlighting yet
67if version >= 508 || !exists("did_cabal_syn_inits")
68  if version < 508
69    let did_cabal_syn_inits = 1
70    command -nargs=+ HiLink hi link <args>
71  else
72    command -nargs=+ HiLink hi def link <args>
73  endif
74
75  HiLink objError           Error
76  HiLink objComment         Comment
77  HiLink objInclude         PreProc
78  HiLink objFloat           Float
79  HiLink objInt             Number
80  HiLink objGroup           Structure
81  HiLink objIndex           Constant
82  HiLink objMaterial        Label
83
84  HiLink objVertex          Keyword
85  HiLink objNormale         Keyword
86  HiLink objVertice         Keyword
87  HiLink objFace            Keyword
88  HiLink objKeywords        Keyword
89
90
91  delcommand HiLink
92endif
93
94let b:current_syntax = "obj"
95
96" vim: ts=8
97