" Vim syntax file " Language: LSL " Maintainer: Camilla Berglund " Last Change: August 4, 2008 " Quit when a (custom) syntax file was already loaded if exists("b:current_syntax") finish endif " Language keywords syn keyword lslKeyword state default jump return syn keyword lslType key list rotation float integer string vector syn keyword lslRepeat for do while syn keyword lslConditional if else " All events (as of August 4, 2008) syn keyword lslEvent attach at_rot_target at_target syn keyword lslEvent changed collision collision_end collision_start control syn keyword lslEvent dataserver syn keyword lslEvent email syn keyword lslEvent http_response syn keyword lslEvent land_collision land_collision_end land_collision_start link_message listen syn keyword lslEvent money moving_end moving_start syn keyword lslEvent not_at_rot_target not_at_target no_sensor syn keyword lslEvent object_rez on_rez syn keyword lslEvent remote_data run_time_permissions syn keyword lslEvent sensor state_entry state_exit syn keyword lslEvent timer touch touch_end touch_start if exists("lsl_constants") " All constants (as of August 4, 2008) syn keyword lslConstant ACTIVE AGENT AGENT_ALWAYS_RUN AGENT_ATTACHMENTS AGENT_AWAY AGENT_BUSY AGENT_CROUCHING syn keyword lslConstant AGENT_FLYING AGENT_IN_AIR AGENT_MOUSELOOK AGENT_ON_OBJECT AGENT_SCRIPTED AGENT_SITTING syn keyword lslConstant AGENT_TYPING AGENT_WALKING ALL_SIDES ANIM_ON ATTACH_BACK ATTACH_BELLY ATTACH_CHEST syn keyword lslConstant ATTACH_CHIN ATTACH_HEAD ATTACH_HUD_BOTTOM ATTACH_HUD_BOTTOM_LEFT ATTACH_HUD_BOTTOM_RIGHT syn keyword lslConstant ATTACH_HUD_CENTER_1 ATTACH_HUD_CENTER_2 ATTACH_HUD_TOP_CENTER ATTACH_HUD_TOP_LEFT syn keyword lslConstant ATTACH_HUD_TOP_RIGHT ATTACH_LEAR ATTACH_LEYE ATTACH_LHAND ATTACH_LHIP ATTACH_LLARM syn keyword lslConstant ATTACH_LLLEG ATTACH_LSHOULDER ATTACH_LUARM ATTACH_LULEG ATTACH_MOUTH ATTACH_NOSE syn keyword lslConstant ATTACH_PELVIS ATTACH_REAR ATTACH_REYE ATTACH_RFOOT ATTACH_RHAND ATTACH_RHIP ATTACH_RLARM syn keyword lslConstant ATTACH_RLLEG ATTACH_RSHOULDER ATTACH_RUARM ATTACH_RULEG CAMERA_ACTIVE CAMERA_BEHINDNESS_ANGLE syn keyword lslConstant CAMERA_BEHINDNESS_LAG CAMERA_DISTANCE CAMERA_FOCUS CAMERA_FOCUS_LAG CAMERA_FOCUS_LOCKED syn keyword lslConstant CAMERA_FOCUS_OFFSET CAMERA_FOCUS_THRESHOLD CAMERA_PITCH CAMERA_POSITION CAMERA_POSITION_LAG syn keyword lslConstant CAMERA_POSITION_LOCKED CAMERA_POSITION_THRESHOLD CHANGED_ALLOWED_DROP CHANGED_COLOR syn keyword lslConstant CHANGED_INVENTORY CHANGED_LINK CHANGED_OWNER CHANGED_REGION CHANGED_SCALE CHANGED_SHAPE syn keyword lslConstant CHANGED_TELEPORT CHANGED_TEXTURE CLICK_ACTION_BUY CLICK_ACTION_NONE CLICK_ACTION_OPEN syn keyword lslConstant CLICK_ACTION_OPEN_MEDIA CLICK_ACTION_PAY CLICK_ACTION_PLAY CLICK_ACTION_SIT syn keyword lslConstant CONTROL_BACK CONTROL_DOWN CONTROL_FWD CONTROL_LBUTTON CONTROL_LEFT CONTROL_ML_LBUTTON syn keyword lslConstant CONTROL_RIGHT CONTROL_ROT_LEFT CONTROL_ROT_RIGHT CONTROL_UP DATA_BORN DATA_NAME syn keyword lslConstant DATA_ONLINE DATA_PAYINFO DATA_SIM_POS DATA_SIM_RATING DATA_SIM_STATUS DEBUG_CHANNEL syn keyword lslConstant DEG_TO_RAD FALSE HTTP_BODY_MAXLENGTH HTTP_BODY_TRUNCATED HTTP_METHOD HTTP_MIMETYPE syn keyword lslConstant HTTP_VERIFY_CERT INVENTORY_ALL INVENTORY_ANIMATION INVENTORY_CLOTHING INVENTORY_GESTURE syn keyword lslConstant INVENTORY_LANDMARK INVENTORY_NONE INVENTORY_NOTECARD INVENTORY_OBJECT INVENTORY_SCRIPT syn keyword lslConstant INVENTORY_SOUND INVENTORY_TEXTURE LAND_LEVEL LAND_LOWER LAND_NOISE LAND_RAISE syn keyword lslConstant LAND_REVERT LAND_SMOOTH LINK_ALL_CHILDREN LINK_ALL_OTHERS LINK_SET LINK_THIS syn keyword lslConstant LIST_STAT_GEOMETRIC_MEAN LIST_STAT_MAX LIST_STAT_MEAN LIST_STAT_MEDIAN LIST_STAT_MIN syn keyword lslConstant LIST_STAT_NUM_COUNT LIST_STAT_RANGE LIST_STAT_STD_DEV LIST_STAT_SUM LIST_STAT_SUM_SQUARES syn keyword lslConstant LOOP MASK_BASE MASK_EVERYONE MASK_GROUP MASK_NEXT MASK_OWNER NULL_KEY OBJECT_CREATOR syn keyword lslConstant OBJECT_GROUP OBJECT_NAME OBJECT_OWNER OBJECT_POS OBJECT_ROT OBJECT_UNKNOWN_DETAIL syn keyword lslConstant OBJECT_VELOCITY PARCEL_DETAILS_AREA PARCEL_DETAILS_DESC PARCEL_DETAILS_GROUP syn keyword lslConstant PARCEL_DETAILS_NAME PARCEL_DETAILS_OWNER PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY syn keyword lslConstant PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS PARCEL_FLAG_ALLOW_CREATE_OBJECTS PARCEL_FLAG_ALLOW_DAMAGE syn keyword lslConstant PARCEL_FLAG_ALLOW_FLY PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY PARCEL_FLAG_ALLOW_GROUP_SCRIPTS syn keyword lslConstant PARCEL_FLAG_ALLOW_LANDMARK PARCEL_FLAG_ALLOW_SCRIPTS PARCEL_FLAG_ALLOW_TERRAFORM syn keyword lslConstant PARCEL_FLAG_LOCAL_SOUND_ONLY PARCEL_FLAG_RESTRICT_PUSHOBJECT PARCEL_FLAG_USE_ACCESS_GROUP syn keyword lslConstant PARCEL_FLAG_USE_ACCESS_LIST PARCEL_FLAG_USE_BAN_LIST PARCEL_FLAG_USE_LAND_PASS_LIST syn keyword lslConstant PARCEL_MEDIA_COMMAND_AGENT PARCEL_MEDIA_COMMAND_AUTO_ALIGN PARCEL_MEDIA_COMMAND_DESC syn keyword lslConstant PARCEL_MEDIA_COMMAND_LOOP PARCEL_MEDIA_COMMAND_LOOP_SET PARCEL_MEDIA_COMMAND_PAUSE syn keyword lslConstant PARCEL_MEDIA_COMMAND_PLAY PARCEL_MEDIA_COMMAND_SIZE PARCEL_MEDIA_COMMAND_STOP syn keyword lslConstant PARCEL_MEDIA_COMMAND_TEXTURE PARCEL_MEDIA_COMMAND_TIME PARCEL_MEDIA_COMMAND_TYPE syn keyword lslConstant PARCEL_MEDIA_COMMAND_UNLOAD PARCEL_MEDIA_COMMAND_URL PASSIVE PAYMENT_INFO_ON_FILE syn keyword lslConstant PAYMENT_INFO_USED PAY_DEFAULT PAY_HIDE syn keyword lslConstant PERMISSION_ATTACH PERMISSION_CHANGE_LINKS PERMISSION_CONTROL_CAMERA PERMISSION_DEBIT syn keyword lslConstant PERMISSION_TAKE_CONTROLS PERMISSION_TRACK_CAMERA PERMISSION_TRIGGER_ANIMATION PERM_ALL syn keyword lslConstant PERM_COPY PERM_MODIFY PERM_MOVE PERM_TRANSFER PI PING_PONG PI_BY_TWO PRIM_BUMP_BARK syn keyword lslConstant PRIM_BUMP_BLOBS PRIM_BUMP_BRICKS PRIM_BUMP_BRIGHT PRIM_BUMP_CHECKER PRIM_BUMP_CONCRETE syn keyword lslConstant PRIM_BUMP_DARK PRIM_BUMP_DISKS PRIM_BUMP_GRAVEL PRIM_BUMP_LARGETILE PRIM_BUMP_NONE syn keyword lslConstant PRIM_BUMP_SHINY PRIM_BUMP_SIDING PRIM_BUMP_STONE PRIM_BUMP_STUCCO PRIM_BUMP_SUCTION syn keyword lslConstant PRIM_BUMP_TILE PRIM_BUMP_WEAVE PRIM_BUMP_WOOD PRIM_COLOR PRIM_FLEXIBLE PRIM_FULLBRIGHT syn keyword lslConstant PRIM_GLOW PRIM_HOLE_CIRCLE PRIM_HOLE_DEFAULT PRIM_HOLE_SQUARE PRIM_HOLE_TRIANGLE syn keyword lslConstant PRIM_MATERIAL PRIM_MATERIAL_FLESH PRIM_MATERIAL_GLASS PRIM_MATERIAL_METAL syn keyword lslConstant PRIM_MATERIAL_PLASTIC PRIM_MATERIAL_RUBBER PRIM_MATERIAL_STONE PRIM_MATERIAL_WOOD syn keyword lslConstant PRIM_PHANTOM PRIM_PHYSICS PRIM_POINT_LIGHT PRIM_POSITION PRIM_ROTATION PRIM_SCULPT_TYPE_CYLINDER syn keyword lslConstant PRIM_SCULPT_TYPE_PLANE PRIM_SCULPT_TYPE_SPHERE PRIM_SCULPT_TYPE_TORUS PRIM_SHINY_HIGH syn keyword lslConstant PRIM_SHINY_LOW PRIM_SHINY_MEDIUM PRIM_SHINY_NONE PRIM_SIZE PRIM_TEMP_ON_REZ PRIM_TEXGEN syn keyword lslConstant PRIM_TEXGEN_DEFAULT PRIM_TEXTURE PRIM_TYPE PRIM_TYPE_BOX PRIM_TYPE_CYLINDER syn keyword lslConstant PRIM_TYPE_PRISM PRIM_TYPE_RING PRIM_TYPE_SCULPT PRIM_TYPE_SPHERE PRIM_TYPE_TUBE syn keyword lslConstant PUBLIC_CHANNEL RAD_TO_DEG REGION_FLAG_ALLOW_DAMAGE REGION_FLAG_ALLOW_DIRECT_TELEPORT syn keyword lslConstant REGION_FLAG_BLOCK_FLY REGION_FLAG_BLOCK_TERRAFORM REGION_FLAG_DISABLE_PHYSICS syn keyword lslConstant REGION_FLAG_FIXED_SUN REGION_FLAG_RESTRICT_PUSHOBJECT REGION_FLAG_SANDBOX syn keyword lslConstant REMOTE_DATA_CHANNEL REMOTE_DATA_REPLY REMOTE_DATA_REQUEST REVERSE ROTATE SCALE SCRIPTED syn keyword lslConstant SMOOTH SQRT2 STATUS_BLOCK_GRAB STATUS_CAST_SHADOWS STATUS_DIE_AT_EDGE STATUS_PHANTOM syn keyword lslConstant STATUS_PHYSICS STATUS_RETURN_AT_EDGE STATUS_ROTATE_X STATUS_ROTATE_Y STATUS_ROTATE_Z syn keyword lslConstant STRING_TRIM STRING_TRIM_HEAD STRING_TRIM_TAIL TEXTURE_DEFAULT TEXTURE_BLANK syn keyword lslConstant TEXTURE_MEDIA TEXTURE_PLYWOOD TEXTURE_TRANSPARENT TRUE TWO_PI TYPE_FLOAT TYPE_INTEGER syn keyword lslConstant TYPE_INVALID TYPE_KEY TYPE_ROTATION TYPE_VECTOR VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY syn keyword lslConstant VEHICLE_ANGULAR_DEFLECTION_TIMESCALE VEHICLE_ANGULAR_FRICTION_TIMESCALE syn keyword lslConstant VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE VEHICLE_ANGULAR_MOTOR_DIRECTION syn keyword lslConstant VEHICLE_ANGULAR_MOTOR_TIMESCALE VEHICLE_BANKING_MIX VEHICLE_BANKING_TIMESCALE syn keyword lslConstant VEHICLE_BUOYANCY VEHICLE_FLAG_CAMERA_DECOUPLED VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT syn keyword lslConstant VEHICLE_FLAG_HOVER_TERRAIN_ONLY VEHICLE_FLAG_HOVER_UP_ONLY VEHICLE_FLAG_HOVER_WATER_ONLY syn keyword lslConstant VEHICLE_FLAG_LIMIT_MOTOR_UP VEHICLE_FLAG_LIMIT_ROLL_ONLY VEHICLE_FLAG_MOUSELOOK_BANK syn keyword lslConstant VEHICLE_FLAG_MOUSELOOK_STEER VEHICLE_FLAG_NO_DEFLECTION_UP VEHICLE_HOVER_EFFICIENCY syn keyword lslConstant VEHICLE_HOVER_HEIGHT VEHICLE_HOVER_TERRAIN_ONLY VEHICLE_HOVER_TIMESCALE syn keyword lslConstant VEHICLE_HOVER_WATER_ONLY VEHICLE_LINEAR_DEFLECTION_EFFICIENCY syn keyword lslConstant VEHICLE_LINEAR_DEFLECTION_TIMESCALE VEHICLE_LINEAR_FRICTION_TIMESCALE syn keyword lslConstant VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE VEHICLE_LINEAR_MOTOR_DIRECTION syn keyword lslConstant VEHICLE_LINEAR_MOTOR_OFFSET VEHICLE_LINEAR_MOTOR_TIMESCALE VEHICLE_REFERENCE_FRAME syn keyword lslConstant VEHICLE_TYPE_AIRPLANE VEHICLE_TYPE_BALLOON VEHICLE_TYPE_BOAT VEHICLE_TYPE_CAR syn keyword lslConstant VEHICLE_TYPE_NONE VEHICLE_TYPE_SLED VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY syn keyword lslConstant VEHICLE_VERTICAL_ATTRACTION_TIMESCALE ZERO_ROTATION ZERO_VECTOR endif " Numerical constants syn match lslInteger display /\<\d\+\>/ syn match lslInteger display /\<0x\x\+\>/ syn match lslFloat display /\<\d\+.\d\+\>/ " String literals syn region lslString start=/"/ end=/"/ contains=lslStringEscape syn match lslStringEscape contained transparent /\\"/ syn match lslStringEscape contained /\\t/ syn match lslStringEscape contained /\\n/ syn match lslStringEscape contained /\\\\/ " Comments with keywords syn region lslComment start=/\/\// end=/$/ contains=lslCommentTags syn keyword lslCommentTags contained TODO FIXME XXX hi def link lslConditional lslKeyword hi def link lslRepeat lslKeyword hi def link lslKeyword Keyword hi def link lslType Type hi def link lslInteger Number hi def link lslFloat Float hi def link lslString String hi def link lslStringEscape SpecialChar hi def link lslConstant Constant hi def link lslEvent Function hi def link lslComment Comment hi def link lslCommentTags Todo