Skip to content

Commit 708c7af

Browse files
authored
feat: Add GDScript support (#210)
1 parent 5c208f7 commit 708c7af

File tree

4 files changed

+351
-0
lines changed

4 files changed

+351
-0
lines changed

.gitmodules

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -316,3 +316,9 @@
316316
branch = master
317317
update = none
318318
ignore = dirty
319+
[submodule "repos/gdscript"]
320+
path = repos/gdscript
321+
url = https://github.com/PrestonKnopp/tree-sitter-gdscript
322+
branch = master
323+
update = none
324+
ignore = dirty

queries/gdscript/highlights.scm

Lines changed: 343 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,343 @@
1+
;; Basic
2+
(ERROR) @error
3+
4+
(identifier) @variable
5+
(name) @variable
6+
(type) @type
7+
(comment) @comment @spell
8+
(string_name) @string
9+
(string) @string
10+
(float) @float
11+
(integer) @number
12+
(null) @constant
13+
(setter) @function
14+
(getter) @function
15+
(set_body "set" @keyword.function)
16+
(get_body "get" @keyword.function)
17+
(static_keyword) @type.qualifier
18+
(tool_statement) @keyword
19+
(breakpoint_statement) @debug
20+
(inferred_type) @operator
21+
[(true) (false)] @boolean
22+
23+
[
24+
(get_node)
25+
(node_path)
26+
] @text.uri
27+
28+
(class_name_statement
29+
(name) @type) @keyword
30+
31+
(const_statement
32+
"const" @type.qualifier
33+
(name) @constant)
34+
35+
(expression_statement (string) @comment @spell)
36+
37+
;; Identifier naming conventions
38+
((identifier) @type
39+
(#lua-match? @type "^[A-Z]"))
40+
((identifier) @constant
41+
(#lua-match? @constant "^[A-Z][A-Z_0-9]*$"))
42+
43+
;; Functions
44+
(constructor_definition) @constructor
45+
46+
(function_definition
47+
(name) @function (parameters
48+
(identifier) @parameter)*)
49+
50+
(typed_parameter (identifier) @parameter)
51+
(default_parameter (identifier) @parameter)
52+
53+
(call (identifier) @function.call)
54+
(call (identifier) @include
55+
(#any-of? @include "preload" "load"))
56+
57+
;; Properties and Methods
58+
59+
; We'll use @property since that's the term Godot uses.
60+
; But, should (source (variable_statement (name))) be @property, too? Since a
61+
; script file is a class in gdscript.
62+
(class_definition
63+
(body (variable_statement (name) @property)))
64+
65+
; Same question but for methods?
66+
(class_definition
67+
(body (function_definition (name) @method)))
68+
69+
(attribute_call (identifier) @method.call)
70+
(attribute (_) (identifier) @property)
71+
72+
;; Enums
73+
74+
(enumerator left: (identifier) @constant)
75+
76+
;; Special Builtins
77+
78+
((identifier) @variable.builtin
79+
(#any-of? @variable.builtin "self" "super"))
80+
81+
(attribute_call (identifier) @keyword.operator
82+
(#eq? @keyword.operator "new"))
83+
84+
;; Match Pattern
85+
86+
(underscore) @constant ; The "_" pattern.
87+
(pattern_open_ending) @operator ; The ".." pattern.
88+
89+
;; Alternations
90+
["(" ")" "[" "]" "{" "}"] @punctuation.bracket
91+
92+
["," "." ":"] @punctuation.delimiter
93+
94+
["if" "elif" "else" "match"] @conditional
95+
96+
["for" "while" "break" "continue"] @repeat
97+
98+
[
99+
"~"
100+
"-"
101+
"*"
102+
"/"
103+
"%"
104+
"+"
105+
"-"
106+
"<<"
107+
">>"
108+
"&"
109+
"^"
110+
"|"
111+
"<"
112+
">"
113+
"=="
114+
"!="
115+
">="
116+
"<="
117+
"!"
118+
"&&"
119+
"||"
120+
"="
121+
"+="
122+
"-="
123+
"*="
124+
"/="
125+
"%="
126+
"&="
127+
"|="
128+
"->"
129+
] @operator
130+
131+
[
132+
"and"
133+
"as"
134+
"in"
135+
"is"
136+
"not"
137+
"or"
138+
] @keyword.operator
139+
140+
[
141+
"pass"
142+
"class"
143+
"class_name"
144+
"extends"
145+
"signal"
146+
"enum"
147+
"var"
148+
"onready"
149+
"export"
150+
"setget"
151+
"remote"
152+
"master"
153+
"puppet"
154+
"remotesync"
155+
"mastersync"
156+
"puppetsync"
157+
] @keyword
158+
159+
"func" @keyword.function
160+
161+
[
162+
"return"
163+
] @keyword.return
164+
165+
[
166+
"await"
167+
] @keyword.coroutine
168+
169+
(call (identifier) @keyword.coroutine
170+
(#eq? @keyword.coroutine "yield"))
171+
172+
173+
;; Builtins
174+
; generated from
175+
; - https://github.com/godotengine/godot/blob/491ded18983a4ae963ce9c29e8df5d5680873ccb/doc/classes/@GlobalScope.xml
176+
; - https://github.com/godotengine/godot/blob/491ded18983a4ae963ce9c29e8df5d5680873ccb/modules/gdscript/doc_classes/@GDScript.xml
177+
; some from:
178+
; - https://github.com/godotengine/godot-vscode-plugin/blob/0636797c22bf1e23a41fd24d55cdb9be62e0c992/syntaxes/GDScript.tmLanguage.json
179+
180+
;; Built-in Annotations
181+
182+
((annotation "@" @attribute (identifier) @attribute)
183+
(#any-of? @attribute
184+
; @GDScript
185+
"export" "export_category" "export_color_no_alpha" "export_dir"
186+
"export_enum" "export_exp_easing" "export_file" "export_flags"
187+
"export_flags_2d_navigation" "export_flags_2d_physics"
188+
"export_flags_2d_render" "export_flags_3d_navigation"
189+
"export_flags_3d_physics" "export_flags_3d_render" "export_global_dir"
190+
"export_global_file" "export_group" "export_multiline" "export_node_path"
191+
"export_placeholder" "export_range" "export_subgroup" "icon" "onready"
192+
"rpc" "tool" "warning_ignore"
193+
))
194+
195+
;; Builtin Types
196+
197+
([(identifier) (type)] @type.builtin
198+
(#any-of? @type.builtin
199+
; from godot-vscode-plugin
200+
"Vector2" "Vector2i" "Vector3" "Vector3i"
201+
"Color" "Rect2" "Rect2i" "Array" "Basis" "Dictionary"
202+
"Plane" "Quat" "RID" "Rect3" "Transform" "Transform2D"
203+
"Transform3D" "AABB" "String" "NodePath" "Object"
204+
"PoolByteArray" "PoolIntArray" "PoolRealArray"
205+
"PoolStringArray" "PoolVector2Array" "PoolVector3Array"
206+
"PoolColorArray" "bool" "int" "float" "StringName" "Quaternion"
207+
"PackedByteArray" "PackedInt32Array" "PackedInt64Array"
208+
"PackedFloat32Array" "PackedFloat64Array" "PackedStringArray"
209+
"PackedVector2Array" "PackedVector2iArray" "PackedVector3Array"
210+
"PackedVector3iArray" "PackedColorArray"
211+
212+
; @GlobalScope
213+
"AudioServer" "CameraServer" "ClassDB" "DisplayServer" "Engine"
214+
"EngineDebugger" "GDExtensionManager" "Geometry2D" "Geometry3D" "GodotSharp"
215+
"IP" "Input" "InputMap" "JavaClassWrapper" "JavaScriptBridge" "Marshalls"
216+
"NavigationMeshGenerator" "NavigationServer2D" "NavigationServer3D" "OS"
217+
"Performance" "PhysicsServer2D" "PhysicsServer2DManager" "PhysicsServer3D"
218+
"PhysicsServer3DManager" "ProjectSettings" "RenderingServer" "ResourceLoader"
219+
"ResourceSaver" "ResourceUID" "TextServerManager" "ThemeDB" "Time"
220+
"TranslationServer" "WorkerThreadPool" "XRServer"
221+
))
222+
223+
;; Builtin Funcs
224+
225+
(call (identifier) @function.builtin
226+
(#any-of? @function.builtin
227+
; @GlobalScope
228+
"abs" "absf" "absi" "acos" "asin" "atan" "atan2" "bezier_derivative"
229+
"bezier_interpolate" "bytes_to_var" "bytes_to_var_with_objects" "ceil" "ceilf"
230+
"ceili" "clamp" "clampf" "clampi" "cos" "cosh" "cubic_interpolate"
231+
"cubic_interpolate_angle" "cubic_interpolate_angle_in_time"
232+
"cubic_interpolate_in_time" "db_to_linear" "deg_to_rad" "ease" "error_string"
233+
"exp" "floor" "floorf" "floori" "fmod" "fposmod" "hash" "instance_from_id"
234+
"inverse_lerp" "is_equal_approx" "is_finite" "is_inf" "is_instance_id_valid"
235+
"is_instance_valid" "is_nan" "is_same" "is_zero_approx" "lerp" "lerp_angle"
236+
"lerpf" "linear_to_db" "log" "max" "maxf" "maxi" "min" "minf" "mini"
237+
"move_toward" "nearest_po2" "pingpong" "posmod" "pow" "print" "print_rich"
238+
"print_verbose" "printerr" "printraw" "prints" "printt" "push_error"
239+
"push_warning" "rad_to_deg" "rand_from_seed" "randf" "randf_range" "randfn"
240+
"randi" "randi_range" "randomize" "remap" "rid_allocate_id" "rid_from_int64"
241+
"round" "roundf" "roundi" "seed" "sign" "signf" "signi" "sin" "sinh"
242+
"smoothstep" "snapped" "snappedf" "snappedi" "sqrt" "step_decimals" "str"
243+
"str_to_var" "tan" "tanh" "typeof" "var_to_bytes" "var_to_bytes_with_objects"
244+
"var_to_str" "weakref" "wrap" "wrapf" "wrapi"
245+
246+
; @GDScript
247+
"Color8" "assert" "char" "convert" "dict_to_inst" "get_stack" "inst_to_dict"
248+
"is_instance_of" "len" "print_debug" "print_stack" "range"
249+
"type_exists"
250+
))
251+
252+
;; Builtin Constants
253+
254+
((identifier) @constant.builtin
255+
(#any-of? @constant.builtin
256+
; @GDScript
257+
"PI" "TAU" "INF" "NAN"
258+
259+
; @GlobalScope
260+
"SIDE_LEFT" "SIDE_TOP" "SIDE_RIGHT" "SIDE_BOTTOM" "CORNER_TOP_LEFT" "CORNER_TOP_RIGHT" "CORNER_BOTTOM_RIGHT"
261+
"CORNER_BOTTOM_LEFT" "VERTICAL" "HORIZONTAL" "CLOCKWISE" "COUNTERCLOCKWISE" "HORIZONTAL_ALIGNMENT_LEFT"
262+
"HORIZONTAL_ALIGNMENT_CENTER" "HORIZONTAL_ALIGNMENT_RIGHT" "HORIZONTAL_ALIGNMENT_FILL" "VERTICAL_ALIGNMENT_TOP"
263+
"VERTICAL_ALIGNMENT_CENTER" "VERTICAL_ALIGNMENT_BOTTOM" "VERTICAL_ALIGNMENT_FILL" "INLINE_ALIGNMENT_TOP_TO"
264+
"INLINE_ALIGNMENT_CENTER_TO" "INLINE_ALIGNMENT_BASELINE_TO" "INLINE_ALIGNMENT_BOTTOM_TO" "INLINE_ALIGNMENT_TO_TOP"
265+
"INLINE_ALIGNMENT_TO_CENTER" "INLINE_ALIGNMENT_TO_BASELINE" "INLINE_ALIGNMENT_TO_BOTTOM" "INLINE_ALIGNMENT_TOP"
266+
"INLINE_ALIGNMENT_CENTER" "INLINE_ALIGNMENT_BOTTOM" "INLINE_ALIGNMENT_IMAGE_MASK" "INLINE_ALIGNMENT_TEXT_MASK"
267+
"EULER_ORDER_XYZ" "EULER_ORDER_XZY" "EULER_ORDER_YXZ" "EULER_ORDER_YZX" "EULER_ORDER_ZXY" "EULER_ORDER_ZYX" "KEY_NONE"
268+
"KEY_SPECIAL" "KEY_ESCAPE" "KEY_TAB" "KEY_BACKTAB" "KEY_BACKSPACE" "KEY_ENTER" "KEY_KP_ENTER" "KEY_INSERT" "KEY_DELETE"
269+
"KEY_PAUSE" "KEY_PRINT" "KEY_SYSREQ" "KEY_CLEAR" "KEY_HOME" "KEY_END" "KEY_LEFT" "KEY_UP" "KEY_RIGHT" "KEY_DOWN"
270+
"KEY_PAGEUP" "KEY_PAGEDOWN" "KEY_SHIFT" "KEY_CTRL" "KEY_META" "KEY_ALT" "KEY_CAPSLOCK" "KEY_NUMLOCK" "KEY_SCROLLLOCK"
271+
"KEY_F1" "KEY_F2" "KEY_F3" "KEY_F4" "KEY_F5" "KEY_F6" "KEY_F7" "KEY_F8" "KEY_F9" "KEY_F10" "KEY_F11" "KEY_F12"
272+
"KEY_F13" "KEY_F14" "KEY_F15" "KEY_F16" "KEY_F17" "KEY_F18" "KEY_F19" "KEY_F20" "KEY_F21" "KEY_F22" "KEY_F23" "KEY_F24"
273+
"KEY_F25" "KEY_F26" "KEY_F27" "KEY_F28" "KEY_F29" "KEY_F30" "KEY_F31" "KEY_F32" "KEY_F33" "KEY_F34" "KEY_F35"
274+
"KEY_KP_MULTIPLY" "KEY_KP_DIVIDE" "KEY_KP_SUBTRACT" "KEY_KP_PERIOD" "KEY_KP_ADD" "KEY_KP_0" "KEY_KP_1" "KEY_KP_2"
275+
"KEY_KP_3" "KEY_KP_4" "KEY_KP_5" "KEY_KP_6" "KEY_KP_7" "KEY_KP_8" "KEY_KP_9" "KEY_MENU" "KEY_HYPER" "KEY_HELP"
276+
"KEY_BACK" "KEY_FORWARD" "KEY_STOP" "KEY_REFRESH" "KEY_VOLUMEDOWN" "KEY_VOLUMEMUTE" "KEY_VOLUMEUP" "KEY_MEDIAPLAY"
277+
"KEY_MEDIASTOP" "KEY_MEDIAPREVIOUS" "KEY_MEDIANEXT" "KEY_MEDIARECORD" "KEY_HOMEPAGE" "KEY_FAVORITES" "KEY_SEARCH"
278+
"KEY_STANDBY" "KEY_OPENURL" "KEY_LAUNCHMAIL" "KEY_LAUNCHMEDIA" "KEY_LAUNCH0" "KEY_LAUNCH1" "KEY_LAUNCH2" "KEY_LAUNCH3"
279+
"KEY_LAUNCH4" "KEY_LAUNCH5" "KEY_LAUNCH6" "KEY_LAUNCH7" "KEY_LAUNCH8" "KEY_LAUNCH9" "KEY_LAUNCHA" "KEY_LAUNCHB"
280+
"KEY_LAUNCHC" "KEY_LAUNCHD" "KEY_LAUNCHE" "KEY_LAUNCHF" "KEY_UNKNOWN" "KEY_SPACE" "KEY_EXCLAM" "KEY_QUOTEDBL"
281+
"KEY_NUMBERSIGN" "KEY_DOLLAR" "KEY_PERCENT" "KEY_AMPERSAND" "KEY_APOSTROPHE" "KEY_PARENLEFT" "KEY_PARENRIGHT"
282+
"KEY_ASTERISK" "KEY_PLUS" "KEY_COMMA" "KEY_MINUS" "KEY_PERIOD" "KEY_SLASH" "KEY_0" "KEY_1" "KEY_2" "KEY_3" "KEY_4"
283+
"KEY_5" "KEY_6" "KEY_7" "KEY_8" "KEY_9" "KEY_COLON" "KEY_SEMICOLON" "KEY_LESS" "KEY_EQUAL" "KEY_GREATER" "KEY_QUESTION"
284+
"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"
285+
"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"
286+
"KEY_BRACKETLEFT" "KEY_BACKSLASH" "KEY_BRACKETRIGHT" "KEY_ASCIICIRCUM" "KEY_UNDERSCORE" "KEY_QUOTELEFT" "KEY_BRACELEFT"
287+
"KEY_BAR" "KEY_BRACERIGHT" "KEY_ASCIITILDE" "KEY_YEN" "KEY_SECTION" "KEY_GLOBE" "KEY_KEYBOARD" "KEY_JIS_EISU"
288+
"KEY_JIS_KANA" "KEY_CODE_MASK" "KEY_MODIFIER_MASK" "KEY_MASK_CMD_OR_CTRL" "KEY_MASK_SHIFT" "KEY_MASK_ALT"
289+
"KEY_MASK_META" "KEY_MASK_CTRL" "KEY_MASK_KPAD" "KEY_MASK_GROUP_SWITCH" "MOUSE_BUTTON_NONE" "MOUSE_BUTTON_LEFT"
290+
"MOUSE_BUTTON_RIGHT" "MOUSE_BUTTON_MIDDLE" "MOUSE_BUTTON_WHEEL_UP" "MOUSE_BUTTON_WHEEL_DOWN" "MOUSE_BUTTON_WHEEL_LEFT"
291+
"MOUSE_BUTTON_WHEEL_RIGHT" "MOUSE_BUTTON_XBUTTON1" "MOUSE_BUTTON_XBUTTON2" "MOUSE_BUTTON_MASK_LEFT"
292+
"MOUSE_BUTTON_MASK_RIGHT" "MOUSE_BUTTON_MASK_MIDDLE" "MOUSE_BUTTON_MASK_MB_XBUTTON1" "MOUSE_BUTTON_MASK_MB_XBUTTON2"
293+
"JOY_BUTTON_INVALID" "JOY_BUTTON_A" "JOY_BUTTON_B" "JOY_BUTTON_X" "JOY_BUTTON_Y" "JOY_BUTTON_BACK" "JOY_BUTTON_GUIDE"
294+
"JOY_BUTTON_START" "JOY_BUTTON_LEFT_STICK" "JOY_BUTTON_RIGHT_STICK" "JOY_BUTTON_LEFT_SHOULDER"
295+
"JOY_BUTTON_RIGHT_SHOULDER" "JOY_BUTTON_DPAD_UP" "JOY_BUTTON_DPAD_DOWN" "JOY_BUTTON_DPAD_LEFT" "JOY_BUTTON_DPAD_RIGHT"
296+
"JOY_BUTTON_MISC1" "JOY_BUTTON_PADDLE1" "JOY_BUTTON_PADDLE2" "JOY_BUTTON_PADDLE3" "JOY_BUTTON_PADDLE4"
297+
"JOY_BUTTON_TOUCHPAD" "JOY_BUTTON_SDL_MAX" "JOY_BUTTON_MAX" "JOY_AXIS_INVALID" "JOY_AXIS_LEFT_X" "JOY_AXIS_LEFT_Y"
298+
"JOY_AXIS_RIGHT_X" "JOY_AXIS_RIGHT_Y" "JOY_AXIS_TRIGGER_LEFT" "JOY_AXIS_TRIGGER_RIGHT" "JOY_AXIS_SDL_MAX"
299+
"JOY_AXIS_MAX" "MIDI_MESSAGE_NONE" "MIDI_MESSAGE_NOTE_OFF" "MIDI_MESSAGE_NOTE_ON" "MIDI_MESSAGE_AFTERTOUCH"
300+
"MIDI_MESSAGE_CONTROL_CHANGE" "MIDI_MESSAGE_PROGRAM_CHANGE" "MIDI_MESSAGE_CHANNEL_PRESSURE" "MIDI_MESSAGE_PITCH_BEND"
301+
"MIDI_MESSAGE_SYSTEM_EXCLUSIVE" "MIDI_MESSAGE_QUARTER_FRAME" "MIDI_MESSAGE_SONG_POSITION_POINTER"
302+
"MIDI_MESSAGE_SONG_SELECT" "MIDI_MESSAGE_TUNE_REQUEST" "MIDI_MESSAGE_TIMING_CLOCK" "MIDI_MESSAGE_START"
303+
"MIDI_MESSAGE_CONTINUE" "MIDI_MESSAGE_STOP" "MIDI_MESSAGE_ACTIVE_SENSING" "MIDI_MESSAGE_SYSTEM_RESET" "OK" "FAILED"
304+
"ERR_UNAVAILABLE" "ERR_UNCONFIGURED" "ERR_UNAUTHORIZED" "ERR_PARAMETER_RANGE_ERROR" "ERR_OUT_OF_MEMORY"
305+
"ERR_FILE_NOT_FOUND" "ERR_FILE_BAD_DRIVE" "ERR_FILE_BAD_PATH" "ERR_FILE_NO_PERMISSION" "ERR_FILE_ALREADY_IN_USE"
306+
"ERR_FILE_CANT_OPEN" "ERR_FILE_CANT_WRITE" "ERR_FILE_CANT_READ" "ERR_FILE_UNRECOGNIZED" "ERR_FILE_CORRUPT"
307+
"ERR_FILE_MISSING_DEPENDENCIES" "ERR_FILE_EOF" "ERR_CANT_OPEN" "ERR_CANT_CREATE" "ERR_QUERY_FAILED"
308+
"ERR_ALREADY_IN_USE" "ERR_LOCKED" "ERR_TIMEOUT" "ERR_CANT_CONNECT" "ERR_CANT_RESOLVE" "ERR_CONNECTION_ERROR"
309+
"ERR_CANT_ACQUIRE_RESOURCE" "ERR_CANT_FORK" "ERR_INVALID_DATA" "ERR_INVALID_PARAMETER" "ERR_ALREADY_EXISTS"
310+
"ERR_DOES_NOT_EXIST" "ERR_DATABASE_CANT_READ" "ERR_DATABASE_CANT_WRITE" "ERR_COMPILATION_FAILED" "ERR_METHOD_NOT_FOUND"
311+
"ERR_LINK_FAILED" "ERR_SCRIPT_FAILED" "ERR_CYCLIC_LINK" "ERR_INVALID_DECLARATION" "ERR_DUPLICATE_SYMBOL"
312+
"ERR_PARSE_ERROR" "ERR_BUSY" "ERR_SKIP" "ERR_HELP" "ERR_BUG" "ERR_PRINTER_ON_FIRE" "PROPERTY_HINT_NONE"
313+
"PROPERTY_HINT_RANGE" "PROPERTY_HINT_ENUM" "PROPERTY_HINT_ENUM_SUGGESTION" "PROPERTY_HINT_EXP_EASING"
314+
"PROPERTY_HINT_LINK" "PROPERTY_HINT_FLAGS" "PROPERTY_HINT_LAYERS_2D_RENDER" "PROPERTY_HINT_LAYERS_2D_PHYSICS"
315+
"PROPERTY_HINT_LAYERS_2D_NAVIGATION" "PROPERTY_HINT_LAYERS_3D_RENDER" "PROPERTY_HINT_LAYERS_3D_PHYSICS"
316+
"PROPERTY_HINT_LAYERS_3D_NAVIGATION" "PROPERTY_HINT_FILE" "PROPERTY_HINT_DIR" "PROPERTY_HINT_GLOBAL_FILE"
317+
"PROPERTY_HINT_GLOBAL_DIR" "PROPERTY_HINT_RESOURCE_TYPE" "PROPERTY_HINT_MULTILINE_TEXT" "PROPERTY_HINT_EXPRESSION"
318+
"PROPERTY_HINT_PLACEHOLDER_TEXT" "PROPERTY_HINT_COLOR_NO_ALPHA" "PROPERTY_HINT_OBJECT_ID" "PROPERTY_HINT_TYPE_STRING"
319+
"PROPERTY_HINT_NODE_PATH_TO_EDITED_NODE" "PROPERTY_HINT_OBJECT_TOO_BIG" "PROPERTY_HINT_NODE_PATH_VALID_TYPES"
320+
"PROPERTY_HINT_SAVE_FILE" "PROPERTY_HINT_GLOBAL_SAVE_FILE" "PROPERTY_HINT_INT_IS_OBJECTID"
321+
"PROPERTY_HINT_INT_IS_POINTER" "PROPERTY_HINT_ARRAY_TYPE" "PROPERTY_HINT_LOCALE_ID" "PROPERTY_HINT_LOCALIZABLE_STRING"
322+
"PROPERTY_HINT_NODE_TYPE" "PROPERTY_HINT_HIDE_QUATERNION_EDIT" "PROPERTY_HINT_PASSWORD" "PROPERTY_HINT_MAX"
323+
"PROPERTY_USAGE_NONE" "PROPERTY_USAGE_STORAGE" "PROPERTY_USAGE_EDITOR" "PROPERTY_USAGE_INTERNAL"
324+
"PROPERTY_USAGE_CHECKABLE" "PROPERTY_USAGE_CHECKED" "PROPERTY_USAGE_GROUP" "PROPERTY_USAGE_CATEGORY"
325+
"PROPERTY_USAGE_SUBGROUP" "PROPERTY_USAGE_CLASS_IS_BITFIELD" "PROPERTY_USAGE_NO_INSTANCE_STATE"
326+
"PROPERTY_USAGE_RESTART_IF_CHANGED" "PROPERTY_USAGE_SCRIPT_VARIABLE" "PROPERTY_USAGE_STORE_IF_NULL"
327+
"PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED" "PROPERTY_USAGE_SCRIPT_DEFAULT_VALUE" "PROPERTY_USAGE_CLASS_IS_ENUM"
328+
"PROPERTY_USAGE_NIL_IS_VARIANT" "PROPERTY_USAGE_ARRAY" "PROPERTY_USAGE_ALWAYS_DUPLICATE"
329+
"PROPERTY_USAGE_NEVER_DUPLICATE" "PROPERTY_USAGE_HIGH_END_GFX" "PROPERTY_USAGE_NODE_PATH_FROM_SCENE_ROOT"
330+
"PROPERTY_USAGE_RESOURCE_NOT_PERSISTENT" "PROPERTY_USAGE_KEYING_INCREMENTS" "PROPERTY_USAGE_DEFERRED_SET_RESOURCE"
331+
"PROPERTY_USAGE_EDITOR_INSTANTIATE_OBJECT" "PROPERTY_USAGE_EDITOR_BASIC_SETTING" "PROPERTY_USAGE_READ_ONLY"
332+
"PROPERTY_USAGE_DEFAULT" "PROPERTY_USAGE_NO_EDITOR" "METHOD_FLAG_NORMAL" "METHOD_FLAG_EDITOR" "METHOD_FLAG_CONST"
333+
"METHOD_FLAG_VIRTUAL" "METHOD_FLAG_VARARG" "METHOD_FLAG_STATIC" "METHOD_FLAG_OBJECT_CORE" "METHOD_FLAGS_DEFAULT"
334+
"TYPE_NIL" "TYPE_BOOL" "TYPE_INT" "TYPE_FLOAT" "TYPE_STRING" "TYPE_VECTOR2" "TYPE_VECTOR2I" "TYPE_RECT2" "TYPE_RECT2I"
335+
"TYPE_VECTOR3" "TYPE_VECTOR3I" "TYPE_TRANSFORM2D" "TYPE_VECTOR4" "TYPE_VECTOR4I" "TYPE_PLANE" "TYPE_QUATERNION"
336+
"TYPE_AABB" "TYPE_BASIS" "TYPE_TRANSFORM3D" "TYPE_PROJECTION" "TYPE_COLOR" "TYPE_STRING_NAME" "TYPE_NODE_PATH"
337+
"TYPE_RID" "TYPE_OBJECT" "TYPE_CALLABLE" "TYPE_SIGNAL" "TYPE_DICTIONARY" "TYPE_ARRAY" "TYPE_PACKED_BYTE_ARRAY"
338+
"TYPE_PACKED_INT32_ARRAY" "TYPE_PACKED_INT64_ARRAY" "TYPE_PACKED_FLOAT32_ARRAY" "TYPE_PACKED_FLOAT64_ARRAY"
339+
"TYPE_PACKED_STRING_ARRAY" "TYPE_PACKED_VECTOR2_ARRAY" "TYPE_PACKED_VECTOR3_ARRAY" "TYPE_PACKED_COLOR_ARRAY" "TYPE_MAX"
340+
"OP_EQUAL" "OP_NOT_EQUAL" "OP_LESS" "OP_LESS_EQUAL" "OP_GREATER" "OP_GREATER_EQUAL" "OP_ADD" "OP_SUBTRACT"
341+
"OP_MULTIPLY" "OP_DIVIDE" "OP_NEGATE" "OP_POSITIVE" "OP_MODULE" "OP_POWER" "OP_SHIFT_LEFT" "OP_SHIFT_RIGHT"
342+
"OP_BIT_AND" "OP_BIT_OR" "OP_BIT_XOR" "OP_BIT_NEGATE" "OP_AND" "OP_OR" "OP_XOR" "OP_NOT" "OP_IN" "OP_MAX"
343+
))

repos/gdscript

Submodule gdscript added at 03f20b9

tree-sitter-langs.el

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ See `tree-sitter-langs-repos'."
116116
(erlang-mode . erlang)
117117
(ess-r-mode . r)
118118
(fennel-mode . fennel)
119+
(gdscript-mode . gdscript)
119120
(go-mode . go)
120121
(haskell-mode . haskell)
121122
(hcl-mode . hcl)

0 commit comments

Comments
 (0)