123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278 |
- " Vim syntax file
- " Language: Linden Scripting Language
- " Maintainer: Timo Frenay <timo@frenay.net>
- " Last Change: 2012 Apr 30
- " Quit when a syntax file was already loaded
- if exists("b:current_syntax")
- finish
- endif
- let s:keepcpo= &cpo
- set cpo&vim
- " Initializations
- syn case match
- " Keywords
- syn keyword lslKeyword default do else for if jump return state while
- " Types
- syn keyword lslType float integer key list quaternion rotation string vector
- " Labels
- syn match lslLabel +@\h\w*+ display
- " Constants
- syn keyword lslConstant
- \ ACTIVE AGENT AGENT_ALWAYS_RUN AGENT_ATTACHMENTS AGENT_AWAY AGENT_BUSY
- \ AGENT_CROUCHING AGENT_FLYING AGENT_IN_AIR AGENT_MOUSELOOK AGENT_ON_OBJECT
- \ AGENT_SCRIPTED AGENT_SITTING AGENT_TYPING AGENT_WALKING ALL_SIDES ANIM_ON
- \ ATTACH_BACK ATTACH_BELLY ATTACH_CHEST ATTACH_CHIN ATTACH_HEAD
- \ ATTACH_HUD_BOTTOM ATTACH_HUD_BOTTOM_LEFT ATTACH_HUD_BOTTOM_RIGHT
- \ ATTACH_HUD_CENTER_1 ATTACH_HUD_CENTER_2 ATTACH_HUD_TOP_CENTER
- \ ATTACH_HUD_TOP_LEFT ATTACH_HUD_TOP_RIGHT ATTACH_LEAR ATTACH_LEYE ATTACH_LFOOT
- \ ATTACH_LHAND ATTACH_LHIP ATTACH_LLARM ATTACH_LLLEG ATTACH_LPEC
- \ ATTACH_LSHOULDER ATTACH_LUARM ATTACH_LULEG ATTACH_MOUTH ATTACH_NOSE
- \ ATTACH_PELVIS ATTACH_REAR ATTACH_REYE ATTACH_RFOOT ATTACH_RHAND ATTACH_RHIP
- \ ATTACH_RLARM ATTACH_RLLEG ATTACH_RPEC ATTACH_RSHOULDER ATTACH_RUARM
- \ ATTACH_RULEG CAMERA_ACTIVE CAMERA_BEHINDNESS_ANGLE CAMERA_BEHINDNESS_LAG
- \ CAMERA_DISTANCE CAMERA_FOCUS CAMERA_FOCUS_LAG CAMERA_FOCUS_LOCKED
- \ CAMERA_FOCUS_OFFSET CAMERA_FOCUS_THRESHOLD CAMERA_PITCH CAMERA_POSITION
- \ CAMERA_POSITION_LAG CAMERA_POSITION_LOCKED CAMERA_POSITION_THRESHOLD
- \ CHANGED_ALLOWED_DROP CHANGED_COLOR CHANGED_INVENTORY CHANGED_LINK
- \ CHANGED_OWNER CHANGED_REGION CHANGED_SCALE CHANGED_SHAPE CHANGED_TELEPORT
- \ CHANGED_TEXTURE CLICK_ACTION_BUY CLICK_ACTION_NONE CLICK_ACTION_OPEN
- \ CLICK_ACTION_OPEN_MEDIA CLICK_ACTION_PAY CLICK_ACTION_PLAY CLICK_ACTION_SIT
- \ CLICK_ACTION_TOUCH CONTROL_BACK CONTROL_DOWN CONTROL_FWD CONTROL_LBUTTON
- \ CONTROL_LEFT CONTROL_ML_LBUTTON CONTROL_RIGHT CONTROL_ROT_LEFT
- \ CONTROL_ROT_RIGHT CONTROL_UP DATA_BORN DATA_NAME DATA_ONLINE DATA_PAYINFO
- \ DATA_RATING DATA_SIM_POS DATA_SIM_RATING DATA_SIM_STATUS DEBUG_CHANNEL
- \ DEG_TO_RAD EOF FALSE HTTP_BODY_MAXLENGTH HTTP_BODY_TRUNCATED HTTP_METHOD
- \ HTTP_MIMETYPE HTTP_VERIFY_CERT INVENTORY_ALL INVENTORY_ANIMATION
- \ INVENTORY_BODYPART INVENTORY_CLOTHING INVENTORY_GESTURE INVENTORY_LANDMARK
- \ INVENTORY_NONE INVENTORY_NOTECARD INVENTORY_OBJECT INVENTORY_SCRIPT
- \ INVENTORY_SOUND INVENTORY_TEXTURE LAND_LARGE_BRUSH LAND_LEVEL LAND_LOWER
- \ LAND_MEDIUM_BRUSH LAND_NOISE LAND_RAISE LAND_REVERT LAND_SMALL_BRUSH
- \ LAND_SMOOTH LINK_ALL_CHILDREN LINK_ALL_OTHERS LINK_ROOT LINK_SET LINK_THIS
- \ LIST_STAT_GEOMETRIC_MEAN LIST_STAT_MAX LIST_STAT_MEAN LIST_STAT_MEDIAN
- \ LIST_STAT_MIN LIST_STAT_NUM_COUNT LIST_STAT_RANGE LIST_STAT_STD_DEV
- \ LIST_STAT_SUM LIST_STAT_SUM_SQUARES LOOP MASK_BASE MASK_EVERYONE MASK_GROUP
- \ MASK_NEXT MASK_OWNER NULL_KEY OBJECT_CREATOR OBJECT_DESC OBJECT_GROUP
- \ OBJECT_NAME OBJECT_OWNER OBJECT_POS OBJECT_ROT OBJECT_UNKNOWN_DETAIL
- \ OBJECT_VELOCITY PARCEL_COUNT_GROUP PARCEL_COUNT_OTHER PARCEL_COUNT_OWNER
- \ PARCEL_COUNT_SELECTED PARCEL_COUNT_TEMP PARCEL_COUNT_TOTAL PARCEL_DETAILS_AREA
- \ PARCEL_DETAILS_DESC PARCEL_DETAILS_GROUP PARCEL_DETAILS_NAME
- \ PARCEL_DETAILS_OWNER PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY
- \ PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS PARCEL_FLAG_ALLOW_CREATE_OBJECTS
- \ PARCEL_FLAG_ALLOW_DAMAGE PARCEL_FLAG_ALLOW_FLY
- \ PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY PARCEL_FLAG_ALLOW_GROUP_SCRIPTS
- \ PARCEL_FLAG_ALLOW_LANDMARK PARCEL_FLAG_ALLOW_SCRIPTS
- \ PARCEL_FLAG_ALLOW_TERRAFORM PARCEL_FLAG_LOCAL_SOUND_ONLY
- \ PARCEL_FLAG_RESTRICT_PUSHOBJECT PARCEL_FLAG_USE_ACCESS_GROUP
- \ PARCEL_FLAG_USE_ACCESS_LIST PARCEL_FLAG_USE_BAN_LIST
- \ PARCEL_FLAG_USE_LAND_PASS_LIST PARCEL_MEDIA_COMMAND_AGENT
- \ PARCEL_MEDIA_COMMAND_AUTO_ALIGN PARCEL_MEDIA_COMMAND_DESC
- \ PARCEL_MEDIA_COMMAND_LOOP PARCEL_MEDIA_COMMAND_LOOP_SET
- \ PARCEL_MEDIA_COMMAND_PAUSE PARCEL_MEDIA_COMMAND_PLAY PARCEL_MEDIA_COMMAND_SIZE
- \ PARCEL_MEDIA_COMMAND_STOP PARCEL_MEDIA_COMMAND_TEXTURE
- \ PARCEL_MEDIA_COMMAND_TIME PARCEL_MEDIA_COMMAND_TYPE
- \ PARCEL_MEDIA_COMMAND_UNLOAD PARCEL_MEDIA_COMMAND_URL PASSIVE
- \ PAYMENT_INFO_ON_FILE PAYMENT_INFO_USED PAY_DEFAULT PAY_HIDE PERM_ALL PERM_COPY
- \ PERM_MODIFY PERM_MOVE PERM_TRANSFER PERMISSION_ATTACH PERMISSION_CHANGE_LINKS
- \ PERMISSION_CONTROL_CAMERA PERMISSION_DEBIT PERMISSION_TAKE_CONTROLS
- \ PERMISSION_TRACK_CAMERA PERMISSION_TRIGGER_ANIMATION PI PI_BY_TWO PING_PONG
- \ PRIM_BUMP_BARK PRIM_BUMP_BLOBS PRIM_BUMP_BRICKS PRIM_BUMP_BRIGHT
- \ PRIM_BUMP_CHECKER PRIM_BUMP_CONCRETE PRIM_BUMP_DARK PRIM_BUMP_DISKS
- \ PRIM_BUMP_GRAVEL PRIM_BUMP_LARGETILE PRIM_BUMP_NONE PRIM_BUMP_SHINY
- \ PRIM_BUMP_SIDING PRIM_BUMP_STONE PRIM_BUMP_STUCCO PRIM_BUMP_SUCTION
- \ PRIM_BUMP_TILE PRIM_BUMP_WEAVE PRIM_BUMP_WOOD PRIM_CAST_SHADOWS PRIM_COLOR
- \ PRIM_FLEXIBLE PRIM_FULLBRIGHT PRIM_HOLE_CIRCLE PRIM_HOLE_DEFAULT
- \ PRIM_HOLE_SQUARE PRIM_HOLE_TRIANGLE PRIM_MATERIAL PRIM_MATERIAL_FLESH
- \ PRIM_MATERIAL_GLASS PRIM_MATERIAL_LIGHT PRIM_MATERIAL_METAL
- \ PRIM_MATERIAL_PLASTIC PRIM_MATERIAL_RUBBER PRIM_MATERIAL_STONE
- \ PRIM_MATERIAL_WOOD PRIM_PHANTOM PRIM_PHYSICS PRIM_POINT_LIGHT PRIM_POSITION
- \ PRIM_ROTATION PRIM_SCULPT_TYPE_CYLINDER PRIM_SCULPT_TYPE_PLANE
- \ PRIM_SCULPT_TYPE_SPHERE PRIM_SCULPT_TYPE_TORUS PRIM_SHINY_HIGH PRIM_SHINY_LOW
- \ PRIM_SHINY_MEDIUM PRIM_SHINY_NONE PRIM_SIZE PRIM_TEMP_ON_REZ PRIM_TEXGEN
- \ PRIM_TEXGEN_DEFAULT PRIM_TEXGEN_PLANAR PRIM_TEXTURE PRIM_TYPE PRIM_TYPE_BOX
- \ PRIM_TYPE_BOX PRIM_TYPE_CYLINDER PRIM_TYPE_CYLINDER PRIM_TYPE_LEGACY
- \ PRIM_TYPE_PRISM PRIM_TYPE_PRISM PRIM_TYPE_RING PRIM_TYPE_SCULPT
- \ PRIM_TYPE_SPHERE PRIM_TYPE_SPHERE PRIM_TYPE_TORUS PRIM_TYPE_TORUS
- \ PRIM_TYPE_TUBE PRIM_TYPE_TUBE PSYS_PART_BEAM_MASK PSYS_PART_BOUNCE_MASK
- \ PSYS_PART_DEAD_MASK PSYS_PART_EMISSIVE_MASK PSYS_PART_END_ALPHA
- \ PSYS_PART_END_COLOR PSYS_PART_END_SCALE PSYS_PART_FLAGS
- \ PSYS_PART_FOLLOW_SRC_MASK PSYS_PART_FOLLOW_VELOCITY_MASK
- \ PSYS_PART_INTERP_COLOR_MASK PSYS_PART_INTERP_SCALE_MASK PSYS_PART_MAX_AGE
- \ PSYS_PART_RANDOM_ACCEL_MASK PSYS_PART_RANDOM_VEL_MASK PSYS_PART_START_ALPHA
- \ PSYS_PART_START_COLOR PSYS_PART_START_SCALE PSYS_PART_TARGET_LINEAR_MASK
- \ PSYS_PART_TARGET_POS_MASK PSYS_PART_TRAIL_MASK PSYS_PART_WIND_MASK
- \ PSYS_SRC_ACCEL PSYS_SRC_ANGLE_BEGIN PSYS_SRC_ANGLE_END
- \ PSYS_SRC_BURST_PART_COUNT PSYS_SRC_BURST_RADIUS PSYS_SRC_BURST_RATE
- \ PSYS_SRC_BURST_SPEED_MAX PSYS_SRC_BURST_SPEED_MIN PSYS_SRC_INNERANGLE
- \ PSYS_SRC_MAX_AGE PSYS_SRC_OMEGA PSYS_SRC_OUTERANGLE PSYS_SRC_PATTERN
- \ PSYS_SRC_PATTERN_ANGLE PSYS_SRC_PATTERN_ANGLE_CONE
- \ PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY PSYS_SRC_PATTERN_DROP
- \ PSYS_SRC_PATTERN_EXPLODE PSYS_SRC_TARGET_KEY PSYS_SRC_TEXTURE PUBLIC_CHANNEL
- \ RAD_TO_DEG REGION_FLAG_ALLOW_DAMAGE REGION_FLAG_ALLOW_DIRECT_TELEPORT
- \ REGION_FLAG_BLOCK_FLY REGION_FLAG_BLOCK_TERRAFORM
- \ REGION_FLAG_DISABLE_COLLISIONS REGION_FLAG_DISABLE_PHYSICS
- \ REGION_FLAG_FIXED_SUN REGION_FLAG_RESTRICT_PUSHOBJECT REGION_FLAG_SANDBOX
- \ REMOTE_DATA_CHANNEL REMOTE_DATA_REPLY REMOTE_DATA_REQUEST REVERSE ROTATE SCALE
- \ SCRIPTED SMOOTH SQRT2 STATUS_BLOCK_GRAB STATUS_CAST_SHADOWS STATUS_DIE_AT_EDGE
- \ STATUS_PHANTOM STATUS_PHYSICS STATUS_RETURN_AT_EDGE STATUS_ROTATE_X
- \ STATUS_ROTATE_Y STATUS_ROTATE_Z STATUS_SANDBOX STRING_TRIM STRING_TRIM_HEAD
- \ STRING_TRIM_TAIL TRUE TWO_PI TYPE_FLOAT TYPE_INTEGER TYPE_INVALID TYPE_KEY
- \ TYPE_ROTATION TYPE_STRING TYPE_VECTOR VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY
- \ VEHICLE_ANGULAR_DEFLECTION_TIMESCALE VEHICLE_ANGULAR_FRICTION_TIMESCALE
- \ VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE VEHICLE_ANGULAR_MOTOR_DIRECTION
- \ VEHICLE_ANGULAR_MOTOR_TIMESCALE VEHICLE_BANKING_EFFICIENCY VEHICLE_BANKING_MIX
- \ VEHICLE_BANKING_TIMESCALE VEHICLE_BUOYANCY VEHICLE_FLAG_CAMERA_DECOUPLED
- \ VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT VEHICLE_FLAG_HOVER_TERRAIN_ONLY
- \ VEHICLE_FLAG_HOVER_UP_ONLY VEHICLE_FLAG_HOVER_WATER_ONLY
- \ VEHICLE_FLAG_LIMIT_MOTOR_UP VEHICLE_FLAG_LIMIT_ROLL_ONLY
- \ VEHICLE_FLAG_MOUSELOOK_BANK VEHICLE_FLAG_MOUSELOOK_STEER
- \ VEHICLE_FLAG_NO_DEFLECTION_UP VEHICLE_HOVER_EFFICIENCY VEHICLE_HOVER_HEIGHT
- \ VEHICLE_HOVER_TIMESCALE VEHICLE_LINEAR_DEFLECTION_EFFICIENCY
- \ VEHICLE_LINEAR_DEFLECTION_TIMESCALE VEHICLE_LINEAR_FRICTION_TIMESCALE
- \ VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE VEHICLE_LINEAR_MOTOR_TIMESCALE
- \ VEHICLE_LINEAR_MOTOR_DIRECTION VEHICLE_LINEAR_MOTOR_OFFSET
- \ VEHICLE_REFERENCE_FRAME VEHICLE_TYPE_AIRPLANE VEHICLE_TYPE_BALLOON
- \ VEHICLE_TYPE_BOAT VEHICLE_TYPE_CAR VEHICLE_TYPE_NONE VEHICLE_TYPE_SLED
- \ VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY VEHICLE_VERTICAL_ATTRACTION_TIMESCALE
- \ ZERO_ROTATION ZERO_VECTOR
- " Events
- syn keyword lslEvent
- \ attach at_rot_target at_target changed collision collision_end collision_start
- \ control dataserver email http_response land_collision land_collision_end
- \ land_collision_start link_message listen money moving_end moving_start
- \ not_at_rot_target no_sensor object_rez on_rez remote_data run_time_permissions
- \ sensor state_entry state_exit timer touch touch_end touch_start not_at_target
- " Functions
- syn keyword lslFunction
- \ llAbs llAcos llAddToLandBanList llAddToLandPassList llAdjustSoundVolume
- \ llAllowInventoryDrop llAngleBetween llApplyImpulse llApplyRotationalImpulse
- \ llAsin llAtan2 llAttachToAvatar llAvatarOnSitTarget llAxes2Rot llAxisAngle2Rot
- \ llBase64ToInteger llBase64ToString llBreakAllLinks llBreakLink llCSV2List
- \ llCeil llClearCameraParams llCloseRemoteDataChannel llCloud llCollisionFilter
- \ llCollisionSound llCollisionSprite llCos llCreateLink llDeleteSubList
- \ llDeleteSubString llDetachFromAvatar llDetectedGrab llDetectedGroup
- \ llDetectedKey llDetectedLinkNumber llDetectedName llDetectedOwner
- \ llDetectedPos llDetectedRot llDetectedType llDetectedVel llDialog llDie
- \ llDumpList2String llEdgeOfWorld llEjectFromLand llEmail llEscapeURL
- \ llEuler2Rot llFabs llFloor llForceMouselook llFrand llGetAccel llGetAgentInfo
- \ llGetAgentSize llGetAlpha llGetAndResetTime llGetAnimation llGetAnimationList
- \ llGetAttached llGetBoundingBox llGetCameraPos llGetCameraRot llGetCenterOfMass
- \ llGetColor llGetCreator llGetDate llGetEnergy llGetForce llGetFreeMemory
- \ llGetGMTclock llGetGeometricCenter llGetInventoryCreator llGetInventoryKey
- \ llGetInventoryName llGetInventoryNumber llGetInventoryPermMask
- \ llGetInventoryType llGetKey llGetLandOwnerAt llGetLinkKey llGetLinkName
- \ llGetLinkNumber llGetListEntryType llGetListLength llGetLocalPos llGetLocalRot
- \ llGetMass llGetNextEmail llGetNotecardLine llGetNumberOfNotecardLines
- \ llGetNumberOfPrims llGetNumberOfSides llGetObjectDesc llGetObjectDetails
- \ llGetObjectMass llGetObjectName llGetObjectPermMask llGetObjectPrimCount
- \ llGetOmega llGetOwner llGetOwnerKey llGetParcelDetails llGetParcelFlags
- \ llGetParcelMaxPrims llGetParcelPrimCount llGetParcelPrimOwners
- \ llGetPermissions llGetPermissionsKey llGetPos llGetPrimitiveParams
- \ llGetRegionCorner llGetRegionFPS llGetRegionFlags llGetRegionName
- \ llGetRegionTimeDilation llGetRootPosition llGetRootRotation llGetRot
- \ llGetScale llGetScriptName llGetScriptState llGetSimulatorHostname
- \ llGetStartParameter llGetStatus llGetSubString llGetSunDirection llGetTexture
- \ llGetTextureOffset llGetTextureRot llGetTextureScale llGetTime llGetTimeOfDay
- \ llGetTimestamp llGetTorque llGetUnixTime llGetVel llGetWallclock
- \ llGiveInventory llGiveInventoryList llGiveMoney llGodLikeRezObject llGround
- \ llGroundContour llGroundNormal llGroundRepel llGroundSlope llHTTPRequest
- \ llInsertString llInstantMessage llIntegerToBase64 llKey2Name llList2CSV
- \ llList2Float llList2Integer llList2Key llList2List llList2ListStrided
- \ llList2Rot llList2String llList2Vector llListFindList llListInsertList
- \ llListRandomize llListReplaceList llListSort llListStatistics llListen
- \ llListenControl llListenRemove llLoadURL llLog llLog10 llLookAt llLoopSound
- \ llLoopSoundMaster llLoopSoundSlave llMD5String llMakeExplosion llMakeFire
- \ llMakeFountain llMakeSmoke llMapDestination llMessageLinked llMinEventDelay
- \ llModPow llModifyLand llMoveToTarget llOffsetTexture llOpenRemoteDataChannel
- \ llOverMyLand llOwnerSay llParcelMediaCommandList llParcelMediaQuery
- \ llParseString2List llParseStringKeepNulls llParticleSystem llPassCollisions
- \ llPassTouches llPlaySound llPlaySoundSlave llPointAt llPow llPreloadSound
- \ llPushObject llRefreshPrimURL llRegionSay llReleaseCamera llReleaseControls
- \ llRemoteDataReply llRemoteDataSetRegion llRemoteLoadScript
- \ llRemoteLoadScriptPin llRemoveFromLandBanList llRemoveFromLandPassList
- \ llRemoveInventory llRemoveVehicleFlags llRequestAgentData
- \ llRequestInventoryData llRequestPermissions llRequestSimulatorData
- \ llResetLandBanList llResetLandPassList llResetOtherScript llResetScript
- \ llResetTime llRezAtRoot llRezObject llRot2Angle llRot2Axis llRot2Euler
- \ llRot2Fwd llRot2Left llRot2Up llRotBetween llRotLookAt llRotTarget
- \ llRotTargetRemove llRotateTexture llRound llSameGroup llSay llScaleTexture
- \ llScriptDanger llSendRemoteData llSensor llSensorRemove llSensorRepeat
- \ llSetAlpha llSetBuoyancy llSetCameraAtOffset llSetCameraEyeOffset
- \ llSetCameraParams llSetClickAction llSetColor llSetDamage llSetForce
- \ llSetForceAndTorque llSetHoverHeight llSetInventoryPermMask llSetLinkAlpha
- \ llSetLinkColor llSetLinkPrimitiveParams llSetLinkTexture llSetLocalRot
- \ llSetObjectDesc llSetObjectName llSetObjectPermMask llSetParcelMusicURL
- \ llSetPayPrice llSetPos llSetPrimURL llSetPrimitiveParams
- \ llSetRemoteScriptAccessPin llSetRot llSetScale llSetScriptState llSetSitText
- \ llSetSoundQueueing llSetSoundRadius llSetStatus llSetText llSetTexture
- \ llSetTextureAnim llSetTimerEvent llSetTorque llSetTouchText llSetVehicleFlags
- \ llSetVehicleFloatParam llSetVehicleRotationParam llSetVehicleType
- \ llSetVehicleVectorParam llShout llSin llSitTarget llSleep llSound
- \ llSoundPreload llSqrt llStartAnimation llStopAnimation llStopHover
- \ llStopLookAt llStopMoveToTarget llStopPointAt llStopSound llStringLength
- \ llStringToBase64 llStringTrim llSubStringIndex llTakeCamera llTakeControls
- \ llTan llTarget llTargetOmega llTargetRemove llTeleportAgentHome llToLower
- \ llToUpper llTriggerSound llTriggerSoundLimited llUnSit llUnescapeURL llVecDist
- \ llVecMag llVecNorm llVolumeDetect llWater llWhisper llWind llXorBase64Strings
- \ llXorBase64StringsCorrect
- " Operators
- syn match lslOperator +[-!%&*+/<=>^|~]+ display
- " Numbers
- syn match lslNumber +-\=\%(\<\d\+\|\%(\<\d\+\)\=\.\d\+\)\%([Ee][-+]\=\d\+\)\=\>\|\<0x\x\+\>+ display
- " Vectors and rotations
- syn match lslVectorRot +<[-\t +.0-9A-Za-z_]\+\%(,[-\t +.0-9A-Za-z_]\+\)\{2,3}>+ contains=lslNumber display
- " Vector and rotation properties
- syn match lslProperty +\.\@<=[sxyz]\>+ display
- " Strings
- syn region lslString start=+"+ skip=+\\.+ end=+"+ contains=lslSpecialChar,@Spell
- syn match lslSpecialChar +\\.+ contained display
- " Keys
- syn match lslKey +"\x\{8}-\x\{4}-\x\{4}-\x\{4}-\x\{12}"+ display
- " Parentheses, braces and brackets
- syn match lslBlock +[][(){}]+ display
- " Typecast operators
- syn match lslTypecast +(\%(float\|integer\|key\|list\|quaternion\|rotation\|string\|vector\))+ contains=lslType display
- " Comments
- syn match lslComment +//.*+ contains=@Spell
- " Define the default highlighting.
- hi def link lslKeyword Keyword
- hi def link lslType Type
- hi def link lslLabel Label
- hi def link lslConstant Constant
- hi def link lslEvent PreProc
- hi def link lslFunction Function
- hi def link lslOperator Operator
- hi def link lslNumber Number
- hi def link lslVectorRot Special
- hi def link lslProperty Identifier
- hi def link lslString String
- hi def link lslSpecialChar SpecialChar
- hi def link lslKey Special
- hi def link lslBlock Special
- hi def link lslTypecast Operator
- hi def link lslComment Comment
- let b:current_syntax = "lsl"
- let &cpo = s:keepcpo
- unlet s:keepcpo
- " vim: ts=8
|