| " Vim syntax file |
| " Language: VRML97 |
| " Modified from: VRML 1.0C by David Brown <dbrown@cgs.c4.gmeds.com> |
| " Maintainer: vacancy! |
| " Former Maintainer: Gregory Seidman <gsslist+vim@anthropohedron.net> |
| " Last change: 2006 May 03 |
| |
| " quit when a syntax file was already loaded |
| if exists("b:current_syntax") |
| finish |
| endif |
| |
| " keyword definitions |
| |
| syn keyword VRMLFields ambientIntensity appearance attenuation |
| syn keyword VRMLFields autoOffset avatarSize axisOfRotation backUrl |
| syn keyword VRMLFields bboxCenter bboxSize beamWidth beginCap |
| syn keyword VRMLFields bottom bottomRadius bottomUrl ccw center |
| syn keyword VRMLFields children choice collide color colorIndex |
| syn keyword VRMLFields colorPerVertex convex coord coordIndex |
| syn keyword VRMLFields creaseAngle crossSection cutOffAngle |
| syn keyword VRMLFields cycleInterval description diffuseColor |
| syn keyword VRMLFields directOutput direction diskAngle |
| syn keyword VRMLFields emissiveColor enabled endCap family |
| syn keyword VRMLFields fieldOfView fogType fontStyle frontUrl |
| syn keyword VRMLFields geometry groundAngle groundColor headlight |
| syn keyword VRMLFields height horizontal info intensity jump |
| syn keyword VRMLFields justify key keyValue language leftToRight |
| syn keyword VRMLFields leftUrl length level location loop material |
| syn keyword VRMLFields maxAngle maxBack maxExtent maxFront |
| syn keyword VRMLFields maxPosition minAngle minBack minFront |
| syn keyword VRMLFields minPosition mustEvaluate normal normalIndex |
| syn keyword VRMLFields normalPerVertex offset on orientation |
| syn keyword VRMLFields parameter pitch point position priority |
| syn keyword VRMLFields proxy radius range repeatS repeatT rightUrl |
| syn keyword VRMLFields rotation scale scaleOrientation shininess |
| syn keyword VRMLFields side size skyAngle skyColor solid source |
| syn keyword VRMLFields spacing spatialize specularColor speed spine |
| syn keyword VRMLFields startTime stopTime string style texCoord |
| syn keyword VRMLFields texCoordIndex texture textureTransform title |
| syn keyword VRMLFields top topToBottom topUrl translation |
| syn keyword VRMLFields transparency type url vector visibilityLimit |
| syn keyword VRMLFields visibilityRange whichChoice xDimension |
| syn keyword VRMLFields xSpacing zDimension zSpacing |
| syn match VRMLFields "\<[A-Za-z_][A-Za-z0-9_]*\>" contains=VRMLComment,VRMLProtos,VRMLfTypes |
| " syn match VRMLFields "\<[A-Za-z_][A-Za-z0-9_]*\>\(,\|\s\)*\(#.*$\)*\<IS\>\(#.*$\)*\(,\|\s\)*\<[A-Za-z_][A-Za-z0-9_]*\>\(,\|\s\)*\(#.*$\)*" contains=VRMLComment,VRMLProtos |
| " syn region VRMLFields start="\<[A-Za-z_][A-Za-z0-9_]*\>" end=+\(,\|#\|\s\)+me=e-1 contains=VRMLComment,VRMLProtos |
| |
| syn keyword VRMLEvents addChildren ambientIntensity_changed |
| syn keyword VRMLEvents appearance_changed attenuation_changed |
| syn keyword VRMLEvents autoOffset_changed avatarSize_changed |
| syn keyword VRMLEvents axisOfRotation_changed backUrl_changed |
| syn keyword VRMLEvents beamWidth_changed bindTime bottomUrl_changed |
| syn keyword VRMLEvents center_changed children_changed |
| syn keyword VRMLEvents choice_changed collideTime collide_changed |
| syn keyword VRMLEvents color_changed coord_changed |
| syn keyword VRMLEvents cutOffAngle_changed cycleInterval_changed |
| syn keyword VRMLEvents cycleTime description_changed |
| syn keyword VRMLEvents diffuseColor_changed direction_changed |
| syn keyword VRMLEvents diskAngle_changed duration_changed |
| syn keyword VRMLEvents emissiveColor_changed enabled_changed |
| syn keyword VRMLEvents enterTime exitTime fogType_changed |
| syn keyword VRMLEvents fontStyle_changed fraction_changed |
| syn keyword VRMLEvents frontUrl_changed geometry_changed |
| syn keyword VRMLEvents groundAngle_changed headlight_changed |
| syn keyword VRMLEvents hitNormal_changed hitPoint_changed |
| syn keyword VRMLEvents hitTexCoord_changed intensity_changed |
| syn keyword VRMLEvents isActive isBound isOver jump_changed |
| syn keyword VRMLEvents keyValue_changed key_changed leftUrl_changed |
| syn keyword VRMLEvents length_changed level_changed |
| syn keyword VRMLEvents location_changed loop_changed |
| syn keyword VRMLEvents material_changed maxAngle_changed |
| syn keyword VRMLEvents maxBack_changed maxExtent_changed |
| syn keyword VRMLEvents maxFront_changed maxPosition_changed |
| syn keyword VRMLEvents minAngle_changed minBack_changed |
| syn keyword VRMLEvents minFront_changed minPosition_changed |
| syn keyword VRMLEvents normal_changed offset_changed on_changed |
| syn keyword VRMLEvents orientation_changed parameter_changed |
| syn keyword VRMLEvents pitch_changed point_changed position_changed |
| syn keyword VRMLEvents priority_changed radius_changed |
| syn keyword VRMLEvents removeChildren rightUrl_changed |
| syn keyword VRMLEvents rotation_changed scaleOrientation_changed |
| syn keyword VRMLEvents scale_changed set_ambientIntensity |
| syn keyword VRMLEvents set_appearance set_attenuation |
| syn keyword VRMLEvents set_autoOffset set_avatarSize |
| syn keyword VRMLEvents set_axisOfRotation set_backUrl set_beamWidth |
| syn keyword VRMLEvents set_bind set_bottomUrl set_center |
| syn keyword VRMLEvents set_children set_choice set_collide |
| syn keyword VRMLEvents set_color set_colorIndex set_coord |
| syn keyword VRMLEvents set_coordIndex set_crossSection |
| syn keyword VRMLEvents set_cutOffAngle set_cycleInterval |
| syn keyword VRMLEvents set_description set_diffuseColor |
| syn keyword VRMLEvents set_direction set_diskAngle |
| syn keyword VRMLEvents set_emissiveColor set_enabled set_fogType |
| syn keyword VRMLEvents set_fontStyle set_fraction set_frontUrl |
| syn keyword VRMLEvents set_geometry set_groundAngle set_headlight |
| syn keyword VRMLEvents set_height set_intensity set_jump set_key |
| syn keyword VRMLEvents set_keyValue set_leftUrl set_length |
| syn keyword VRMLEvents set_level set_location set_loop set_material |
| syn keyword VRMLEvents set_maxAngle set_maxBack set_maxExtent |
| syn keyword VRMLEvents set_maxFront set_maxPosition set_minAngle |
| syn keyword VRMLEvents set_minBack set_minFront set_minPosition |
| syn keyword VRMLEvents set_normal set_normalIndex set_offset set_on |
| syn keyword VRMLEvents set_orientation set_parameter set_pitch |
| syn keyword VRMLEvents set_point set_position set_priority |
| syn keyword VRMLEvents set_radius set_rightUrl set_rotation |
| syn keyword VRMLEvents set_scale set_scaleOrientation set_shininess |
| syn keyword VRMLEvents set_size set_skyAngle set_skyColor |
| syn keyword VRMLEvents set_source set_specularColor set_speed |
| syn keyword VRMLEvents set_spine set_startTime set_stopTime |
| syn keyword VRMLEvents set_string set_texCoord set_texCoordIndex |
| syn keyword VRMLEvents set_texture set_textureTransform set_topUrl |
| syn keyword VRMLEvents set_translation set_transparency set_type |
| syn keyword VRMLEvents set_url set_vector set_visibilityLimit |
| syn keyword VRMLEvents set_visibilityRange set_whichChoice |
| syn keyword VRMLEvents shininess_changed size_changed |
| syn keyword VRMLEvents skyAngle_changed skyColor_changed |
| syn keyword VRMLEvents source_changed specularColor_changed |
| syn keyword VRMLEvents speed_changed startTime_changed |
| syn keyword VRMLEvents stopTime_changed string_changed |
| syn keyword VRMLEvents texCoord_changed textureTransform_changed |
| syn keyword VRMLEvents texture_changed time topUrl_changed |
| syn keyword VRMLEvents touchTime trackPoint_changed |
| syn keyword VRMLEvents translation_changed transparency_changed |
| syn keyword VRMLEvents type_changed url_changed value_changed |
| syn keyword VRMLEvents vector_changed visibilityLimit_changed |
| syn keyword VRMLEvents visibilityRange_changed whichChoice_changed |
| syn region VRMLEvents start="\S+[^0-9]+\.[A-Za-z_]+"ms=s+1 end="\(,\|$\|\s\)"me=e-1 |
| |
| syn keyword VRMLNodes Anchor Appearance AudioClip Background |
| syn keyword VRMLNodes Billboard Box Collision Color |
| syn keyword VRMLNodes ColorInterpolator Cone Coordinate |
| syn keyword VRMLNodes CoordinateInterpolator Cylinder |
| syn keyword VRMLNodes CylinderSensor DirectionalLight |
| syn keyword VRMLNodes ElevationGrid Extrusion Fog FontStyle |
| syn keyword VRMLNodes Group ImageTexture IndexedFaceSet |
| syn keyword VRMLNodes IndexedLineSet Inline LOD Material |
| syn keyword VRMLNodes MovieTexture NavigationInfo Normal |
| syn keyword VRMLNodes NormalInterpolator OrientationInterpolator |
| syn keyword VRMLNodes PixelTexture PlaneSensor PointLight |
| syn keyword VRMLNodes PointSet PositionInterpolator |
| syn keyword VRMLNodes ProximitySensor ScalarInterpolator |
| syn keyword VRMLNodes Script Shape Sound Sphere SphereSensor |
| syn keyword VRMLNodes SpotLight Switch Text TextureCoordinate |
| syn keyword VRMLNodes TextureTransform TimeSensor TouchSensor |
| syn keyword VRMLNodes Transform Viewpoint VisibilitySensor |
| syn keyword VRMLNodes WorldInfo |
| |
| " the following line doesn't catch <node><newline><openbrace> since \n |
| " doesn't match as an atom yet :-( |
| syn match VRMLNodes "[A-Za-z_][A-Za-z0-9_]*\(,\|\s\)*{"me=e-1 |
| syn region VRMLNodes start="\<EXTERNPROTO\>\(,\|\s\)*[A-Za-z_]"ms=e start="\<EXTERNPROTO\>\(,\|\s\)*" end="[\s]*\["me=e-1 contains=VRMLProtos,VRMLComment |
| syn region VRMLNodes start="PROTO\>\(,\|\s\)*[A-Za-z_]"ms=e start="PROTO\>\(,\|\s\)*" end="[\s]*\["me=e-1 contains=VRMLProtos,VRMLComment |
| |
| syn keyword VRMLTypes SFBool SFColor MFColor SFFloat MFFloat |
| syn keyword VRMLTypes SFImage SFInt32 MFInt32 SFNode MFNode |
| syn keyword VRMLTypes SFRotation MFRotation SFString MFString |
| syn keyword VRMLTypes SFTime MFTime SFVec2f MFVec2f SFVec3f MFVec3f |
| |
| syn keyword VRMLfTypes field exposedField eventIn eventOut |
| |
| syn keyword VRMLValues TRUE FALSE NULL |
| |
| syn keyword VRMLProtos contained EXTERNPROTO PROTO IS |
| |
| syn keyword VRMLRoutes contained ROUTE TO |
| |
| "containment! |
| syn include @jscript $VIMRUNTIME/syntax/javascript.vim |
| syn region VRMLjScriptString contained start=+"\(\(javascript\)\|\(vrmlscript\)\|\(ecmascript\)\):+ms=e+1 skip=+\\\\\|\\"+ end=+"+me=e-1 contains=@jscript |
| |
| " match definitions. |
| syn match VRMLSpecial contained "\\[0-9][0-9][0-9]\|\\." |
| syn region VRMLString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=VRMLSpecial,VRMLjScriptString |
| syn match VRMLCharacter "'[^\\]'" |
| syn match VRMLSpecialCharacter "'\\.'" |
| syn match VRMLNumber "[-+]\=\<[0-9]\+\(\.[0-9]\+\)\=\([eE]\{1}[-+]\=[0-9]\+\)\=\>\|0[xX][0-9a-fA-F]\+\>" |
| syn match VRMLNumber "0[xX][0-9a-fA-F]\+\>" |
| syn match VRMLComment "#.*$" |
| |
| " newlines should count as whitespace, but they can't be matched yet :-( |
| syn region VRMLRouteNode start="[^O]TO\(,\|\s\)*" end="\."me=e-1 contains=VRMLRoutes,VRMLComment |
| syn region VRMLRouteNode start="ROUTE\(,\|\s\)*" end="\."me=e-1 contains=VRMLRoutes,VRMLComment |
| syn region VRMLInstName start="DEF\>"hs=e+1 skip="DEF\(,\|\s\)*" end="[A-Za-z0-9_]\(\s\|$\|,\)"me=e contains=VRMLInstances,VRMLComment |
| syn region VRMLInstName start="USE\>"hs=e+1 skip="USE\(,\|\s\)*" end="[A-Za-z0-9_]\(\s\|$\|,\)"me=e contains=VRMLInstances,VRMLComment |
| |
| syn keyword VRMLInstances contained DEF USE |
| syn sync minlines=1 |
| |
| "FOLDS! |
| syn sync fromstart |
| "setlocal foldmethod=syntax |
| syn region braceFold start="{" end="}" transparent fold contains=TOP |
| syn region bracketFold start="\[" end="]" transparent fold contains=TOP |
| syn region VRMLString start=+"+ skip=+\\\\\|\\"+ end=+"+ fold contains=VRMLSpecial,VRMLjScriptString |
| |
| " Define the default highlighting. |
| " Only when an item doesn't have highlighting yet |
| |
| hi def link VRMLCharacter VRMLString |
| hi def link VRMLSpecialCharacter VRMLSpecial |
| hi def link VRMLNumber VRMLString |
| hi def link VRMLValues VRMLString |
| hi def link VRMLString String |
| hi def link VRMLSpecial Special |
| hi def link VRMLComment Comment |
| hi def link VRMLNodes Statement |
| hi def link VRMLFields Type |
| hi def link VRMLEvents Type |
| hi def link VRMLfTypes LineNr |
| " hi VRMLfTypes ctermfg=6 guifg=Brown |
| hi def link VRMLInstances PreCondit |
| hi def link VRMLRoutes PreCondit |
| hi def link VRMLProtos PreProc |
| hi def link VRMLRouteNode Identifier |
| hi def link VRMLInstName Identifier |
| hi def link VRMLTypes Identifier |
| |
| |
| let b:current_syntax = "vrml" |
| |
| " vim: ts=8 |