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