Files
godot-vscode-plugin/configrations/GDScript.tmLanguage.json
Geequlim ec07cb51e8 builtin class/constants/symbols highlight support
multiline string and StringName highlight support
2016-12-28 16:16:26 +08:00

213 lines
18 KiB
JSON

{
"fileTypes": [
"gd"
],
"scopeName": "source.gdscript",
"name": "Godot Engine GDScript",
"patterns": [
{
"include": "#strings"
},
{
"include": "#numbers"
},
{
"include": "#self"
},
{
"match": "(#).*$\\n?",
"name": "punctuation.definition.comment.gdscript"
},
{
"match": "\\b(?i:elif|else|for|if|while|break|continue|pass|and|in|is|not|or|return|onready|setget|breakpoint)\\b",
"name": "keyword.control.gdscript"
},
{
"match": "\\b(&&|!|\\|\\|)\\b",
"name": "keyword.operator.logical.gdscript"
},
{
"match": "<=|>=|==|<|>|!=",
"name": "keyword.operator.comparison.gdscript"
},
{
"match": "\\+=|-=|\\*=|/=|%=|&=|\\|=|\\*|/|%|\\+|-|<<|>>|&|\\||\\^|~",
"name": "keyword.operator.arithmetic.gdscript"
},
{
"match": "=",
"name": "keyword.operator.assignment.gdscript"
},
{
"match": "\\b(?i:class|extends|assert|signal)\\b",
"name": "keyword.other.gdscript"
},
{
"match": "(?<=extends)\\s+[a-zA-Z_][a-zA-Z_0-9]*(\\.([a-zA-Z_][a-zA-Z_0-9]*))?",
"name": "entity.other.inherited-class.gdscript"
},
{
"match": "\\b(?i:true|false|null)\\b",
"name": "constant.language.gdscript"
},
{
"match": "\\b(?i:export|tool|yield)\\b",
"name": "storage.modifier.static.gdscript"
},
{
"match": "\\bvar\\b",
"name": "storage.type.var.gdscript"
},
{
"match": "(?<![^.]\\.|:)\\b(sin|cos|tan|sinh|cosh|tanh|asin|acos|atan|atan2|sqrt|fmod|fposmod|floor|ceil|round|abs|sign|pow|log|exp|is_nan|is_inf|ease|decimals|stepify|lerp|dectime|randomize|randi|randf|rand_range|seed|rand_seed|deg2rad|rad2deg|linear2db|db2linear|max|min|clamp|nearest_po2|weakref|funcref|convert|typeof|type_exists|char|str|print|printt|prints|printerr|printraw|var2str|str2var|var2bytes|bytes2var|range|load|inst2dict|dict2inst|hash|Color8|print_stack|instance_from_id|preload|yield|assert)\\b(?=(\\()([^)]*)(\\)))",
"name": "support.function.gdscript"
},
{
"match": "(?<![^.]\\.|:)\\b(PI|MARGIN_LEFT|MARGIN_TOP|MARGIN_RIGHT|MARGIN_BOTTOM|VERTICAL|HORIZONTAL|HALIGN_LEFT|HALIGN_CENTER|HALIGN_RIGHT|VALIGN_TOP|VALIGN_CENTER|VALIGN_BOTTOM|SPKEY|KEY_ESCAPE|KEY_TAB|KEY_BACKTAB|KEY_BACKSPACE|KEY_RETURN|KEY_ENTER|KEY_INSERT|KEY_DELETE|KEY_PAUSE|KEY_PRINT|KEY_SYSREQ|KEY_CLEAR|KEY_HOME|KEY_END|KEY_LEFT|KEY_UP|KEY_RIGHT|KEY_DOWN|KEY_PAGEUP|KEY_PAGEDOWN|KEY_SHIFT|KEY_CONTROL|KEY_META|KEY_ALT|KEY_CAPSLOCK|KEY_NUMLOCK|KEY_SCROLLLOCK|KEY_F1|KEY_F2|KEY_F3|KEY_F4|KEY_F5|KEY_F6|KEY_F7|KEY_F8|KEY_F9|KEY_F10|KEY_F11|KEY_F12|KEY_F13|KEY_F14|KEY_F15|KEY_F16|KEY_KP_ENTER|KEY_KP_MULTIPLY|KEY_KP_DIVIDE|KEY_KP_SUBTRACT|KEY_KP_PERIOD|KEY_KP_ADD|KEY_KP_0|KEY_KP_1|KEY_KP_2|KEY_KP_3|KEY_KP_4|KEY_KP_5|KEY_KP_6|KEY_KP_7|KEY_KP_8|KEY_KP_9|KEY_SUPER_L|KEY_SUPER_R|KEY_MENU|KEY_HYPER_L|KEY_HYPER_R|KEY_HELP|KEY_DIRECTION_L|KEY_DIRECTION_R|KEY_BACK|KEY_FORWARD|KEY_STOP|KEY_REFRESH|KEY_VOLUMEDOWN|KEY_VOLUMEMUTE|KEY_VOLUMEUP|KEY_BASSBOOST|KEY_BASSUP|KEY_BASSDOWN|KEY_TREBLEUP|KEY_TREBLEDOWN|KEY_MEDIAPLAY|KEY_MEDIASTOP|KEY_MEDIAPREVIOUS|KEY_MEDIANEXT|KEY_MEDIARECORD|KEY_HOMEPAGE|KEY_FAVORITES|KEY_SEARCH|KEY_STANDBY|KEY_OPENURL|KEY_LAUNCHMAIL|KEY_LAUNCHMEDIA|KEY_LAUNCH0|KEY_LAUNCH1|KEY_LAUNCH2|KEY_LAUNCH3|KEY_LAUNCH4|KEY_LAUNCH5|KEY_LAUNCH6|KEY_LAUNCH7|KEY_LAUNCH8|KEY_LAUNCH9|KEY_LAUNCHA|KEY_LAUNCHB|KEY_LAUNCHC|KEY_LAUNCHD|KEY_LAUNCHE|KEY_LAUNCHF|KEY_UNKNOWN|KEY_SPACE|KEY_EXCLAM|KEY_QUOTEDBL|KEY_NUMBERSIGN|KEY_DOLLAR|KEY_PERCENT|KEY_AMPERSAND|KEY_APOSTROPHE|KEY_PARENLEFT|KEY_PARENRIGHT|KEY_ASTERISK|KEY_PLUS|KEY_COMMA|KEY_MINUS|KEY_PERIOD|KEY_SLASH|KEY_0|KEY_1|KEY_2|KEY_3|KEY_4|KEY_5|KEY_6|KEY_7|KEY_8|KEY_9|KEY_COLON|KEY_SEMICOLON|KEY_LESS|KEY_EQUAL|KEY_GREATER|KEY_QUESTION|KEY_AT|KEY_A|KEY_B|KEY_C|KEY_D|KEY_E|KEY_F|KEY_G|KEY_H|KEY_I|KEY_J|KEY_K|KEY_L|KEY_M|KEY_N|KEY_O|KEY_P|KEY_Q|KEY_R|KEY_S|KEY_T|KEY_U|KEY_V|KEY_W|KEY_X|KEY_Y|KEY_Z|KEY_BRACKETLEFT|KEY_BACKSLASH|KEY_BRACKETRIGHT|KEY_ASCIICIRCUM|KEY_UNDERSCORE|KEY_QUOTELEFT|KEY_BRACELEFT|KEY_BAR|KEY_BRACERIGHT|KEY_ASCIITILDE|KEY_NOBREAKSPACE|KEY_EXCLAMDOWN|KEY_CENT|KEY_STERLING|KEY_CURRENCY|KEY_YEN|KEY_BROKENBAR|KEY_SECTION|KEY_DIAERESIS|KEY_COPYRIGHT|KEY_ORDFEMININE|KEY_GUILLEMOTLEFT|KEY_NOTSIGN|KEY_HYPHEN|KEY_REGISTERED|KEY_MACRON|KEY_DEGREE|KEY_PLUSMINUS|KEY_TWOSUPERIOR|KEY_THREESUPERIOR|KEY_ACUTE|KEY_MU|KEY_PARAGRAPH|KEY_PERIODCENTERED|KEY_CEDILLA|KEY_ONESUPERIOR|KEY_MASCULINE|KEY_GUILLEMOTRIGHT|KEY_ONEQUARTER|KEY_ONEHALF|KEY_THREEQUARTERS|KEY_QUESTIONDOWN|KEY_AGRAVE|KEY_AACUTE|KEY_ACIRCUMFLEX|KEY_ATILDE|KEY_ADIAERESIS|KEY_ARING|KEY_AE|KEY_CCEDILLA|KEY_EGRAVE|KEY_EACUTE|KEY_ECIRCUMFLEX|KEY_EDIAERESIS|KEY_IGRAVE|KEY_IACUTE|KEY_ICIRCUMFLEX|KEY_IDIAERESIS|KEY_ETH|KEY_NTILDE|KEY_OGRAVE|KEY_OACUTE|KEY_OCIRCUMFLEX|KEY_OTILDE|KEY_ODIAERESIS|KEY_MULTIPLY|KEY_OOBLIQUE|KEY_UGRAVE|KEY_UACUTE|KEY_UCIRCUMFLEX|KEY_UDIAERESIS|KEY_YACUTE|KEY_THORN|KEY_SSHARP|KEY_DIVISION|KEY_YDIAERESIS|KEY_CODE_MASK|KEY_MODIFIER_MASK|KEY_MASK_SHIFT|KEY_MASK_ALT|KEY_MASK_META|KEY_MASK_CTRL|KEY_MASK_CMD|KEY_MASK_KPAD|KEY_MASK_GROUP_SWITCH|BUTTON_LEFT|BUTTON_RIGHT|BUTTON_MIDDLE|BUTTON_WHEEL_UP|BUTTON_WHEEL_DOWN|BUTTON_WHEEL_LEFT|BUTTON_WHEEL_RIGHT|BUTTON_MASK_LEFT|BUTTON_MASK_RIGHT|BUTTON_MASK_MIDDLE|JOY_BUTTON_0|JOY_BUTTON_1|JOY_BUTTON_2|JOY_BUTTON_3|JOY_BUTTON_4|JOY_BUTTON_5|JOY_BUTTON_6|JOY_BUTTON_7|JOY_BUTTON_8|JOY_BUTTON_9|JOY_BUTTON_10|JOY_BUTTON_11|JOY_BUTTON_12|JOY_BUTTON_13|JOY_BUTTON_14|JOY_BUTTON_15|JOY_BUTTON_MAX|JOY_SNES_A|JOY_SNES_B|JOY_SNES_X|JOY_SNES_Y|JOY_SONY_CIRCLE|JOY_SONY_X|JOY_SONY_SQUARE|JOY_SONY_TRIANGLE|JOY_SEGA_B|JOY_SEGA_A|JOY_SEGA_X|JOY_SEGA_Y|JOY_XBOX_B|JOY_XBOX_A|JOY_XBOX_X|JOY_XBOX_Y|JOY_DS_A|JOY_DS_B|JOY_DS_X|JOY_DS_Y|JOY_SELECT|JOY_START|JOY_DPAD_UP|JOY_DPAD_DOWN|JOY_DPAD_LEFT|JOY_DPAD_RIGHT|JOY_L|JOY_L2|JOY_L3|JOY_R|JOY_R2|JOY_R3|JOY_AXIS_0|JOY_AXIS_1|JOY_AXIS_2|JOY_AXIS_3|JOY_AXIS_4|JOY_AXIS_5|JOY_AXIS_6|JOY_AXIS_7|JOY_AXIS_MAX|JOY_ANALOG_0_X|JOY_ANALOG_0_Y|JOY_ANALOG_1_X|JOY_ANALOG_1_Y|JOY_ANALOG_2_X|JOY_ANALOG_2_Y|JOY_ANALOG_L2|JOY_ANALOG_R2|OK|FAILED|ERR_UNAVAILABLE|ERR_UNCONFIGURED|ERR_UNAUTHORIZED|ERR_PARAMETER_RANGE_ERROR|ERR_OUT_OF_MEMORY|ERR_FILE_NOT_FOUND|ERR_FILE_BAD_DRIVE|ERR_FILE_BAD_PATH|ERR_FILE_NO_PERMISSION|ERR_FILE_ALREADY_IN_USE|ERR_FILE_CANT_OPEN|ERR_FILE_CANT_WRITE|ERR_FILE_CANT_READ|ERR_FILE_UNRECOGNIZED|ERR_FILE_CORRUPT|ERR_FILE_MISSING_DEPENDENCIES|ERR_FILE_EOF|ERR_CANT_OPEN|ERR_CANT_CREATE|ERR_PARSE_ERROR|ERROR_QUERY_FAILED|ERR_ALREADY_IN_USE|ERR_LOCKED|ERR_TIMEOUT|ERR_CANT_AQUIRE_RESOURCE|ERR_INVALID_DATA|ERR_INVALID_PARAMETER|ERR_ALREADY_EXISTS|ERR_DOES_NOT_EXIST|ERR_DATABASE_CANT_READ|ERR_DATABASE_CANT_WRITE|ERR_COMPILATION_FAILED|ERR_METHOD_NOT_FOUND|ERR_LINK_FAILED|ERR_SCRIPT_FAILED|ERR_CYCLIC_LINK|ERR_BUSY|ERR_HELP|ERR_BUG|ERR_WTF|PROPERTY_HINT_NONE|PROPERTY_HINT_RANGE|PROPERTY_HINT_EXP_RANGE|PROPERTY_HINT_ENUM|PROPERTY_HINT_EXP_EASING|PROPERTY_HINT_LENGTH|PROPERTY_HINT_KEY_ACCEL|PROPERTY_HINT_FLAGS|PROPERTY_HINT_ALL_FLAGS|PROPERTY_HINT_FILE|PROPERTY_HINT_DIR|PROPERTY_HINT_GLOBAL_FILE|PROPERTY_HINT_GLOBAL_DIR|PROPERTY_HINT_RESOURCE_TYPE|PROPERTY_HINT_MULTILINE_TEXT|PROPERTY_HINT_COLOR_NO_ALPHA|PROPERTY_HINT_IMAGE_COMPRESS_LOSSY|PROPERTY_HINT_IMAGE_COMPRESS_LOSSLESS|PROPERTY_USAGE_STORAGE|PROPERTY_USAGE_EDITOR|PROPERTY_USAGE_NETWORK|PROPERTY_USAGE_EDITOR_HELPER|PROPERTY_USAGE_CHECKABLE|PROPERTY_USAGE_CHECKED|PROPERTY_USAGE_INTERNATIONALIZED|PROPERTY_USAGE_BUNDLE|PROPERTY_USAGE_CATEGORY|PROPERTY_USAGE_STORE_IF_NONZERO|PROPERTY_USAGE_STORE_IF_NONONE|PROPERTY_USAGE_NO_INSTANCE_STATE|PROPERTY_USAGE_RESTART_IF_CHANGED|PROPERTY_USAGE_SCRIPT_VARIABLE|PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_DEFAULT_INTL|PROPERTY_USAGE_NOEDITOR|METHOD_FLAG_NORMAL|METHOD_FLAG_EDITOR|METHOD_FLAG_NOSCRIPT|METHOD_FLAG_CONST|METHOD_FLAG_REVERSE|METHOD_FLAG_VIRTUAL|METHOD_FLAG_FROM_SCRIPT|METHOD_FLAGS_DEFAULT|TYPE_NIL|TYPE_BOOL|TYPE_INT|TYPE_REAL|TYPE_STRING|TYPE_VECTOR2|TYPE_RECT2|TYPE_VECTOR3|TYPE_MATRIX32|TYPE_PLANE|TYPE_QUAT|TYPE_AABB|TYPE_MATRIX3|TYPE_TRANSFORM|TYPE_COLOR|TYPE_IMAGE|TYPE_NODE_PATH|TYPE_RID|TYPE_OBJECT|TYPE_INPUT_EVENT|TYPE_DICTIONARY|TYPE_ARRAY|TYPE_RAW_ARRAY|TYPE_INT_ARRAY|TYPE_REAL_ARRAY|TYPE_STRING_ARRAY|TYPE_VECTOR2_ARRAY|TYPE_VECTOR3_ARRAY|TYPE_COLOR_ARRAY|TYPE_MAX)\\b",
"name": "support.constant.library.gdscript"
},
{
"match": "(?<![^.]\\.|:)\\b(EditorFileDialog|MaterialShader|RenderTargetTexture|PacketPeerStream|Theme|HSlider|AudioStream|RegExMatch|Object|Joint|VisualScriptLocalVar|VisualScriptDeconstruct|RegEx|OptionButton|RayCast|PacketPeerUDP|Matrix32|@GDScript|VisualScriptSceneNode|InputEventKey|VisualScriptEmitSignal|ConeTwistJoint|RayShape2D|PHashTranslation|SpatialGizmo|Label|RemoteTransform2D|Camera|VehicleBody|EventStream|CapsuleShape2D|WorldEnvironment|VisualScriptEngineSingleton|Physics2DServer|CubeMap|LineShape2D|SphereShape|Viewport|TriangleMesh|VisualScript|DynamicFontData|Physics2DDirectSpaceStateSW|Light|ParticleAttractor2D|SpinBox|PanelContainer|InputEvent|Node2D|VisualScriptBasicTypeConstant|VSeparator|Vector3Array|Tabs|Range|PlaneShape|TextureFrame|DynamicFont|CollisionShape|BitmapFont|CollisionObject2D|SpriteFrames|LinkButton|ButtonArray|Input|StringArray|SpatialSound2DServer|Node|PhysicsDirectSpaceStateSW|AtlasTexture|NetworkedMultiplayerENet|EventStreamChibi|ShaderMaterial|VisibilityNotifier2D|PhysicsShapeQueryParameters|Geometry|TileMap|ParallaxBackground|RigidBody2D|PhysicsDirectBodyStateSW|Navigation2D|RID|VBoxContainer|VisualScriptVariableSet|PhysicsShapeQueryResult|AnimatedSprite3D|InputEventScreenTouch|TreeItem|Curve2D|SpriteBase3D|CollisionPolygon2D|GridContainer|TouchScreenButton|Generic6DOFJoint|Particles2D|VisualScriptConstant|Variant|Shape|AnimatedSprite|VisualScriptReturn|PinJoint2D|Physics2DTestMotionResult|RayCast2D|Light2D|VisualScriptSceneTree|ScrollContainer|Shape2D|Shader|VisualScriptSelf|FuncRef|ColorRamp|PhysicsDirectSpaceState|File|CanvasLayer|VisualScriptIndexSet|VisualScriptResourcePath|TCP_Server|SoundPlayer2D|StyleBoxImageMask|VisualScriptPropertyGet|InputDefault|VisualScriptVariableGet|EventPlayer|Physics2DShapeQueryResult|HSeparator|VisualScriptIndexGet|ScrollBar|World|CanvasItemShader|VisualScriptInputAction|StyleBox|ConfigFile|SoundRoomParams|StreamPeer|VideoPlayer|HTTPClient|Control|Environment|Reference|AudioStreamPlayback|VisualScriptFunctionState|Area2D|Panel|SpotLight|Physics2DShapeQueryParameters|PhysicsBody|VisualScriptSequence|Vector2Array|VSlider|VisualInstance|GDScript|Spatial|AnimationPlayer|Physics2DDirectSpaceState|Material|MeshDataTool|SpatialStreamPlayer|VehicleWheel|SurfaceTool|Physics2DDirectBodyStateSW|MainLoop|Path2D|VisualScriptTypeCast|ColorPickerButton|GDFunctionState|HButtonArray|EditorFileSystem|VideoStream|SpatialSound2DServerSW|ProgressBar|KinematicBody|EditorResourcePreviewGenerator|SpatialSamplePlayer|TextureButton|RoomBounds|PackedScene|EditorPlugin|CircleShape2D|Texture|ResourcePreloader|CapsuleShape|OccluderPolygon2D|FileDialog|LineEdit|ColorFrame|Dictionary|HScrollBar|CenterContainer|EditorExportPlugin|Mesh|IP_Unix|VisualScriptGlobalConstant|VisualScriptFunctionCall|InputMap|AnimationTreePlayer|VisualScriptPreload|Position3D|CheckButton|VideoStreamTheora|ButtonGroup|StreamPeerBuffer|VisualScriptYield|EditorScript|StaticBody2D|TileSet|ShortCut|VisualScriptSwitch|@Global Scope|BitMap|Particles|Animation|Mutex|ProximityGroup|Sprite|Nil|VisibilityEnabler2D|UndoRedo|BakedLightInstance|VisualScriptBuiltinFunc|AudioStreamMPC|RemoteTransform|AABB|PhysicsServer|StaticBody|SpatialPlayer|BoneAttachment|PacketPeer|Matrix3|Sample|VisualScriptClassConstant|BoxShape|ConfirmationDialog|Array|@VisualScript|ReferenceFrame|SpatialSoundServerSW|CollisionShape2D|NavigationPolygonInstance|ConcavePolygonShape2D|PathFollow2D|TextureProgress|VisualScriptCondition|PolygonPathFinder|Semaphore|VisualScriptOperator|VisualScriptIterator|MeshInstance|ResourceSaver|VideoStreamWebm|ParallaxLayer|VisualScriptCustomNode|MarginContainer|SamplePlayer|SliderJoint|Translation|InstancePlaceholder|HTTPRequest|HBoxContainer|MenuButton|BakedLight|PopupPanel|VisualScriptSubCall|PathFollow|NavigationMeshInstance|Script|Patch9Frame|StyleBoxFlat|InputEventMouseButton|TextEdit|Performance|XMLParser|BaseButton|Popup|Quat|Listener|EditorImportPlugin|Joint2D|Quad|VisualScriptYieldSignal|ConvexPolygonShape2D|Tree|PathRemap|Separator|Directory|ShaderGraph|Marshalls|Polygon2D|PopupDialog|AStar|ResourceLoader|Position2D|MaterialShaderGraph|CanvasItemShaderGraph|OmniLight|Container|VisualScriptInputFilter|StreamPlayer|ToolButton|VisibilityNotifier|DampedSpringJoint2D|KinematicBody2D|GraphNode|AudioServer|ColorArray|VisualScriptLocalVarSet|SpatialSoundServer|SceneState|InputEventJoystickButton|LightOccluder2D|GDNativeClass|Path|StyleBoxTexture|Navigation|RigidBody|PCKPacker|FixedMaterial|VisualScriptWhile|TestCube|RealArray|Vector2|Vector3|InterpolatedCamera|StreamPeerSSL|WeakRef|PhysicsServerSW|VisualScriptConstructor|CollisionPolygon|Plane|VisualServer|Physics2DServerSW|ViewportSprite|VisualScriptMathConstant|Resource|Room|IP|SampleLibrary|VisualScriptComment|BakedLightSampler|VisualScriptExpression|VisualScriptNode|StreamPeerTCP|SceneTreeTimer|RectangleShape2D|VisualScriptPropertySet|NetworkedMultiplayerPeer|EditorResourcePreview|Thread|MultiMeshInstance|HSplitContainer|Transform|World2D|GridMap|SegmentShape2D|AcceptDialog|Skeleton|StyleBoxEmpty|Font|OS|EditorScenePostImport|SamplePlayer2D|CheckBox|ImageTexture|VisualScriptFunction|MeshLibrary|PopupMenu|VisibilityEnabler|CanvasItem|InputEventScreenDrag|VButtonArray|TabContainer|String|AudioStreamOGGVorbis|AudioStreamOpus|HingeJoint|BackBufferCopy|Curve3D|Area|Button|EditorSpatialGizmo|PinJoint|NavigationPolygon|Timer|InputEventMouseMotion|ResourceInteractiveLoader|EditorSettings|VScrollBar|Image|ResourceImportMetadata|Globals|LargeTexture|Sprite3D|ColorPicker|float|Tween|GrooveJoint2D|RichTextLabel|Rect2|RayShape|RawArray|SplitContainer|VSplitContainer|PhysicsDirectBodyState|Portal|MultiMesh|ConvexPolygonShape|CanvasItemMaterial|PackedDataContainer|AudioServerSW|ConcavePolygonShape|PackedDataContainerRef|CanvasModulate|InputEventJoystickMotion|YSort|WindowDialog|SceneTree|CollisionObject|NodePath|int|ImmediateGeometry|PhysicsBody2D|NavigationMesh|BoxContainer|Slider|bool|GraphEdit|EditorSelection|Physics2DDirectBodyState|GeometryInstance|ItemList|IntArray|DirectionalLight|Color|Camera2D|TranslationServer|InputEventAction|EditorFileSystemDirectory)\\b",
"name": "support.class.library.gdscript"
},
{
"match": "(?<![^.]\\.|:)\\b(Performance|Globals|IP|Geometry|ResourceLoader|ResourceSaver|PathRemap|OS|Marshalls|TranslationServer|TS|Input|InputMap|VisualServer|VS|AudioServer|AS|PhysicsServer|PS|Physics2DServer|PS2D|SpatialSoundServer|SS|SpatialSound2DServer|SS2D)\\b",
"name": "support.constant.library.gdscript"
},
{
"match": "(?<![^.]\\.|:)\\b(print|set_\\w+|get_\\w+)\\b(?=(\\()([^)]*)(\\)))",
"name": "support.function.library.gdscript"
},
{
"match": "\\b([A-Za-z_]\\w*)\\b(?=\\s*(?:[(]))",
"name": "support.function.any-method.gdscript"
},
{
"match": "(?<=[^.]\\.)\\b([A-Za-z_]\\w*)\\b(?![(])",
"name": "variable.other.property.gdscript"
},
{
"captures": {
"1": {
"name": "entity.name.type.class.gdscript"
},
"2": {
"name": "class.other.gdscript"
}
},
"match": "(?<=^class)\\s+([a-zA-Z_]\\w*)\\s*(?=:)"
},
{
"captures": {
"1": {
"name": "storage.type.const.gdscript"
},
"2": {
"name": "constant.other.gdscript"
}
},
"match": "\\b(?i:(const))\\s+([a-zA-Z_][a-zA-Z_0-9]*)"
},
{
"match": "\\b([A-Z_0-9]+)\\b",
"name": "constant.other.gdscript"
},
{
"captures": {
"1": {
"name": "entity.name.type.instance.gdscript"
},
"2": {
"name": "keyword.operator.new.gdscript"
}
},
"match": "\\s*\\b(\\w+)\\.(new)\\b"
},
{
"begin": "^\\s*(static)?\\s*(func)\\s+([a-zA-Z_]\\w*)s*(\\()",
"beginCaptures": {
"1": {
"name": "storage.modifier.static.gdscript"
},
"2": {
"name": "storage.type.function.gdscript"
},
"3": {
"name": "entity.name.function.gdscript"
},
"4": {
"name": "punctuation.definition.parameters.begin.bracket.round.gdscript"
}
},
"end": "(\\))\\s*:",
"endCaptures": {
"1": {
"name": "punctuation.definition.parameters.end.bracket.round.gdscript"
}
},
"patterns": [
{
"match": "[a-zA-Z_][a-zA-Z_0-9]*",
"name": "variable.parameter.function.gdscript"
},
{
"match": ",",
"name": "punctuation.definition.parameters.comma.gdscript"
},
{
"match": "\\s*",
"name": "punctuation.definition.parameters.space.gdscript"
}
]
}
],
"repository": {
"self": {
"match": "\\bself\\b",
"name": "variable.language.gdscript"
},
"strings": {
"patterns": [
{
"begin": "\"",
"end": "(?<!\\\\)\"",
"name": "string.quoted.double.gdscript"
},
{
"begin": "'",
"end": "(?<!\\\\)'",
"name": "string.quoted.single.gdscript"
},
{
"begin": "@\"",
"end": "(?<!\\\\)\"",
"name": "string.quoted.double.gdscript"
}
]
},
"numbers": {
"patterns": [
{
"match": "\\b(?i:0x\\h*)\\b",
"name": "constant.numeric.integer.hexadecimal.gdscript"
},
{
"match": "\\b(?i:(\\d+\\.\\d*(e[\\-\\+]?\\d+)?))\\b",
"name": "constant.numeric.float.gdscript"
},
{
"match": "\\b(?i:(\\.\\d+(e[\\-\\+]?\\d+)?))\\b",
"name": "constant.numeric.float.gdscript"
},
{
"match": "\\b(?i:(\\d+e[\\-\\+]?\\d+))\\b",
"name": "constant.numeric.float.gdscript"
},
{
"match": "\\b\\d+\\b",
"name": "constant.numeric.integer.gdscript"
}
]
}
}
}