home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / vim60.zip / vim60rt2.zip / vim / vim60 / syntax / vrml.vim < prev    next >
Encoding:
Text File  |  2001-09-26  |  13.4 KB  |  240 lines

  1. " Vim syntax file
  2. " Language:        VRML97
  3. " Modified from:   VRML 1.0C by David Brown <dbrown@cgs.c4.gmeds.com>
  4. " Maintainer:      Gregory Seidman <gseidman@acm.org>
  5. " URL:             http://www.cs.brown.edu/~gss/vim/syntax/vrml.vim
  6. " Last change:     2001 Jun 12
  7.  
  8. " For version 5.x: Clear all syntax items
  9. " For version 6.x: Quit when a syntax file was already loaded
  10. if version < 600
  11.   syntax clear
  12. elseif exists("b:current_syntax")
  13.   finish
  14. endif
  15.  
  16. " keyword definitions
  17.  
  18. syn keyword VRMLFields         ambientIntensity appearance attenuation
  19. syn keyword VRMLFields         autoOffset avatarSize axisOfRotation backUrl
  20. syn keyword VRMLFields         bboxCenter bboxSize beamWidth beginCap
  21. syn keyword VRMLFields         bottom bottomRadius bottomUrl ccw center
  22. syn keyword VRMLFields         children choice collide color colorIndex
  23. syn keyword VRMLFields         colorPerVertex convex coord coordIndex
  24. syn keyword VRMLFields         creaseAngle crossSection cutOffAngle
  25. syn keyword VRMLFields         cycleInterval description diffuseColor
  26. syn keyword VRMLFields         directOutput direction diskAngle
  27. syn keyword VRMLFields         emissiveColor enabled endCap family
  28. syn keyword VRMLFields         fieldOfView fogType fontStyle frontUrl
  29. syn keyword VRMLFields         geometry groundAngle groundColor headlight
  30. syn keyword VRMLFields         height horizontal info intensity jump
  31. syn keyword VRMLFields         justify key keyValue language leftToRight
  32. syn keyword VRMLFields         leftUrl length level location loop material
  33. syn keyword VRMLFields         maxAngle maxBack maxExtent maxFront
  34. syn keyword VRMLFields         maxPosition minAngle minBack minFront
  35. syn keyword VRMLFields         minPosition mustEvaluate normal normalIndex
  36. syn keyword VRMLFields         normalPerVertex offset on orientation
  37. syn keyword VRMLFields         parameter pitch point position priority
  38. syn keyword VRMLFields         proxy radius range repeatS repeatT rightUrl
  39. syn keyword VRMLFields         rotation scale scaleOrientation shininess
  40. syn keyword VRMLFields         side size skyAngle skyColor solid source
  41. syn keyword VRMLFields         spacing spatialize specularColor speed spine
  42. syn keyword VRMLFields         startTime stopTime string style texCoord
  43. syn keyword VRMLFields         texCoordIndex texture textureTransform title
  44. syn keyword VRMLFields         top topToBottom topUrl translation
  45. syn keyword VRMLFields         transparency type url vector visibilityLimit
  46. syn keyword VRMLFields         visibilityRange whichChoice xDimension
  47. syn keyword VRMLFields         xSpacing zDimension zSpacing
  48. syn match   VRMLFields         "\<[A-Za-z_][A-Za-z0-9_]*\>" contains=VRMLComment,VRMLProtos,VRMLfTypes
  49. " syn match   VRMLFields         "\<[A-Za-z_][A-Za-z0-9_]*\>\(,\|\s\)*\(#.*$\)*\<IS\>\(#.*$\)*\(,\|\s\)*\<[A-Za-z_][A-Za-z0-9_]*\>\(,\|\s\)*\(#.*$\)*" contains=VRMLComment,VRMLProtos
  50. " syn region  VRMLFields         start="\<[A-Za-z_][A-Za-z0-9_]*\>" end=+\(,\|#\|\s\)+me=e-1 contains=VRMLComment,VRMLProtos
  51.  
  52. syn keyword VRMLEvents         addChildren ambientIntensity_changed
  53. syn keyword VRMLEvents         appearance_changed attenuation_changed
  54. syn keyword VRMLEvents         autoOffset_changed avatarSize_changed
  55. syn keyword VRMLEvents         axisOfRotation_changed backUrl_changed
  56. syn keyword VRMLEvents         beamWidth_changed bindTime bottomUrl_changed
  57. syn keyword VRMLEvents         center_changed children_changed
  58. syn keyword VRMLEvents         choice_changed collideTime collide_changed
  59. syn keyword VRMLEvents         color_changed coord_changed
  60. syn keyword VRMLEvents         cutOffAngle_changed cycleInterval_changed
  61. syn keyword VRMLEvents         cycleTime description_changed
  62. syn keyword VRMLEvents         diffuseColor_changed direction_changed
  63. syn keyword VRMLEvents         diskAngle_changed duration_changed
  64. syn keyword VRMLEvents         emissiveColor_changed enabled_changed
  65. syn keyword VRMLEvents         enterTime exitTime fogType_changed
  66. syn keyword VRMLEvents         fontStyle_changed fraction_changed
  67. syn keyword VRMLEvents         frontUrl_changed geometry_changed
  68. syn keyword VRMLEvents         groundAngle_changed headlight_changed
  69. syn keyword VRMLEvents         hitNormal_changed hitPoint_changed
  70. syn keyword VRMLEvents         hitTexCoord_changed intensity_changed
  71. syn keyword VRMLEvents         isActive isBound isOver jump_changed
  72. syn keyword VRMLEvents         keyValue_changed key_changed leftUrl_changed
  73. syn keyword VRMLEvents         length_changed level_changed
  74. syn keyword VRMLEvents         location_changed loop_changed
  75. syn keyword VRMLEvents         material_changed maxAngle_changed
  76. syn keyword VRMLEvents         maxBack_changed maxExtent_changed
  77. syn keyword VRMLEvents         maxFront_changed maxPosition_changed
  78. syn keyword VRMLEvents         minAngle_changed minBack_changed
  79. syn keyword VRMLEvents         minFront_changed minPosition_changed
  80. syn keyword VRMLEvents         normal_changed offset_changed on_changed
  81. syn keyword VRMLEvents         orientation_changed parameter_changed
  82. syn keyword VRMLEvents         pitch_changed point_changed position_changed
  83. syn keyword VRMLEvents         priority_changed radius_changed
  84. syn keyword VRMLEvents         removeChildren rightUrl_changed
  85. syn keyword VRMLEvents         rotation_changed scaleOrientation_changed
  86. syn keyword VRMLEvents         scale_changed set_ambientIntensity
  87. syn keyword VRMLEvents         set_appearance set_attenuation
  88. syn keyword VRMLEvents         set_autoOffset set_avatarSize
  89. syn keyword VRMLEvents         set_axisOfRotation set_backUrl set_beamWidth
  90. syn keyword VRMLEvents         set_bind set_bottomUrl set_center
  91. syn keyword VRMLEvents         set_children set_choice set_collide
  92. syn keyword VRMLEvents         set_color set_colorIndex set_coord
  93. syn keyword VRMLEvents         set_coordIndex set_crossSection
  94. syn keyword VRMLEvents         set_cutOffAngle set_cycleInterval
  95. syn keyword VRMLEvents         set_description set_diffuseColor
  96. syn keyword VRMLEvents         set_direction set_diskAngle
  97. syn keyword VRMLEvents         set_emissiveColor set_enabled set_fogType
  98. syn keyword VRMLEvents         set_fontStyle set_fraction set_frontUrl
  99. syn keyword VRMLEvents         set_geometry set_groundAngle set_headlight
  100. syn keyword VRMLEvents         set_height set_intensity set_jump set_key
  101. syn keyword VRMLEvents         set_keyValue set_leftUrl set_length
  102. syn keyword VRMLEvents         set_level set_location set_loop set_material
  103. syn keyword VRMLEvents         set_maxAngle set_maxBack set_maxExtent
  104. syn keyword VRMLEvents         set_maxFront set_maxPosition set_minAngle
  105. syn keyword VRMLEvents         set_minBack set_minFront set_minPosition
  106. syn keyword VRMLEvents         set_normal set_normalIndex set_offset set_on
  107. syn keyword VRMLEvents         set_orientation set_parameter set_pitch
  108. syn keyword VRMLEvents         set_point set_position set_priority
  109. syn keyword VRMLEvents         set_radius set_rightUrl set_rotation
  110. syn keyword VRMLEvents         set_scale set_scaleOrientation set_shininess
  111. syn keyword VRMLEvents         set_size set_skyAngle set_skyColor
  112. syn keyword VRMLEvents         set_source set_specularColor set_speed
  113. syn keyword VRMLEvents         set_spine set_startTime set_stopTime
  114. syn keyword VRMLEvents         set_string set_texCoord set_texCoordIndex
  115. syn keyword VRMLEvents         set_texture set_textureTransform set_topUrl
  116. syn keyword VRMLEvents         set_translation set_transparency set_type
  117. syn keyword VRMLEvents         set_url set_vector set_visibilityLimit
  118. syn keyword VRMLEvents         set_visibilityRange set_whichChoice
  119. syn keyword VRMLEvents         shininess_changed size_changed
  120. syn keyword VRMLEvents         skyAngle_changed skyColor_changed
  121. syn keyword VRMLEvents         source_changed specularColor_changed
  122. syn keyword VRMLEvents         speed_changed startTime_changed
  123. syn keyword VRMLEvents         stopTime_changed string_changed
  124. syn keyword VRMLEvents         texCoord_changed textureTransform_changed
  125. syn keyword VRMLEvents         texture_changed time topUrl_changed
  126. syn keyword VRMLEvents         touchTime trackPoint_changed
  127. syn keyword VRMLEvents         translation_changed transparency_changed
  128. syn keyword VRMLEvents         type_changed url_changed value_changed
  129. syn keyword VRMLEvents         vector_changed visibilityLimit_changed
  130. syn keyword VRMLEvents         visibilityRange_changed whichChoice_changed
  131. syn region  VRMLEvents         start="\S+[^0-9]+\.[A-Za-z_]+"ms=s+1 end="\(,\|$\|\s\)"me=e-1
  132.  
  133. syn keyword VRMLNodes          Anchor Appearance AudioClip Background
  134. syn keyword VRMLNodes          Billboard Box Collision Color
  135. syn keyword VRMLNodes          ColorInterpolator Cone Coordinate
  136. syn keyword VRMLNodes          CoordinateInterpolator Cylinder
  137. syn keyword VRMLNodes          CylinderSensor DirectionalLight
  138. syn keyword VRMLNodes          ElevationGrid Extrusion Fog FontStyle
  139. syn keyword VRMLNodes          Group ImageTexture IndexedFaceSet
  140. syn keyword VRMLNodes          IndexedLineSet Inline LOD Material
  141. syn keyword VRMLNodes          MovieTexture NavigationInfo Normal
  142. syn keyword VRMLNodes          NormalInterpolator OrientationInterpolator
  143. syn keyword VRMLNodes          PixelTexture PlaneSensor PointLight
  144. syn keyword VRMLNodes          PointSet PositionInterpolator
  145. syn keyword VRMLNodes          ProximitySensor ScalarInterpolator
  146. syn keyword VRMLNodes          Script Shape Sound Sphere SphereSensor
  147. syn keyword VRMLNodes          SpotLight Switch Text TextureCoordinate
  148. syn keyword VRMLNodes          TextureTransform TimeSensor TouchSensor
  149. syn keyword VRMLNodes          Transform Viewpoint VisibilitySensor
  150. syn keyword VRMLNodes          WorldInfo
  151.  
  152. " the following line doesn't catch <node><newline><openbrace> since \n
  153. " doesn't match as an atom yet :-(
  154. syn match   VRMLNodes          "[A-Za-z_][A-Za-z0-9_]*\(,\|\s\)*{"me=e-1
  155. syn region  VRMLNodes          start="\<EXTERNPROTO\>\(,\|\s\)*[A-Za-z_]"ms=e start="\<EXTERNPROTO\>\(,\|\s\)*" end="[\s]*\["me=e-1 contains=VRMLProtos,VRMLComment
  156. syn region  VRMLNodes          start="PROTO\>\(,\|\s\)*[A-Za-z_]"ms=e start="PROTO\>\(,\|\s\)*" end="[\s]*\["me=e-1 contains=VRMLProtos,VRMLComment
  157.  
  158. syn keyword VRMLTypes          SFBool SFColor MFColor SFFloat MFFloat
  159. syn keyword VRMLTypes          SFImage SFInt32 MFInt32 SFNode MFNode
  160. syn keyword VRMLTypes          SFRotation MFRotation SFString MFString
  161. syn keyword VRMLTypes          SFTime MFTime SFVec2f MFVec2f SFVec3f MFVec3f
  162.  
  163. syn keyword VRMLfTypes         field exposedField eventIn eventOut
  164.  
  165. syn keyword VRMLValues         TRUE FALSE NULL
  166.  
  167. syn keyword VRMLProtos         contained EXTERNPROTO PROTO IS
  168.  
  169. syn keyword VRMLRoutes         contained ROUTE TO
  170.  
  171. if version >= 502
  172. "containment!
  173.   syn include @jscript $VIMRUNTIME/syntax/javascript.vim
  174.   syn region VRMLjScriptString contained start=+"\(\(javascript\)\|\(vrmlscript\)\|\(ecmascript\)\):+ms=e+1 skip=+\\\\\|\\"+ end=+"+me=e-1 contains=@jscript
  175. endif
  176.  
  177. " match definitions.
  178. syn match   VRMLSpecial           contained "\\[0-9][0-9][0-9]\|\\."
  179. syn region  VRMLString            start=+"+  skip=+\\\\\|\\"+  end=+"+  contains=VRMLSpecial,VRMLjScriptString
  180. syn match   VRMLCharacter         "'[^\\]'"
  181. syn match   VRMLSpecialCharacter  "'\\.'"
  182. syn match   VRMLNumber            "[-+]\=\<[0-9]\+\(\.[0-9]\+\)\=\([eE]\{1}[-+]\=[0-9]\+\)\=\>\|0[xX][0-9a-fA-F]\+\>"
  183. syn match   VRMLNumber            "0[xX][0-9a-fA-F]\+\>"
  184. syn match   VRMLComment           "#.*$"
  185.  
  186. " newlines should count as whitespace, but they can't be matched yet :-(
  187. syn region  VRMLRouteNode         start="[^O]TO\(,\|\s\)*" end="\."me=e-1 contains=VRMLRoutes,VRMLComment
  188. syn region  VRMLRouteNode         start="ROUTE\(,\|\s\)*" end="\."me=e-1 contains=VRMLRoutes,VRMLComment
  189. syn region  VRMLInstName          start="DEF\>"hs=e+1 skip="DEF\(,\|\s\)*" end="[A-Za-z0-9_]\(\s\|$\|,\)"me=e contains=VRMLInstances,VRMLComment
  190. syn region  VRMLInstName          start="USE\>"hs=e+1 skip="USE\(,\|\s\)*" end="[A-Za-z0-9_]\(\s\|$\|,\)"me=e contains=VRMLInstances,VRMLComment
  191.  
  192. syn keyword VRMLInstances      contained DEF USE
  193. syn sync minlines=1
  194.  
  195. if version >= 600
  196. "FOLDS!
  197.   syn sync fromstart
  198.   setlocal foldmethod=syntax
  199.   syn region braceFold start="{" end="}" transparent fold contains=TOP
  200.   syn region bracketFold start="\[" end="]" transparent fold contains=TOP
  201.   syn region VRMLString start=+"+ skip=+\\\\\|\\"+ end=+"+ fold contains=VRMLSpecial,VRMLjScriptString
  202. endif
  203.  
  204. " Define the default highlighting.
  205. " For version 5.7 and earlier: only when not done already
  206. " For version 5.8 and later: only when an item doesn't have highlighting yet
  207. if version >= 508 || !exists("did_VRML_syntax_inits")
  208.   if version < 508
  209.     let did_VRML_syntax_inits = 1
  210.     command -nargs=+ HiLink hi link <args>
  211.   else
  212.     command -nargs=+ HiLink hi def link <args>
  213.   endif
  214.  
  215.   HiLink VRMLCharacter  VRMLString
  216.   HiLink VRMLSpecialCharacter VRMLSpecial
  217.   HiLink VRMLNumber     VRMLString
  218.   HiLink VRMLValues     VRMLString
  219.   HiLink VRMLString     String
  220.   HiLink VRMLSpecial    Special
  221.   HiLink VRMLComment    Comment
  222.   HiLink VRMLNodes      Statement
  223.   HiLink VRMLFields     Type
  224.   HiLink VRMLEvents     Type
  225.   HiLink VRMLfTypes     LineNr
  226. "  hi     VRMLfTypes     ctermfg=6 guifg=Brown
  227.   HiLink VRMLInstances  PreCondit
  228.   HiLink VRMLRoutes     PreCondit
  229.   HiLink VRMLProtos     PreProc
  230.   HiLink VRMLRouteNode  Identifier
  231.   HiLink VRMLInstName   Identifier
  232.   HiLink VRMLTypes      Identifier
  233.  
  234.   delcommand HiLink
  235. endif
  236.  
  237. let b:current_syntax = "vrml"
  238.  
  239. " vim: ts=8
  240.