xref: /vim-8.2.3635/runtime/syntax/vrml.vim (revision f37506f6)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:	   VRML97
3071d4279SBram Moolenaar" Modified from:   VRML 1.0C by David Brown <[email protected]>
49c102387SBram Moolenaar" Maintainer:	   vacancy!
59c102387SBram Moolenaar" Former Maintainer:    Gregory Seidman <[email protected]>
69c102387SBram Moolenaar" Last change:	   2006 May 03
7071d4279SBram Moolenaar
889bcfda6SBram Moolenaar" quit when a syntax file was already loaded
989bcfda6SBram Moolenaarif exists("b:current_syntax")
10071d4279SBram Moolenaar  finish
11071d4279SBram Moolenaarendif
12071d4279SBram Moolenaar
13071d4279SBram Moolenaar" keyword definitions
14071d4279SBram Moolenaar
15071d4279SBram Moolenaarsyn keyword VRMLFields	       ambientIntensity appearance attenuation
16071d4279SBram Moolenaarsyn keyword VRMLFields	       autoOffset avatarSize axisOfRotation backUrl
17071d4279SBram Moolenaarsyn keyword VRMLFields	       bboxCenter bboxSize beamWidth beginCap
18071d4279SBram Moolenaarsyn keyword VRMLFields	       bottom bottomRadius bottomUrl ccw center
19071d4279SBram Moolenaarsyn keyword VRMLFields	       children choice collide color colorIndex
20071d4279SBram Moolenaarsyn keyword VRMLFields	       colorPerVertex convex coord coordIndex
21071d4279SBram Moolenaarsyn keyword VRMLFields	       creaseAngle crossSection cutOffAngle
22071d4279SBram Moolenaarsyn keyword VRMLFields	       cycleInterval description diffuseColor
23071d4279SBram Moolenaarsyn keyword VRMLFields	       directOutput direction diskAngle
24071d4279SBram Moolenaarsyn keyword VRMLFields	       emissiveColor enabled endCap family
25071d4279SBram Moolenaarsyn keyword VRMLFields	       fieldOfView fogType fontStyle frontUrl
26071d4279SBram Moolenaarsyn keyword VRMLFields	       geometry groundAngle groundColor headlight
27071d4279SBram Moolenaarsyn keyword VRMLFields	       height horizontal info intensity jump
28071d4279SBram Moolenaarsyn keyword VRMLFields	       justify key keyValue language leftToRight
29071d4279SBram Moolenaarsyn keyword VRMLFields	       leftUrl length level location loop material
30071d4279SBram Moolenaarsyn keyword VRMLFields	       maxAngle maxBack maxExtent maxFront
31071d4279SBram Moolenaarsyn keyword VRMLFields	       maxPosition minAngle minBack minFront
32071d4279SBram Moolenaarsyn keyword VRMLFields	       minPosition mustEvaluate normal normalIndex
33071d4279SBram Moolenaarsyn keyword VRMLFields	       normalPerVertex offset on orientation
34071d4279SBram Moolenaarsyn keyword VRMLFields	       parameter pitch point position priority
35071d4279SBram Moolenaarsyn keyword VRMLFields	       proxy radius range repeatS repeatT rightUrl
36071d4279SBram Moolenaarsyn keyword VRMLFields	       rotation scale scaleOrientation shininess
37071d4279SBram Moolenaarsyn keyword VRMLFields	       side size skyAngle skyColor solid source
38071d4279SBram Moolenaarsyn keyword VRMLFields	       spacing spatialize specularColor speed spine
39071d4279SBram Moolenaarsyn keyword VRMLFields	       startTime stopTime string style texCoord
40071d4279SBram Moolenaarsyn keyword VRMLFields	       texCoordIndex texture textureTransform title
41071d4279SBram Moolenaarsyn keyword VRMLFields	       top topToBottom topUrl translation
42071d4279SBram Moolenaarsyn keyword VRMLFields	       transparency type url vector visibilityLimit
43071d4279SBram Moolenaarsyn keyword VRMLFields	       visibilityRange whichChoice xDimension
44071d4279SBram Moolenaarsyn keyword VRMLFields	       xSpacing zDimension zSpacing
45071d4279SBram Moolenaarsyn match   VRMLFields	       "\<[A-Za-z_][A-Za-z0-9_]*\>" contains=VRMLComment,VRMLProtos,VRMLfTypes
46071d4279SBram Moolenaar" syn match   VRMLFields	 "\<[A-Za-z_][A-Za-z0-9_]*\>\(,\|\s\)*\(#.*$\)*\<IS\>\(#.*$\)*\(,\|\s\)*\<[A-Za-z_][A-Za-z0-9_]*\>\(,\|\s\)*\(#.*$\)*" contains=VRMLComment,VRMLProtos
47071d4279SBram Moolenaar" syn region  VRMLFields	 start="\<[A-Za-z_][A-Za-z0-9_]*\>" end=+\(,\|#\|\s\)+me=e-1 contains=VRMLComment,VRMLProtos
48071d4279SBram Moolenaar
49071d4279SBram Moolenaarsyn keyword VRMLEvents	       addChildren ambientIntensity_changed
50071d4279SBram Moolenaarsyn keyword VRMLEvents	       appearance_changed attenuation_changed
51071d4279SBram Moolenaarsyn keyword VRMLEvents	       autoOffset_changed avatarSize_changed
52071d4279SBram Moolenaarsyn keyword VRMLEvents	       axisOfRotation_changed backUrl_changed
53071d4279SBram Moolenaarsyn keyword VRMLEvents	       beamWidth_changed bindTime bottomUrl_changed
54071d4279SBram Moolenaarsyn keyword VRMLEvents	       center_changed children_changed
55071d4279SBram Moolenaarsyn keyword VRMLEvents	       choice_changed collideTime collide_changed
56071d4279SBram Moolenaarsyn keyword VRMLEvents	       color_changed coord_changed
57071d4279SBram Moolenaarsyn keyword VRMLEvents	       cutOffAngle_changed cycleInterval_changed
58071d4279SBram Moolenaarsyn keyword VRMLEvents	       cycleTime description_changed
59071d4279SBram Moolenaarsyn keyword VRMLEvents	       diffuseColor_changed direction_changed
60071d4279SBram Moolenaarsyn keyword VRMLEvents	       diskAngle_changed duration_changed
61071d4279SBram Moolenaarsyn keyword VRMLEvents	       emissiveColor_changed enabled_changed
62071d4279SBram Moolenaarsyn keyword VRMLEvents	       enterTime exitTime fogType_changed
63071d4279SBram Moolenaarsyn keyword VRMLEvents	       fontStyle_changed fraction_changed
64071d4279SBram Moolenaarsyn keyword VRMLEvents	       frontUrl_changed geometry_changed
65071d4279SBram Moolenaarsyn keyword VRMLEvents	       groundAngle_changed headlight_changed
66071d4279SBram Moolenaarsyn keyword VRMLEvents	       hitNormal_changed hitPoint_changed
67071d4279SBram Moolenaarsyn keyword VRMLEvents	       hitTexCoord_changed intensity_changed
68071d4279SBram Moolenaarsyn keyword VRMLEvents	       isActive isBound isOver jump_changed
69071d4279SBram Moolenaarsyn keyword VRMLEvents	       keyValue_changed key_changed leftUrl_changed
70071d4279SBram Moolenaarsyn keyword VRMLEvents	       length_changed level_changed
71071d4279SBram Moolenaarsyn keyword VRMLEvents	       location_changed loop_changed
72071d4279SBram Moolenaarsyn keyword VRMLEvents	       material_changed maxAngle_changed
73071d4279SBram Moolenaarsyn keyword VRMLEvents	       maxBack_changed maxExtent_changed
74071d4279SBram Moolenaarsyn keyword VRMLEvents	       maxFront_changed maxPosition_changed
75071d4279SBram Moolenaarsyn keyword VRMLEvents	       minAngle_changed minBack_changed
76071d4279SBram Moolenaarsyn keyword VRMLEvents	       minFront_changed minPosition_changed
77071d4279SBram Moolenaarsyn keyword VRMLEvents	       normal_changed offset_changed on_changed
78071d4279SBram Moolenaarsyn keyword VRMLEvents	       orientation_changed parameter_changed
79071d4279SBram Moolenaarsyn keyword VRMLEvents	       pitch_changed point_changed position_changed
80071d4279SBram Moolenaarsyn keyword VRMLEvents	       priority_changed radius_changed
81071d4279SBram Moolenaarsyn keyword VRMLEvents	       removeChildren rightUrl_changed
82071d4279SBram Moolenaarsyn keyword VRMLEvents	       rotation_changed scaleOrientation_changed
83071d4279SBram Moolenaarsyn keyword VRMLEvents	       scale_changed set_ambientIntensity
84071d4279SBram Moolenaarsyn keyword VRMLEvents	       set_appearance set_attenuation
85071d4279SBram Moolenaarsyn keyword VRMLEvents	       set_autoOffset set_avatarSize
86071d4279SBram Moolenaarsyn keyword VRMLEvents	       set_axisOfRotation set_backUrl set_beamWidth
87071d4279SBram Moolenaarsyn keyword VRMLEvents	       set_bind set_bottomUrl set_center
88071d4279SBram Moolenaarsyn keyword VRMLEvents	       set_children set_choice set_collide
89071d4279SBram Moolenaarsyn keyword VRMLEvents	       set_color set_colorIndex set_coord
90071d4279SBram Moolenaarsyn keyword VRMLEvents	       set_coordIndex set_crossSection
91071d4279SBram Moolenaarsyn keyword VRMLEvents	       set_cutOffAngle set_cycleInterval
92071d4279SBram Moolenaarsyn keyword VRMLEvents	       set_description set_diffuseColor
93071d4279SBram Moolenaarsyn keyword VRMLEvents	       set_direction set_diskAngle
94071d4279SBram Moolenaarsyn keyword VRMLEvents	       set_emissiveColor set_enabled set_fogType
95071d4279SBram Moolenaarsyn keyword VRMLEvents	       set_fontStyle set_fraction set_frontUrl
96071d4279SBram Moolenaarsyn keyword VRMLEvents	       set_geometry set_groundAngle set_headlight
97071d4279SBram Moolenaarsyn keyword VRMLEvents	       set_height set_intensity set_jump set_key
98071d4279SBram Moolenaarsyn keyword VRMLEvents	       set_keyValue set_leftUrl set_length
99071d4279SBram Moolenaarsyn keyword VRMLEvents	       set_level set_location set_loop set_material
100071d4279SBram Moolenaarsyn keyword VRMLEvents	       set_maxAngle set_maxBack set_maxExtent
101071d4279SBram Moolenaarsyn keyword VRMLEvents	       set_maxFront set_maxPosition set_minAngle
102071d4279SBram Moolenaarsyn keyword VRMLEvents	       set_minBack set_minFront set_minPosition
103071d4279SBram Moolenaarsyn keyword VRMLEvents	       set_normal set_normalIndex set_offset set_on
104071d4279SBram Moolenaarsyn keyword VRMLEvents	       set_orientation set_parameter set_pitch
105071d4279SBram Moolenaarsyn keyword VRMLEvents	       set_point set_position set_priority
106071d4279SBram Moolenaarsyn keyword VRMLEvents	       set_radius set_rightUrl set_rotation
107071d4279SBram Moolenaarsyn keyword VRMLEvents	       set_scale set_scaleOrientation set_shininess
108071d4279SBram Moolenaarsyn keyword VRMLEvents	       set_size set_skyAngle set_skyColor
109071d4279SBram Moolenaarsyn keyword VRMLEvents	       set_source set_specularColor set_speed
110071d4279SBram Moolenaarsyn keyword VRMLEvents	       set_spine set_startTime set_stopTime
111071d4279SBram Moolenaarsyn keyword VRMLEvents	       set_string set_texCoord set_texCoordIndex
112071d4279SBram Moolenaarsyn keyword VRMLEvents	       set_texture set_textureTransform set_topUrl
113071d4279SBram Moolenaarsyn keyword VRMLEvents	       set_translation set_transparency set_type
114071d4279SBram Moolenaarsyn keyword VRMLEvents	       set_url set_vector set_visibilityLimit
115071d4279SBram Moolenaarsyn keyword VRMLEvents	       set_visibilityRange set_whichChoice
116071d4279SBram Moolenaarsyn keyword VRMLEvents	       shininess_changed size_changed
117071d4279SBram Moolenaarsyn keyword VRMLEvents	       skyAngle_changed skyColor_changed
118071d4279SBram Moolenaarsyn keyword VRMLEvents	       source_changed specularColor_changed
119071d4279SBram Moolenaarsyn keyword VRMLEvents	       speed_changed startTime_changed
120071d4279SBram Moolenaarsyn keyword VRMLEvents	       stopTime_changed string_changed
121071d4279SBram Moolenaarsyn keyword VRMLEvents	       texCoord_changed textureTransform_changed
122071d4279SBram Moolenaarsyn keyword VRMLEvents	       texture_changed time topUrl_changed
123071d4279SBram Moolenaarsyn keyword VRMLEvents	       touchTime trackPoint_changed
124071d4279SBram Moolenaarsyn keyword VRMLEvents	       translation_changed transparency_changed
125071d4279SBram Moolenaarsyn keyword VRMLEvents	       type_changed url_changed value_changed
126071d4279SBram Moolenaarsyn keyword VRMLEvents	       vector_changed visibilityLimit_changed
127071d4279SBram Moolenaarsyn keyword VRMLEvents	       visibilityRange_changed whichChoice_changed
128071d4279SBram Moolenaarsyn region  VRMLEvents	       start="\S+[^0-9]+\.[A-Za-z_]+"ms=s+1 end="\(,\|$\|\s\)"me=e-1
129071d4279SBram Moolenaar
130071d4279SBram Moolenaarsyn keyword VRMLNodes	       Anchor Appearance AudioClip Background
131071d4279SBram Moolenaarsyn keyword VRMLNodes	       Billboard Box Collision Color
132071d4279SBram Moolenaarsyn keyword VRMLNodes	       ColorInterpolator Cone Coordinate
133071d4279SBram Moolenaarsyn keyword VRMLNodes	       CoordinateInterpolator Cylinder
134071d4279SBram Moolenaarsyn keyword VRMLNodes	       CylinderSensor DirectionalLight
135071d4279SBram Moolenaarsyn keyword VRMLNodes	       ElevationGrid Extrusion Fog FontStyle
136071d4279SBram Moolenaarsyn keyword VRMLNodes	       Group ImageTexture IndexedFaceSet
137071d4279SBram Moolenaarsyn keyword VRMLNodes	       IndexedLineSet Inline LOD Material
138071d4279SBram Moolenaarsyn keyword VRMLNodes	       MovieTexture NavigationInfo Normal
139071d4279SBram Moolenaarsyn keyword VRMLNodes	       NormalInterpolator OrientationInterpolator
140071d4279SBram Moolenaarsyn keyword VRMLNodes	       PixelTexture PlaneSensor PointLight
141071d4279SBram Moolenaarsyn keyword VRMLNodes	       PointSet PositionInterpolator
142071d4279SBram Moolenaarsyn keyword VRMLNodes	       ProximitySensor ScalarInterpolator
143071d4279SBram Moolenaarsyn keyword VRMLNodes	       Script Shape Sound Sphere SphereSensor
144071d4279SBram Moolenaarsyn keyword VRMLNodes	       SpotLight Switch Text TextureCoordinate
145071d4279SBram Moolenaarsyn keyword VRMLNodes	       TextureTransform TimeSensor TouchSensor
146071d4279SBram Moolenaarsyn keyword VRMLNodes	       Transform Viewpoint VisibilitySensor
147071d4279SBram Moolenaarsyn keyword VRMLNodes	       WorldInfo
148071d4279SBram Moolenaar
149071d4279SBram Moolenaar" the following line doesn't catch <node><newline><openbrace> since \n
150071d4279SBram Moolenaar" doesn't match as an atom yet :-(
151071d4279SBram Moolenaarsyn match   VRMLNodes	       "[A-Za-z_][A-Za-z0-9_]*\(,\|\s\)*{"me=e-1
152071d4279SBram Moolenaarsyn region  VRMLNodes	       start="\<EXTERNPROTO\>\(,\|\s\)*[A-Za-z_]"ms=e start="\<EXTERNPROTO\>\(,\|\s\)*" end="[\s]*\["me=e-1 contains=VRMLProtos,VRMLComment
153071d4279SBram Moolenaarsyn region  VRMLNodes	       start="PROTO\>\(,\|\s\)*[A-Za-z_]"ms=e start="PROTO\>\(,\|\s\)*" end="[\s]*\["me=e-1 contains=VRMLProtos,VRMLComment
154071d4279SBram Moolenaar
155071d4279SBram Moolenaarsyn keyword VRMLTypes	       SFBool SFColor MFColor SFFloat MFFloat
156071d4279SBram Moolenaarsyn keyword VRMLTypes	       SFImage SFInt32 MFInt32 SFNode MFNode
157071d4279SBram Moolenaarsyn keyword VRMLTypes	       SFRotation MFRotation SFString MFString
158071d4279SBram Moolenaarsyn keyword VRMLTypes	       SFTime MFTime SFVec2f MFVec2f SFVec3f MFVec3f
159071d4279SBram Moolenaar
160071d4279SBram Moolenaarsyn keyword VRMLfTypes	       field exposedField eventIn eventOut
161071d4279SBram Moolenaar
162071d4279SBram Moolenaarsyn keyword VRMLValues	       TRUE FALSE NULL
163071d4279SBram Moolenaar
164071d4279SBram Moolenaarsyn keyword VRMLProtos	       contained EXTERNPROTO PROTO IS
165071d4279SBram Moolenaar
166071d4279SBram Moolenaarsyn keyword VRMLRoutes	       contained ROUTE TO
167071d4279SBram Moolenaar
168071d4279SBram Moolenaar"containment!
169071d4279SBram Moolenaarsyn include @jscript $VIMRUNTIME/syntax/javascript.vim
170071d4279SBram Moolenaarsyn region VRMLjScriptString contained start=+"\(\(javascript\)\|\(vrmlscript\)\|\(ecmascript\)\):+ms=e+1 skip=+\\\\\|\\"+ end=+"+me=e-1 contains=@jscript
171071d4279SBram Moolenaar
172071d4279SBram Moolenaar" match definitions.
173071d4279SBram Moolenaarsyn match   VRMLSpecial		  contained "\\[0-9][0-9][0-9]\|\\."
174071d4279SBram Moolenaarsyn region  VRMLString		  start=+"+  skip=+\\\\\|\\"+  end=+"+	contains=VRMLSpecial,VRMLjScriptString
175071d4279SBram Moolenaarsyn match   VRMLCharacter	  "'[^\\]'"
176071d4279SBram Moolenaarsyn match   VRMLSpecialCharacter  "'\\.'"
177071d4279SBram Moolenaarsyn match   VRMLNumber		  "[-+]\=\<[0-9]\+\(\.[0-9]\+\)\=\([eE]\{1}[-+]\=[0-9]\+\)\=\>\|0[xX][0-9a-fA-F]\+\>"
178071d4279SBram Moolenaarsyn match   VRMLNumber		  "0[xX][0-9a-fA-F]\+\>"
179071d4279SBram Moolenaarsyn match   VRMLComment		  "#.*$"
180071d4279SBram Moolenaar
181071d4279SBram Moolenaar" newlines should count as whitespace, but they can't be matched yet :-(
182071d4279SBram Moolenaarsyn region  VRMLRouteNode	  start="[^O]TO\(,\|\s\)*" end="\."me=e-1 contains=VRMLRoutes,VRMLComment
183071d4279SBram Moolenaarsyn region  VRMLRouteNode	  start="ROUTE\(,\|\s\)*" end="\."me=e-1 contains=VRMLRoutes,VRMLComment
184071d4279SBram Moolenaarsyn region  VRMLInstName	  start="DEF\>"hs=e+1 skip="DEF\(,\|\s\)*" end="[A-Za-z0-9_]\(\s\|$\|,\)"me=e contains=VRMLInstances,VRMLComment
185071d4279SBram Moolenaarsyn region  VRMLInstName	  start="USE\>"hs=e+1 skip="USE\(,\|\s\)*" end="[A-Za-z0-9_]\(\s\|$\|,\)"me=e contains=VRMLInstances,VRMLComment
186071d4279SBram Moolenaar
187071d4279SBram Moolenaarsyn keyword VRMLInstances      contained DEF USE
188071d4279SBram Moolenaarsyn sync minlines=1
189071d4279SBram Moolenaar
190071d4279SBram Moolenaar"FOLDS!
191071d4279SBram Moolenaarsyn sync fromstart
1929c102387SBram Moolenaar"setlocal foldmethod=syntax
193071d4279SBram Moolenaarsyn region braceFold start="{" end="}" transparent fold contains=TOP
194071d4279SBram Moolenaarsyn region bracketFold start="\[" end="]" transparent fold contains=TOP
195071d4279SBram Moolenaarsyn region VRMLString start=+"+ skip=+\\\\\|\\"+ end=+"+ fold contains=VRMLSpecial,VRMLjScriptString
196071d4279SBram Moolenaar
197071d4279SBram Moolenaar" Define the default highlighting.
19889bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
199071d4279SBram Moolenaar
200*f37506f6SBram Moolenaarhi def link VRMLCharacter  VRMLString
201*f37506f6SBram Moolenaarhi def link VRMLSpecialCharacter VRMLSpecial
202*f37506f6SBram Moolenaarhi def link VRMLNumber     VRMLString
203*f37506f6SBram Moolenaarhi def link VRMLValues     VRMLString
204*f37506f6SBram Moolenaarhi def link VRMLString     String
205*f37506f6SBram Moolenaarhi def link VRMLSpecial    Special
206*f37506f6SBram Moolenaarhi def link VRMLComment    Comment
207*f37506f6SBram Moolenaarhi def link VRMLNodes      Statement
208*f37506f6SBram Moolenaarhi def link VRMLFields     Type
209*f37506f6SBram Moolenaarhi def link VRMLEvents     Type
210*f37506f6SBram Moolenaarhi def link VRMLfTypes     LineNr
211071d4279SBram Moolenaar"  hi     VRMLfTypes     ctermfg=6 guifg=Brown
212*f37506f6SBram Moolenaarhi def link VRMLInstances  PreCondit
213*f37506f6SBram Moolenaarhi def link VRMLRoutes     PreCondit
214*f37506f6SBram Moolenaarhi def link VRMLProtos     PreProc
215*f37506f6SBram Moolenaarhi def link VRMLRouteNode  Identifier
216*f37506f6SBram Moolenaarhi def link VRMLInstName   Identifier
217*f37506f6SBram Moolenaarhi def link VRMLTypes      Identifier
218071d4279SBram Moolenaar
219071d4279SBram Moolenaar
220071d4279SBram Moolenaarlet b:current_syntax = "vrml"
221071d4279SBram Moolenaar
222071d4279SBram Moolenaar" vim: ts=8
223