summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--keywords.h47
-rwxr-xr-xkeywords.py968
-rw-r--r--main.c2
-rw-r--r--syntax.c159
-rw-r--r--ted.cfg1
-rw-r--r--ted.h2
7 files changed, 842 insertions, 339 deletions
diff --git a/Makefile b/Makefile
index 62087b1..651384d 100644
--- a/Makefile
+++ b/Makefile
@@ -43,7 +43,7 @@ libpcre2-32.a: pcre2
cd pcre2 && cmake -DPCRE2_BUILD_PCRE2_32=ON . && $(MAKE) -j8
cp pcre2/libpcre2-32.a ./
keywords.h: keywords.py
- ./keywords.py
+ python3 keywords.py
ted.deb: release
rm -rf /tmp/ted
mkdir -p /tmp/ted/DEBIAN
diff --git a/keywords.h b/keywords.h
index 40f3037..116a65d 100644
--- a/keywords.h
+++ b/keywords.h
@@ -408,6 +408,53 @@ static const KeywordList syntax_all_keywords_css[128] = {
['!'] = {syntax_keywords_css_x21, arr_count(syntax_keywords_css_x21)}, ['-'] = {syntax_keywords_css_x2d, arr_count(syntax_keywords_css_x2d)}, ['@'] = {syntax_keywords_css_x40, arr_count(syntax_keywords_css_x40)}, ['a'] = {syntax_keywords_css_a, arr_count(syntax_keywords_css_a)}, ['b'] = {syntax_keywords_css_b, arr_count(syntax_keywords_css_b)}, ['c'] = {syntax_keywords_css_c, arr_count(syntax_keywords_css_c)}, ['d'] = {syntax_keywords_css_d, arr_count(syntax_keywords_css_d)}, ['e'] = {syntax_keywords_css_e, arr_count(syntax_keywords_css_e)}, ['f'] = {syntax_keywords_css_f, arr_count(syntax_keywords_css_f)}, ['g'] = {syntax_keywords_css_g, arr_count(syntax_keywords_css_g)}, ['h'] = {syntax_keywords_css_h, arr_count(syntax_keywords_css_h)}, ['i'] = {syntax_keywords_css_i, arr_count(syntax_keywords_css_i)}, ['j'] = {syntax_keywords_css_j, arr_count(syntax_keywords_css_j)}, ['k'] = {syntax_keywords_css_k, arr_count(syntax_keywords_css_k)}, ['l'] = {syntax_keywords_css_l, arr_count(syntax_keywords_css_l)}, ['m'] = {syntax_keywords_css_m, arr_count(syntax_keywords_css_m)}, ['n'] = {syntax_keywords_css_n, arr_count(syntax_keywords_css_n)}, ['o'] = {syntax_keywords_css_o, arr_count(syntax_keywords_css_o)}, ['p'] = {syntax_keywords_css_p, arr_count(syntax_keywords_css_p)}, ['q'] = {syntax_keywords_css_q, arr_count(syntax_keywords_css_q)}, ['r'] = {syntax_keywords_css_r, arr_count(syntax_keywords_css_r)}, ['s'] = {syntax_keywords_css_s, arr_count(syntax_keywords_css_s)}, ['t'] = {syntax_keywords_css_t, arr_count(syntax_keywords_css_t)}, ['u'] = {syntax_keywords_css_u, arr_count(syntax_keywords_css_u)}, ['v'] = {syntax_keywords_css_v, arr_count(syntax_keywords_css_v)}, ['w'] = {syntax_keywords_css_w, arr_count(syntax_keywords_css_w)}, ['x'] = {syntax_keywords_css_x, arr_count(syntax_keywords_css_x)}, ['y'] = {syntax_keywords_css_y, arr_count(syntax_keywords_css_y)}, ['z'] = {syntax_keywords_css_z, arr_count(syntax_keywords_css_z)}
};
+static const Keyword syntax_keywords_gdscript_A[91] = {{"AABB", SYNTAX_BUILTIN},{"AESContext", SYNTAX_BUILTIN},{"AStar2D", SYNTAX_BUILTIN},{"AStar3D", SYNTAX_BUILTIN},{"AStarGrid2D", SYNTAX_BUILTIN},{"AcceptDialog", SYNTAX_BUILTIN},{"AnimatableBody2D", SYNTAX_BUILTIN},{"AnimatableBody3D", SYNTAX_BUILTIN},{"AnimatedSprite2D", SYNTAX_BUILTIN},{"AnimatedSprite3D", SYNTAX_BUILTIN},{"AnimatedTexture", SYNTAX_BUILTIN},{"Animation", SYNTAX_BUILTIN},{"AnimationLibrary", SYNTAX_BUILTIN},{"AnimationNode", SYNTAX_BUILTIN},{"AnimationNodeAdd2", SYNTAX_BUILTIN},{"AnimationNodeAdd3", SYNTAX_BUILTIN},{"AnimationNodeAnimation", SYNTAX_BUILTIN},{"AnimationNodeBlend2", SYNTAX_BUILTIN},{"AnimationNodeBlend3", SYNTAX_BUILTIN},{"AnimationNodeBlendSpace1D", SYNTAX_BUILTIN},{"AnimationNodeBlendSpace2D", SYNTAX_BUILTIN},{"AnimationNodeBlendTree", SYNTAX_BUILTIN},{"AnimationNodeOneShot", SYNTAX_BUILTIN},{"AnimationNodeOutput", SYNTAX_BUILTIN},{"AnimationNodeStateMachine", SYNTAX_BUILTIN},{"AnimationNodeStateMachinePlayback", SYNTAX_BUILTIN},{"AnimationNodeStateMachineTransition", SYNTAX_BUILTIN},{"AnimationNodeSub2", SYNTAX_BUILTIN},{"AnimationNodeSync", SYNTAX_BUILTIN},{"AnimationNodeTimeScale", SYNTAX_BUILTIN},{"AnimationNodeTimeSeek", SYNTAX_BUILTIN},{"AnimationNodeTransition", SYNTAX_BUILTIN},{"AnimationPlayer", SYNTAX_BUILTIN},{"AnimationRootNode", SYNTAX_BUILTIN},{"AnimationTree", SYNTAX_BUILTIN},{"Area2D", SYNTAX_BUILTIN},{"Area3D", SYNTAX_BUILTIN},{"Array", SYNTAX_BUILTIN},{"ArrayMesh", SYNTAX_BUILTIN},{"ArrayOccluder3D", SYNTAX_BUILTIN},{"AspectRatioContainer", SYNTAX_BUILTIN},{"AtlasTexture", SYNTAX_BUILTIN},{"AudioBusLayout", SYNTAX_BUILTIN},{"AudioEffect", SYNTAX_BUILTIN},{"AudioEffectAmplify", SYNTAX_BUILTIN},{"AudioEffectBandLimitFilter", SYNTAX_BUILTIN},{"AudioEffectBandPassFilter", SYNTAX_BUILTIN},{"AudioEffectCapture", SYNTAX_BUILTIN},{"AudioEffectChorus", SYNTAX_BUILTIN},{"AudioEffectCompressor", SYNTAX_BUILTIN},{"AudioEffectDelay", SYNTAX_BUILTIN},{"AudioEffectDistortion", SYNTAX_BUILTIN},{"AudioEffectEQ", SYNTAX_BUILTIN},{"AudioEffectEQ10", SYNTAX_BUILTIN},{"AudioEffectEQ21", SYNTAX_BUILTIN},{"AudioEffectEQ6", SYNTAX_BUILTIN},{"AudioEffectFilter", SYNTAX_BUILTIN},{"AudioEffectHighPassFilter", SYNTAX_BUILTIN},{"AudioEffectHighShelfFilter", SYNTAX_BUILTIN},{"AudioEffectInstance", SYNTAX_BUILTIN},{"AudioEffectLimiter", SYNTAX_BUILTIN},{"AudioEffectLowPassFilter", SYNTAX_BUILTIN},{"AudioEffectLowShelfFilter", SYNTAX_BUILTIN},{"AudioEffectNotchFilter", SYNTAX_BUILTIN},{"AudioEffectPanner", SYNTAX_BUILTIN},{"AudioEffectPhaser", SYNTAX_BUILTIN},{"AudioEffectPitchShift", SYNTAX_BUILTIN},{"AudioEffectRecord", SYNTAX_BUILTIN},{"AudioEffectReverb", SYNTAX_BUILTIN},{"AudioEffectSpectrumAnalyzer", SYNTAX_BUILTIN},{"AudioEffectSpectrumAnalyzerInstance", SYNTAX_BUILTIN},{"AudioEffectStereoEnhance", SYNTAX_BUILTIN},{"AudioListener2D", SYNTAX_BUILTIN},{"AudioListener3D", SYNTAX_BUILTIN},{"AudioServer", SYNTAX_BUILTIN},{"AudioStream", SYNTAX_BUILTIN},{"AudioStreamGenerator", SYNTAX_BUILTIN},{"AudioStreamGeneratorPlayback", SYNTAX_BUILTIN},{"AudioStreamMP3", SYNTAX_BUILTIN},{"AudioStreamMicrophone", SYNTAX_BUILTIN},{"AudioStreamOggVorbis", SYNTAX_BUILTIN},{"AudioStreamPlayback", SYNTAX_BUILTIN},{"AudioStreamPlaybackOggVorbis", SYNTAX_BUILTIN},{"AudioStreamPlaybackPolyphonic", SYNTAX_BUILTIN},{"AudioStreamPlaybackResampled", SYNTAX_BUILTIN},{"AudioStreamPlayer", SYNTAX_BUILTIN},{"AudioStreamPlayer2D", SYNTAX_BUILTIN},{"AudioStreamPlayer3D", SYNTAX_BUILTIN},{"AudioStreamPolyphonic", SYNTAX_BUILTIN},{"AudioStreamRandomizer", SYNTAX_BUILTIN},{"AudioStreamWAV", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_B[14] = {{"BackBufferCopy", SYNTAX_BUILTIN},{"BaseButton", SYNTAX_BUILTIN},{"BaseMaterial3D", SYNTAX_BUILTIN},{"Basis", SYNTAX_BUILTIN},{"BitMap", SYNTAX_BUILTIN},{"Bone2D", SYNTAX_BUILTIN},{"BoneAttachment3D", SYNTAX_BUILTIN},{"BoneMap", SYNTAX_BUILTIN},{"BoxContainer", SYNTAX_BUILTIN},{"BoxMesh", SYNTAX_BUILTIN},{"BoxOccluder3D", SYNTAX_BUILTIN},{"BoxShape3D", SYNTAX_BUILTIN},{"Button", SYNTAX_BUILTIN},{"ButtonGroup", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_C[77] = {{"CPUParticles2D", SYNTAX_BUILTIN},{"CPUParticles3D", SYNTAX_BUILTIN},{"CSGBox3D", SYNTAX_BUILTIN},{"CSGCombiner3D", SYNTAX_BUILTIN},{"CSGCylinder3D", SYNTAX_BUILTIN},{"CSGMesh3D", SYNTAX_BUILTIN},{"CSGPolygon3D", SYNTAX_BUILTIN},{"CSGPrimitive3D", SYNTAX_BUILTIN},{"CSGShape3D", SYNTAX_BUILTIN},{"CSGSphere3D", SYNTAX_BUILTIN},{"CSGTorus3D", SYNTAX_BUILTIN},{"CSharpScript", SYNTAX_BUILTIN},{"Callable", SYNTAX_BUILTIN},{"CallbackTweener", SYNTAX_BUILTIN},{"Camera2D", SYNTAX_BUILTIN},{"Camera3D", SYNTAX_BUILTIN},{"CameraAttributes", SYNTAX_BUILTIN},{"CameraAttributesPhysical", SYNTAX_BUILTIN},{"CameraAttributesPractical", SYNTAX_BUILTIN},{"CameraFeed", SYNTAX_BUILTIN},{"CameraServer", SYNTAX_BUILTIN},{"CameraTexture", SYNTAX_BUILTIN},{"CanvasGroup", SYNTAX_BUILTIN},{"CanvasItem", SYNTAX_BUILTIN},{"CanvasItemMaterial", SYNTAX_BUILTIN},{"CanvasLayer", SYNTAX_BUILTIN},{"CanvasModulate", SYNTAX_BUILTIN},{"CanvasTexture", SYNTAX_BUILTIN},{"CapsuleMesh", SYNTAX_BUILTIN},{"CapsuleShape2D", SYNTAX_BUILTIN},{"CapsuleShape3D", SYNTAX_BUILTIN},{"CenterContainer", SYNTAX_BUILTIN},{"CharFXTransform", SYNTAX_BUILTIN},{"CharacterBody2D", SYNTAX_BUILTIN},{"CharacterBody3D", SYNTAX_BUILTIN},{"CheckBox", SYNTAX_BUILTIN},{"CheckButton", SYNTAX_BUILTIN},{"CircleShape2D", SYNTAX_BUILTIN},{"ClassDB", SYNTAX_BUILTIN},{"CodeEdit", SYNTAX_BUILTIN},{"CodeHighlighter", SYNTAX_BUILTIN},{"CollisionObject2D", SYNTAX_BUILTIN},{"CollisionObject3D", SYNTAX_BUILTIN},{"CollisionPolygon2D", SYNTAX_BUILTIN},{"CollisionPolygon3D", SYNTAX_BUILTIN},{"CollisionShape2D", SYNTAX_BUILTIN},{"CollisionShape3D", SYNTAX_BUILTIN},{"Color", SYNTAX_BUILTIN},{"ColorPicker", SYNTAX_BUILTIN},{"ColorPickerButton", SYNTAX_BUILTIN},{"ColorRect", SYNTAX_BUILTIN},{"CompressedCubemap", SYNTAX_BUILTIN},{"CompressedCubemapArray", SYNTAX_BUILTIN},{"CompressedTexture2D", SYNTAX_BUILTIN},{"CompressedTexture2DArray", SYNTAX_BUILTIN},{"CompressedTexture3D", SYNTAX_BUILTIN},{"CompressedTextureLayered", SYNTAX_BUILTIN},{"ConcavePolygonShape2D", SYNTAX_BUILTIN},{"ConcavePolygonShape3D", SYNTAX_BUILTIN},{"ConeTwistJoint3D", SYNTAX_BUILTIN},{"ConfigFile", SYNTAX_BUILTIN},{"ConfirmationDialog", SYNTAX_BUILTIN},{"Container", SYNTAX_BUILTIN},{"Control", SYNTAX_BUILTIN},{"ConvexPolygonShape2D", SYNTAX_BUILTIN},{"ConvexPolygonShape3D", SYNTAX_BUILTIN},{"Crypto", SYNTAX_BUILTIN},{"CryptoKey", SYNTAX_BUILTIN},{"Cubemap", SYNTAX_BUILTIN},{"CubemapArray", SYNTAX_BUILTIN},{"Curve", SYNTAX_BUILTIN},{"Curve2D", SYNTAX_BUILTIN},{"Curve3D", SYNTAX_BUILTIN},{"CurveTexture", SYNTAX_BUILTIN},{"CurveXYZTexture", SYNTAX_BUILTIN},{"CylinderMesh", SYNTAX_BUILTIN},{"CylinderShape3D", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_D[8] = {{"DTLSServer", SYNTAX_BUILTIN},{"DampedSpringJoint2D", SYNTAX_BUILTIN},{"Decal", SYNTAX_BUILTIN},{"Dictionary", SYNTAX_BUILTIN},{"DirAccess", SYNTAX_BUILTIN},{"DirectionalLight2D", SYNTAX_BUILTIN},{"DirectionalLight3D", SYNTAX_BUILTIN},{"DisplayServer", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_E[55] = {{"ENetConnection", SYNTAX_BUILTIN},{"ENetMultiplayerPeer", SYNTAX_BUILTIN},{"ENetPacketPeer", SYNTAX_BUILTIN},{"EditorCommandPalette", SYNTAX_BUILTIN},{"EditorDebuggerPlugin", SYNTAX_BUILTIN},{"EditorDebuggerSession", SYNTAX_BUILTIN},{"EditorExportPlatform", SYNTAX_BUILTIN},{"EditorExportPlatformAndroid", SYNTAX_BUILTIN},{"EditorExportPlatformIOS", SYNTAX_BUILTIN},{"EditorExportPlatformLinuxBSD", SYNTAX_BUILTIN},{"EditorExportPlatformMacOS", SYNTAX_BUILTIN},{"EditorExportPlatformPC", SYNTAX_BUILTIN},{"EditorExportPlatformWeb", SYNTAX_BUILTIN},{"EditorExportPlatformWindows", SYNTAX_BUILTIN},{"EditorExportPlugin", SYNTAX_BUILTIN},{"EditorFeatureProfile", SYNTAX_BUILTIN},{"EditorFileDialog", SYNTAX_BUILTIN},{"EditorFileSystem", SYNTAX_BUILTIN},{"EditorFileSystemDirectory", SYNTAX_BUILTIN},{"EditorFileSystemImportFormatSupportQuery", SYNTAX_BUILTIN},{"EditorImportPlugin", SYNTAX_BUILTIN},{"EditorInspector", SYNTAX_BUILTIN},{"EditorInspectorPlugin", SYNTAX_BUILTIN},{"EditorInterface", SYNTAX_BUILTIN},{"EditorNode3DGizmo", SYNTAX_BUILTIN},{"EditorNode3DGizmoPlugin", SYNTAX_BUILTIN},{"EditorPaths", SYNTAX_BUILTIN},{"EditorPlugin", SYNTAX_BUILTIN},{"EditorProperty", SYNTAX_BUILTIN},{"EditorResourceConversionPlugin", SYNTAX_BUILTIN},{"EditorResourcePicker", SYNTAX_BUILTIN},{"EditorResourcePreview", SYNTAX_BUILTIN},{"EditorResourcePreviewGenerator", SYNTAX_BUILTIN},{"EditorResourceTooltipPlugin", SYNTAX_BUILTIN},{"EditorSceneFormatImporter", SYNTAX_BUILTIN},{"EditorSceneFormatImporterBlend", SYNTAX_BUILTIN},{"EditorSceneFormatImporterFBX", SYNTAX_BUILTIN},{"EditorSceneFormatImporterGLTF", SYNTAX_BUILTIN},{"EditorScenePostImport", SYNTAX_BUILTIN},{"EditorScenePostImportPlugin", SYNTAX_BUILTIN},{"EditorScript", SYNTAX_BUILTIN},{"EditorScriptPicker", SYNTAX_BUILTIN},{"EditorSelection", SYNTAX_BUILTIN},{"EditorSettings", SYNTAX_BUILTIN},{"EditorSpinSlider", SYNTAX_BUILTIN},{"EditorSyntaxHighlighter", SYNTAX_BUILTIN},{"EditorTranslationParserPlugin", SYNTAX_BUILTIN},{"EditorUndoRedoManager", SYNTAX_BUILTIN},{"EditorVCSInterface", SYNTAX_BUILTIN},{"EncodedObjectAsID", SYNTAX_BUILTIN},{"Engine", SYNTAX_BUILTIN},{"EngineDebugger", SYNTAX_BUILTIN},{"EngineProfiler", SYNTAX_BUILTIN},{"Environment", SYNTAX_BUILTIN},{"Expression", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_F[10] = {{"FastNoiseLite", SYNTAX_BUILTIN},{"FileAccess", SYNTAX_BUILTIN},{"FileDialog", SYNTAX_BUILTIN},{"FileSystemDock", SYNTAX_BUILTIN},{"FlowContainer", SYNTAX_BUILTIN},{"FogMaterial", SYNTAX_BUILTIN},{"FogVolume", SYNTAX_BUILTIN},{"Font", SYNTAX_BUILTIN},{"FontFile", SYNTAX_BUILTIN},{"FontVariation", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_G[45] = {{"GDExtension", SYNTAX_BUILTIN},{"GDExtensionManager", SYNTAX_BUILTIN},{"GDScript", SYNTAX_BUILTIN},{"GLTFAccessor", SYNTAX_BUILTIN},{"GLTFAnimation", SYNTAX_BUILTIN},{"GLTFBufferView", SYNTAX_BUILTIN},{"GLTFCamera", SYNTAX_BUILTIN},{"GLTFDocument", SYNTAX_BUILTIN},{"GLTFDocumentExtension", SYNTAX_BUILTIN},{"GLTFDocumentExtensionConvertImporterMesh", SYNTAX_BUILTIN},{"GLTFLight", SYNTAX_BUILTIN},{"GLTFMesh", SYNTAX_BUILTIN},{"GLTFNode", SYNTAX_BUILTIN},{"GLTFPhysicsBody", SYNTAX_BUILTIN},{"GLTFPhysicsShape", SYNTAX_BUILTIN},{"GLTFSkeleton", SYNTAX_BUILTIN},{"GLTFSkin", SYNTAX_BUILTIN},{"GLTFSpecGloss", SYNTAX_BUILTIN},{"GLTFState", SYNTAX_BUILTIN},{"GLTFTexture", SYNTAX_BUILTIN},{"GLTFTextureSampler", SYNTAX_BUILTIN},{"GPUParticles2D", SYNTAX_BUILTIN},{"GPUParticles3D", SYNTAX_BUILTIN},{"GPUParticlesAttractor3D", SYNTAX_BUILTIN},{"GPUParticlesAttractorBox3D", SYNTAX_BUILTIN},{"GPUParticlesAttractorSphere3D", SYNTAX_BUILTIN},{"GPUParticlesAttractorVectorField3D", SYNTAX_BUILTIN},{"GPUParticlesCollision3D", SYNTAX_BUILTIN},{"GPUParticlesCollisionBox3D", SYNTAX_BUILTIN},{"GPUParticlesCollisionHeightField3D", SYNTAX_BUILTIN},{"GPUParticlesCollisionSDF3D", SYNTAX_BUILTIN},{"GPUParticlesCollisionSphere3D", SYNTAX_BUILTIN},{"Generic6DOFJoint3D", SYNTAX_BUILTIN},{"Geometry2D", SYNTAX_BUILTIN},{"Geometry3D", SYNTAX_BUILTIN},{"GeometryInstance3D", SYNTAX_BUILTIN},{"GodotSharp", SYNTAX_BUILTIN},{"Gradient", SYNTAX_BUILTIN},{"GradientTexture1D", SYNTAX_BUILTIN},{"GradientTexture2D", SYNTAX_BUILTIN},{"GraphEdit", SYNTAX_BUILTIN},{"GraphNode", SYNTAX_BUILTIN},{"GridContainer", SYNTAX_BUILTIN},{"GridMap", SYNTAX_BUILTIN},{"GrooveJoint2D", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_H[12] = {{"HBoxContainer", SYNTAX_BUILTIN},{"HFlowContainer", SYNTAX_BUILTIN},{"HMACContext", SYNTAX_BUILTIN},{"HScrollBar", SYNTAX_BUILTIN},{"HSeparator", SYNTAX_BUILTIN},{"HSlider", SYNTAX_BUILTIN},{"HSplitContainer", SYNTAX_BUILTIN},{"HTTPClient", SYNTAX_BUILTIN},{"HTTPRequest", SYNTAX_BUILTIN},{"HashingContext", SYNTAX_BUILTIN},{"HeightMapShape3D", SYNTAX_BUILTIN},{"HingeJoint3D", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_I[33] = {{"INF", SYNTAX_CONSTANT},{"IP", SYNTAX_BUILTIN},{"Image", SYNTAX_BUILTIN},{"ImageFormatLoader", SYNTAX_BUILTIN},{"ImageFormatLoaderExtension", SYNTAX_BUILTIN},{"ImageTexture", SYNTAX_BUILTIN},{"ImageTexture3D", SYNTAX_BUILTIN},{"ImageTextureLayered", SYNTAX_BUILTIN},{"ImmediateMesh", SYNTAX_BUILTIN},{"ImporterMesh", SYNTAX_BUILTIN},{"ImporterMeshInstance3D", SYNTAX_BUILTIN},{"Input", SYNTAX_BUILTIN},{"InputEvent", SYNTAX_BUILTIN},{"InputEventAction", SYNTAX_BUILTIN},{"InputEventFromWindow", SYNTAX_BUILTIN},{"InputEventGesture", SYNTAX_BUILTIN},{"InputEventJoypadButton", SYNTAX_BUILTIN},{"InputEventJoypadMotion", SYNTAX_BUILTIN},{"InputEventKey", SYNTAX_BUILTIN},{"InputEventMIDI", SYNTAX_BUILTIN},{"InputEventMagnifyGesture", SYNTAX_BUILTIN},{"InputEventMouse", SYNTAX_BUILTIN},{"InputEventMouseButton", SYNTAX_BUILTIN},{"InputEventMouseMotion", SYNTAX_BUILTIN},{"InputEventPanGesture", SYNTAX_BUILTIN},{"InputEventScreenDrag", SYNTAX_BUILTIN},{"InputEventScreenTouch", SYNTAX_BUILTIN},{"InputEventShortcut", SYNTAX_BUILTIN},{"InputEventWithModifiers", SYNTAX_BUILTIN},{"InputMap", SYNTAX_BUILTIN},{"InstancePlaceholder", SYNTAX_BUILTIN},{"IntervalTweener", SYNTAX_BUILTIN},{"ItemList", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_J[9] = {{"JNISingleton", SYNTAX_BUILTIN},{"JSON", SYNTAX_BUILTIN},{"JSONRPC", SYNTAX_BUILTIN},{"JavaClass", SYNTAX_BUILTIN},{"JavaClassWrapper", SYNTAX_BUILTIN},{"JavaScriptBridge", SYNTAX_BUILTIN},{"JavaScriptObject", SYNTAX_BUILTIN},{"Joint2D", SYNTAX_BUILTIN},{"Joint3D", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_K[2] = {{"KinematicCollision2D", SYNTAX_BUILTIN},{"KinematicCollision3D", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_L[14] = {{"Label", SYNTAX_BUILTIN},{"Label3D", SYNTAX_BUILTIN},{"LabelSettings", SYNTAX_BUILTIN},{"Light2D", SYNTAX_BUILTIN},{"Light3D", SYNTAX_BUILTIN},{"LightOccluder2D", SYNTAX_BUILTIN},{"LightmapGI", SYNTAX_BUILTIN},{"LightmapGIData", SYNTAX_BUILTIN},{"LightmapProbe", SYNTAX_BUILTIN},{"Lightmapper", SYNTAX_BUILTIN},{"LightmapperRD", SYNTAX_BUILTIN},{"Line2D", SYNTAX_BUILTIN},{"LineEdit", SYNTAX_BUILTIN},{"LinkButton", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_M[30] = {{"MainLoop", SYNTAX_BUILTIN},{"MarginContainer", SYNTAX_BUILTIN},{"Marker2D", SYNTAX_BUILTIN},{"Marker3D", SYNTAX_BUILTIN},{"Marshalls", SYNTAX_BUILTIN},{"Material", SYNTAX_BUILTIN},{"MenuBar", SYNTAX_BUILTIN},{"MenuButton", SYNTAX_BUILTIN},{"Mesh", SYNTAX_BUILTIN},{"MeshConvexDecompositionSettings", SYNTAX_BUILTIN},{"MeshDataTool", SYNTAX_BUILTIN},{"MeshInstance2D", SYNTAX_BUILTIN},{"MeshInstance3D", SYNTAX_BUILTIN},{"MeshLibrary", SYNTAX_BUILTIN},{"MeshTexture", SYNTAX_BUILTIN},{"MethodTweener", SYNTAX_BUILTIN},{"MissingNode", SYNTAX_BUILTIN},{"MissingResource", SYNTAX_BUILTIN},{"MobileVRInterface", SYNTAX_BUILTIN},{"MovieWriter", SYNTAX_BUILTIN},{"MultiMesh", SYNTAX_BUILTIN},{"MultiMeshInstance2D", SYNTAX_BUILTIN},{"MultiMeshInstance3D", SYNTAX_BUILTIN},{"MultiplayerAPI", SYNTAX_BUILTIN},{"MultiplayerAPIExtension", SYNTAX_BUILTIN},{"MultiplayerPeer", SYNTAX_BUILTIN},{"MultiplayerPeerExtension", SYNTAX_BUILTIN},{"MultiplayerSpawner", SYNTAX_BUILTIN},{"MultiplayerSynchronizer", SYNTAX_BUILTIN},{"Mutex", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_N[28] = {{"NAN", SYNTAX_CONSTANT},{"NavigationAgent2D", SYNTAX_BUILTIN},{"NavigationAgent3D", SYNTAX_BUILTIN},{"NavigationLink2D", SYNTAX_BUILTIN},{"NavigationLink3D", SYNTAX_BUILTIN},{"NavigationMesh", SYNTAX_BUILTIN},{"NavigationMeshGenerator", SYNTAX_BUILTIN},{"NavigationMeshSourceGeometryData3D", SYNTAX_BUILTIN},{"NavigationObstacle2D", SYNTAX_BUILTIN},{"NavigationObstacle3D", SYNTAX_BUILTIN},{"NavigationPathQueryParameters2D", SYNTAX_BUILTIN},{"NavigationPathQueryParameters3D", SYNTAX_BUILTIN},{"NavigationPathQueryResult2D", SYNTAX_BUILTIN},{"NavigationPathQueryResult3D", SYNTAX_BUILTIN},{"NavigationPolygon", SYNTAX_BUILTIN},{"NavigationRegion2D", SYNTAX_BUILTIN},{"NavigationRegion3D", SYNTAX_BUILTIN},{"NavigationServer2D", SYNTAX_BUILTIN},{"NavigationServer3D", SYNTAX_BUILTIN},{"NinePatchRect", SYNTAX_BUILTIN},{"Node", SYNTAX_BUILTIN},{"Node2D", SYNTAX_BUILTIN},{"Node3D", SYNTAX_BUILTIN},{"Node3DGizmo", SYNTAX_BUILTIN},{"NodePath", SYNTAX_BUILTIN},{"Noise", SYNTAX_BUILTIN},{"NoiseTexture2D", SYNTAX_BUILTIN},{"NoiseTexture3D", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_O[19] = {{"ORMMaterial3D", SYNTAX_BUILTIN},{"OS", SYNTAX_BUILTIN},{"Object", SYNTAX_BUILTIN},{"Occluder3D", SYNTAX_BUILTIN},{"OccluderInstance3D", SYNTAX_BUILTIN},{"OccluderPolygon2D", SYNTAX_BUILTIN},{"OfflineMultiplayerPeer", SYNTAX_BUILTIN},{"OggPacketSequence", SYNTAX_BUILTIN},{"OggPacketSequencePlayback", SYNTAX_BUILTIN},{"OmniLight3D", SYNTAX_BUILTIN},{"OpenXRAction", SYNTAX_BUILTIN},{"OpenXRActionMap", SYNTAX_BUILTIN},{"OpenXRActionSet", SYNTAX_BUILTIN},{"OpenXRHand", SYNTAX_BUILTIN},{"OpenXRIPBinding", SYNTAX_BUILTIN},{"OpenXRInteractionProfile", SYNTAX_BUILTIN},{"OpenXRInterface", SYNTAX_BUILTIN},{"OptimizedTranslation", SYNTAX_BUILTIN},{"OptionButton", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_P[89] = {{"PCKPacker", SYNTAX_BUILTIN},{"PI", SYNTAX_CONSTANT},{"PackedByteArray", SYNTAX_BUILTIN},{"PackedColorArray", SYNTAX_BUILTIN},{"PackedDataContainer", SYNTAX_BUILTIN},{"PackedDataContainerRef", SYNTAX_BUILTIN},{"PackedFloat32Array", SYNTAX_BUILTIN},{"PackedFloat64Array", SYNTAX_BUILTIN},{"PackedInt32Array", SYNTAX_BUILTIN},{"PackedInt64Array", SYNTAX_BUILTIN},{"PackedScene", SYNTAX_BUILTIN},{"PackedStringArray", SYNTAX_BUILTIN},{"PackedVector2Array", SYNTAX_BUILTIN},{"PackedVector3Array", SYNTAX_BUILTIN},{"PacketPeer", SYNTAX_BUILTIN},{"PacketPeerDTLS", SYNTAX_BUILTIN},{"PacketPeerExtension", SYNTAX_BUILTIN},{"PacketPeerStream", SYNTAX_BUILTIN},{"PacketPeerUDP", SYNTAX_BUILTIN},{"Panel", SYNTAX_BUILTIN},{"PanelContainer", SYNTAX_BUILTIN},{"PanoramaSkyMaterial", SYNTAX_BUILTIN},{"ParallaxBackground", SYNTAX_BUILTIN},{"ParallaxLayer", SYNTAX_BUILTIN},{"ParticleProcessMaterial", SYNTAX_BUILTIN},{"Path2D", SYNTAX_BUILTIN},{"Path3D", SYNTAX_BUILTIN},{"PathFollow2D", SYNTAX_BUILTIN},{"PathFollow3D", SYNTAX_BUILTIN},{"Performance", SYNTAX_BUILTIN},{"PhysicalBone2D", SYNTAX_BUILTIN},{"PhysicalBone3D", SYNTAX_BUILTIN},{"PhysicalSkyMaterial", SYNTAX_BUILTIN},{"PhysicsBody2D", SYNTAX_BUILTIN},{"PhysicsBody3D", SYNTAX_BUILTIN},{"PhysicsDirectBodyState2D", SYNTAX_BUILTIN},{"PhysicsDirectBodyState2DExtension", SYNTAX_BUILTIN},{"PhysicsDirectBodyState3D", SYNTAX_BUILTIN},{"PhysicsDirectBodyState3DExtension", SYNTAX_BUILTIN},{"PhysicsDirectSpaceState2D", SYNTAX_BUILTIN},{"PhysicsDirectSpaceState2DExtension", SYNTAX_BUILTIN},{"PhysicsDirectSpaceState3D", SYNTAX_BUILTIN},{"PhysicsDirectSpaceState3DExtension", SYNTAX_BUILTIN},{"PhysicsMaterial", SYNTAX_BUILTIN},{"PhysicsPointQueryParameters2D", SYNTAX_BUILTIN},{"PhysicsPointQueryParameters3D", SYNTAX_BUILTIN},{"PhysicsRayQueryParameters2D", SYNTAX_BUILTIN},{"PhysicsRayQueryParameters3D", SYNTAX_BUILTIN},{"PhysicsServer2D", SYNTAX_BUILTIN},{"PhysicsServer2DExtension", SYNTAX_BUILTIN},{"PhysicsServer2DManager", SYNTAX_BUILTIN},{"PhysicsServer3D", SYNTAX_BUILTIN},{"PhysicsServer3DExtension", SYNTAX_BUILTIN},{"PhysicsServer3DManager", SYNTAX_BUILTIN},{"PhysicsServer3DRenderingServerHandler", SYNTAX_BUILTIN},{"PhysicsShapeQueryParameters2D", SYNTAX_BUILTIN},{"PhysicsShapeQueryParameters3D", SYNTAX_BUILTIN},{"PhysicsTestMotionParameters2D", SYNTAX_BUILTIN},{"PhysicsTestMotionParameters3D", SYNTAX_BUILTIN},{"PhysicsTestMotionResult2D", SYNTAX_BUILTIN},{"PhysicsTestMotionResult3D", SYNTAX_BUILTIN},{"PinJoint2D", SYNTAX_BUILTIN},{"PinJoint3D", SYNTAX_BUILTIN},{"PlaceholderCubemap", SYNTAX_BUILTIN},{"PlaceholderCubemapArray", SYNTAX_BUILTIN},{"PlaceholderMaterial", SYNTAX_BUILTIN},{"PlaceholderMesh", SYNTAX_BUILTIN},{"PlaceholderTexture2D", SYNTAX_BUILTIN},{"PlaceholderTexture2DArray", SYNTAX_BUILTIN},{"PlaceholderTexture3D", SYNTAX_BUILTIN},{"PlaceholderTextureLayered", SYNTAX_BUILTIN},{"Plane", SYNTAX_BUILTIN},{"PlaneMesh", SYNTAX_BUILTIN},{"PointLight2D", SYNTAX_BUILTIN},{"PointMesh", SYNTAX_BUILTIN},{"Polygon2D", SYNTAX_BUILTIN},{"PolygonOccluder3D", SYNTAX_BUILTIN},{"PolygonPathFinder", SYNTAX_BUILTIN},{"Popup", SYNTAX_BUILTIN},{"PopupMenu", SYNTAX_BUILTIN},{"PopupPanel", SYNTAX_BUILTIN},{"PortableCompressedTexture2D", SYNTAX_BUILTIN},{"PrimitiveMesh", SYNTAX_BUILTIN},{"PrismMesh", SYNTAX_BUILTIN},{"ProceduralSkyMaterial", SYNTAX_BUILTIN},{"ProgressBar", SYNTAX_BUILTIN},{"ProjectSettings", SYNTAX_BUILTIN},{"Projection", SYNTAX_BUILTIN},{"PropertyTweener", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_Q[3] = {{"QuadMesh", SYNTAX_BUILTIN},{"QuadOccluder3D", SYNTAX_BUILTIN},{"Quaternion", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_R[47] = {{"RDAttachmentFormat", SYNTAX_BUILTIN},{"RDFramebufferPass", SYNTAX_BUILTIN},{"RDPipelineColorBlendState", SYNTAX_BUILTIN},{"RDPipelineColorBlendStateAttachment", SYNTAX_BUILTIN},{"RDPipelineDepthStencilState", SYNTAX_BUILTIN},{"RDPipelineMultisampleState", SYNTAX_BUILTIN},{"RDPipelineRasterizationState", SYNTAX_BUILTIN},{"RDPipelineSpecializationConstant", SYNTAX_BUILTIN},{"RDSamplerState", SYNTAX_BUILTIN},{"RDShaderFile", SYNTAX_BUILTIN},{"RDShaderSPIRV", SYNTAX_BUILTIN},{"RDShaderSource", SYNTAX_BUILTIN},{"RDTextureFormat", SYNTAX_BUILTIN},{"RDTextureView", SYNTAX_BUILTIN},{"RDUniform", SYNTAX_BUILTIN},{"RDVertexAttribute", SYNTAX_BUILTIN},{"RID", SYNTAX_BUILTIN},{"RandomNumberGenerator", SYNTAX_BUILTIN},{"Range", SYNTAX_BUILTIN},{"RayCast2D", SYNTAX_BUILTIN},{"RayCast3D", SYNTAX_BUILTIN},{"Rect2", SYNTAX_BUILTIN},{"Rect2i", SYNTAX_BUILTIN},{"RectangleShape2D", SYNTAX_BUILTIN},{"RefCounted", SYNTAX_BUILTIN},{"ReferenceRect", SYNTAX_BUILTIN},{"ReflectionProbe", SYNTAX_BUILTIN},{"RegEx", SYNTAX_BUILTIN},{"RegExMatch", SYNTAX_BUILTIN},{"RemoteTransform2D", SYNTAX_BUILTIN},{"RemoteTransform3D", SYNTAX_BUILTIN},{"RenderingDevice", SYNTAX_BUILTIN},{"RenderingServer", SYNTAX_BUILTIN},{"Resource", SYNTAX_BUILTIN},{"ResourceFormatLoader", SYNTAX_BUILTIN},{"ResourceFormatSaver", SYNTAX_BUILTIN},{"ResourceImporter", SYNTAX_BUILTIN},{"ResourceLoader", SYNTAX_BUILTIN},{"ResourcePreloader", SYNTAX_BUILTIN},{"ResourceSaver", SYNTAX_BUILTIN},{"ResourceUID", SYNTAX_BUILTIN},{"RibbonTrailMesh", SYNTAX_BUILTIN},{"RichTextEffect", SYNTAX_BUILTIN},{"RichTextLabel", SYNTAX_BUILTIN},{"RigidBody2D", SYNTAX_BUILTIN},{"RigidBody3D", SYNTAX_BUILTIN},{"RootMotionView", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_S[81] = {{"SceneMultiplayer", SYNTAX_BUILTIN},{"SceneReplicationConfig", SYNTAX_BUILTIN},{"SceneState", SYNTAX_BUILTIN},{"SceneTree", SYNTAX_BUILTIN},{"SceneTreeTimer", SYNTAX_BUILTIN},{"Script", SYNTAX_BUILTIN},{"ScriptCreateDialog", SYNTAX_BUILTIN},{"ScriptEditor", SYNTAX_BUILTIN},{"ScriptEditorBase", SYNTAX_BUILTIN},{"ScriptExtension", SYNTAX_BUILTIN},{"ScriptLanguage", SYNTAX_BUILTIN},{"ScriptLanguageExtension", SYNTAX_BUILTIN},{"ScrollBar", SYNTAX_BUILTIN},{"ScrollContainer", SYNTAX_BUILTIN},{"SegmentShape2D", SYNTAX_BUILTIN},{"Semaphore", SYNTAX_BUILTIN},{"SeparationRayShape2D", SYNTAX_BUILTIN},{"SeparationRayShape3D", SYNTAX_BUILTIN},{"Separator", SYNTAX_BUILTIN},{"Shader", SYNTAX_BUILTIN},{"ShaderGlobalsOverride", SYNTAX_BUILTIN},{"ShaderInclude", SYNTAX_BUILTIN},{"ShaderMaterial", SYNTAX_BUILTIN},{"Shape2D", SYNTAX_BUILTIN},{"Shape3D", SYNTAX_BUILTIN},{"ShapeCast2D", SYNTAX_BUILTIN},{"ShapeCast3D", SYNTAX_BUILTIN},{"Shortcut", SYNTAX_BUILTIN},{"Signal", SYNTAX_BUILTIN},{"Skeleton2D", SYNTAX_BUILTIN},{"Skeleton3D", SYNTAX_BUILTIN},{"SkeletonIK3D", SYNTAX_BUILTIN},{"SkeletonModification2D", SYNTAX_BUILTIN},{"SkeletonModification2DCCDIK", SYNTAX_BUILTIN},{"SkeletonModification2DFABRIK", SYNTAX_BUILTIN},{"SkeletonModification2DJiggle", SYNTAX_BUILTIN},{"SkeletonModification2DLookAt", SYNTAX_BUILTIN},{"SkeletonModification2DPhysicalBones", SYNTAX_BUILTIN},{"SkeletonModification2DStackHolder", SYNTAX_BUILTIN},{"SkeletonModification2DTwoBoneIK", SYNTAX_BUILTIN},{"SkeletonModificationStack2D", SYNTAX_BUILTIN},{"SkeletonProfile", SYNTAX_BUILTIN},{"SkeletonProfileHumanoid", SYNTAX_BUILTIN},{"Skin", SYNTAX_BUILTIN},{"SkinReference", SYNTAX_BUILTIN},{"Sky", SYNTAX_BUILTIN},{"Slider", SYNTAX_BUILTIN},{"SliderJoint3D", SYNTAX_BUILTIN},{"SoftBody3D", SYNTAX_BUILTIN},{"SphereMesh", SYNTAX_BUILTIN},{"SphereOccluder3D", SYNTAX_BUILTIN},{"SphereShape3D", SYNTAX_BUILTIN},{"SpinBox", SYNTAX_BUILTIN},{"SplitContainer", SYNTAX_BUILTIN},{"SpotLight3D", SYNTAX_BUILTIN},{"SpringArm3D", SYNTAX_BUILTIN},{"Sprite2D", SYNTAX_BUILTIN},{"Sprite3D", SYNTAX_BUILTIN},{"SpriteBase3D", SYNTAX_BUILTIN},{"SpriteFrames", SYNTAX_BUILTIN},{"StandardMaterial3D", SYNTAX_BUILTIN},{"StaticBody2D", SYNTAX_BUILTIN},{"StaticBody3D", SYNTAX_BUILTIN},{"StreamPeer", SYNTAX_BUILTIN},{"StreamPeerBuffer", SYNTAX_BUILTIN},{"StreamPeerExtension", SYNTAX_BUILTIN},{"StreamPeerGZIP", SYNTAX_BUILTIN},{"StreamPeerTCP", SYNTAX_BUILTIN},{"StreamPeerTLS", SYNTAX_BUILTIN},{"String", SYNTAX_BUILTIN},{"StringName", SYNTAX_BUILTIN},{"StyleBox", SYNTAX_BUILTIN},{"StyleBoxEmpty", SYNTAX_BUILTIN},{"StyleBoxFlat", SYNTAX_BUILTIN},{"StyleBoxLine", SYNTAX_BUILTIN},{"StyleBoxTexture", SYNTAX_BUILTIN},{"SubViewport", SYNTAX_BUILTIN},{"SubViewportContainer", SYNTAX_BUILTIN},{"SurfaceTool", SYNTAX_BUILTIN},{"SyntaxHighlighter", SYNTAX_BUILTIN},{"SystemFont", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_T[47] = {{"TAU", SYNTAX_CONSTANT},{"TCPServer", SYNTAX_BUILTIN},{"TLSOptions", SYNTAX_BUILTIN},{"TabBar", SYNTAX_BUILTIN},{"TabContainer", SYNTAX_BUILTIN},{"TextEdit", SYNTAX_BUILTIN},{"TextLine", SYNTAX_BUILTIN},{"TextMesh", SYNTAX_BUILTIN},{"TextParagraph", SYNTAX_BUILTIN},{"TextServer", SYNTAX_BUILTIN},{"TextServerAdvanced", SYNTAX_BUILTIN},{"TextServerDummy", SYNTAX_BUILTIN},{"TextServerExtension", SYNTAX_BUILTIN},{"TextServerFallback", SYNTAX_BUILTIN},{"TextServerManager", SYNTAX_BUILTIN},{"Texture", SYNTAX_BUILTIN},{"Texture2D", SYNTAX_BUILTIN},{"Texture2DArray", SYNTAX_BUILTIN},{"Texture3D", SYNTAX_BUILTIN},{"TextureButton", SYNTAX_BUILTIN},{"TextureLayered", SYNTAX_BUILTIN},{"TextureProgressBar", SYNTAX_BUILTIN},{"TextureRect", SYNTAX_BUILTIN},{"Theme", SYNTAX_BUILTIN},{"ThemeDB", SYNTAX_BUILTIN},{"Thread", SYNTAX_BUILTIN},{"TileData", SYNTAX_BUILTIN},{"TileMap", SYNTAX_BUILTIN},{"TileMapPattern", SYNTAX_BUILTIN},{"TileSet", SYNTAX_BUILTIN},{"TileSetAtlasSource", SYNTAX_BUILTIN},{"TileSetScenesCollectionSource", SYNTAX_BUILTIN},{"TileSetSource", SYNTAX_BUILTIN},{"Time", SYNTAX_BUILTIN},{"Timer", SYNTAX_BUILTIN},{"TorusMesh", SYNTAX_BUILTIN},{"TouchScreenButton", SYNTAX_BUILTIN},{"Transform2D", SYNTAX_BUILTIN},{"Transform3D", SYNTAX_BUILTIN},{"Translation", SYNTAX_BUILTIN},{"TranslationServer", SYNTAX_BUILTIN},{"Tree", SYNTAX_BUILTIN},{"TreeItem", SYNTAX_BUILTIN},{"TriangleMesh", SYNTAX_BUILTIN},{"TubeTrailMesh", SYNTAX_BUILTIN},{"Tween", SYNTAX_BUILTIN},{"Tweener", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_U[4] = {{"UDPServer", SYNTAX_BUILTIN},{"UPNP", SYNTAX_BUILTIN},{"UPNPDevice", SYNTAX_BUILTIN},{"UndoRedo", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_V[135] = {{"VBoxContainer", SYNTAX_BUILTIN},{"VFlowContainer", SYNTAX_BUILTIN},{"VScrollBar", SYNTAX_BUILTIN},{"VSeparator", SYNTAX_BUILTIN},{"VSlider", SYNTAX_BUILTIN},{"VSplitContainer", SYNTAX_BUILTIN},{"Variant", SYNTAX_BUILTIN},{"Vector2", SYNTAX_BUILTIN},{"Vector2i", SYNTAX_BUILTIN},{"Vector3", SYNTAX_BUILTIN},{"Vector3i", SYNTAX_BUILTIN},{"Vector4", SYNTAX_BUILTIN},{"Vector4i", SYNTAX_BUILTIN},{"VehicleBody3D", SYNTAX_BUILTIN},{"VehicleWheel3D", SYNTAX_BUILTIN},{"VideoStream", SYNTAX_BUILTIN},{"VideoStreamPlayback", SYNTAX_BUILTIN},{"VideoStreamPlayer", SYNTAX_BUILTIN},{"VideoStreamTheora", SYNTAX_BUILTIN},{"Viewport", SYNTAX_BUILTIN},{"ViewportTexture", SYNTAX_BUILTIN},{"VisibleOnScreenEnabler2D", SYNTAX_BUILTIN},{"VisibleOnScreenEnabler3D", SYNTAX_BUILTIN},{"VisibleOnScreenNotifier2D", SYNTAX_BUILTIN},{"VisibleOnScreenNotifier3D", SYNTAX_BUILTIN},{"VisualInstance3D", SYNTAX_BUILTIN},{"VisualShader", SYNTAX_BUILTIN},{"VisualShaderNode", SYNTAX_BUILTIN},{"VisualShaderNodeBillboard", SYNTAX_BUILTIN},{"VisualShaderNodeBooleanConstant", SYNTAX_BUILTIN},{"VisualShaderNodeBooleanParameter", SYNTAX_BUILTIN},{"VisualShaderNodeClamp", SYNTAX_BUILTIN},{"VisualShaderNodeColorConstant", SYNTAX_BUILTIN},{"VisualShaderNodeColorFunc", SYNTAX_BUILTIN},{"VisualShaderNodeColorOp", SYNTAX_BUILTIN},{"VisualShaderNodeColorParameter", SYNTAX_BUILTIN},{"VisualShaderNodeComment", SYNTAX_BUILTIN},{"VisualShaderNodeCompare", SYNTAX_BUILTIN},{"VisualShaderNodeConstant", SYNTAX_BUILTIN},{"VisualShaderNodeCubemap", SYNTAX_BUILTIN},{"VisualShaderNodeCubemapParameter", SYNTAX_BUILTIN},{"VisualShaderNodeCurveTexture", SYNTAX_BUILTIN},{"VisualShaderNodeCurveXYZTexture", SYNTAX_BUILTIN},{"VisualShaderNodeCustom", SYNTAX_BUILTIN},{"VisualShaderNodeDerivativeFunc", SYNTAX_BUILTIN},{"VisualShaderNodeDeterminant", SYNTAX_BUILTIN},{"VisualShaderNodeDistanceFade", SYNTAX_BUILTIN},{"VisualShaderNodeDotProduct", SYNTAX_BUILTIN},{"VisualShaderNodeExpression", SYNTAX_BUILTIN},{"VisualShaderNodeFaceForward", SYNTAX_BUILTIN},{"VisualShaderNodeFloatConstant", SYNTAX_BUILTIN},{"VisualShaderNodeFloatFunc", SYNTAX_BUILTIN},{"VisualShaderNodeFloatOp", SYNTAX_BUILTIN},{"VisualShaderNodeFloatParameter", SYNTAX_BUILTIN},{"VisualShaderNodeFresnel", SYNTAX_BUILTIN},{"VisualShaderNodeGlobalExpression", SYNTAX_BUILTIN},{"VisualShaderNodeGroupBase", SYNTAX_BUILTIN},{"VisualShaderNodeIf", SYNTAX_BUILTIN},{"VisualShaderNodeInput", SYNTAX_BUILTIN},{"VisualShaderNodeIntConstant", SYNTAX_BUILTIN},{"VisualShaderNodeIntFunc", SYNTAX_BUILTIN},{"VisualShaderNodeIntOp", SYNTAX_BUILTIN},{"VisualShaderNodeIntParameter", SYNTAX_BUILTIN},{"VisualShaderNodeIs", SYNTAX_BUILTIN},{"VisualShaderNodeLinearSceneDepth", SYNTAX_BUILTIN},{"VisualShaderNodeMix", SYNTAX_BUILTIN},{"VisualShaderNodeMultiplyAdd", SYNTAX_BUILTIN},{"VisualShaderNodeOuterProduct", SYNTAX_BUILTIN},{"VisualShaderNodeOutput", SYNTAX_BUILTIN},{"VisualShaderNodeParameter", SYNTAX_BUILTIN},{"VisualShaderNodeParameterRef", SYNTAX_BUILTIN},{"VisualShaderNodeParticleAccelerator", SYNTAX_BUILTIN},{"VisualShaderNodeParticleBoxEmitter", SYNTAX_BUILTIN},{"VisualShaderNodeParticleConeVelocity", SYNTAX_BUILTIN},{"VisualShaderNodeParticleEmit", SYNTAX_BUILTIN},{"VisualShaderNodeParticleEmitter", SYNTAX_BUILTIN},{"VisualShaderNodeParticleMeshEmitter", SYNTAX_BUILTIN},{"VisualShaderNodeParticleMultiplyByAxisAngle", SYNTAX_BUILTIN},{"VisualShaderNodeParticleOutput", SYNTAX_BUILTIN},{"VisualShaderNodeParticleRandomness", SYNTAX_BUILTIN},{"VisualShaderNodeParticleRingEmitter", SYNTAX_BUILTIN},{"VisualShaderNodeParticleSphereEmitter", SYNTAX_BUILTIN},{"VisualShaderNodeProximityFade", SYNTAX_BUILTIN},{"VisualShaderNodeRandomRange", SYNTAX_BUILTIN},{"VisualShaderNodeRemap", SYNTAX_BUILTIN},{"VisualShaderNodeResizableBase", SYNTAX_BUILTIN},{"VisualShaderNodeSDFRaymarch", SYNTAX_BUILTIN},{"VisualShaderNodeSDFToScreenUV", SYNTAX_BUILTIN},{"VisualShaderNodeSample3D", SYNTAX_BUILTIN},{"VisualShaderNodeScreenUVToSDF", SYNTAX_BUILTIN},{"VisualShaderNodeSmoothStep", SYNTAX_BUILTIN},{"VisualShaderNodeStep", SYNTAX_BUILTIN},{"VisualShaderNodeSwitch", SYNTAX_BUILTIN},{"VisualShaderNodeTexture", SYNTAX_BUILTIN},{"VisualShaderNodeTexture2DArray", SYNTAX_BUILTIN},{"VisualShaderNodeTexture2DArrayParameter", SYNTAX_BUILTIN},{"VisualShaderNodeTexture2DParameter", SYNTAX_BUILTIN},{"VisualShaderNodeTexture3D", SYNTAX_BUILTIN},{"VisualShaderNodeTexture3DParameter", SYNTAX_BUILTIN},{"VisualShaderNodeTextureParameter", SYNTAX_BUILTIN},{"VisualShaderNodeTextureParameterTriplanar", SYNTAX_BUILTIN},{"VisualShaderNodeTextureSDF", SYNTAX_BUILTIN},{"VisualShaderNodeTextureSDFNormal", SYNTAX_BUILTIN},{"VisualShaderNodeTransformCompose", SYNTAX_BUILTIN},{"VisualShaderNodeTransformConstant", SYNTAX_BUILTIN},{"VisualShaderNodeTransformDecompose", SYNTAX_BUILTIN},{"VisualShaderNodeTransformFunc", SYNTAX_BUILTIN},{"VisualShaderNodeTransformOp", SYNTAX_BUILTIN},{"VisualShaderNodeTransformParameter", SYNTAX_BUILTIN},{"VisualShaderNodeTransformVecMult", SYNTAX_BUILTIN},{"VisualShaderNodeUIntConstant", SYNTAX_BUILTIN},{"VisualShaderNodeUIntFunc", SYNTAX_BUILTIN},{"VisualShaderNodeUIntOp", SYNTAX_BUILTIN},{"VisualShaderNodeUIntParameter", SYNTAX_BUILTIN},{"VisualShaderNodeUVFunc", SYNTAX_BUILTIN},{"VisualShaderNodeUVPolarCoord", SYNTAX_BUILTIN},{"VisualShaderNodeVarying", SYNTAX_BUILTIN},{"VisualShaderNodeVaryingGetter", SYNTAX_BUILTIN},{"VisualShaderNodeVaryingSetter", SYNTAX_BUILTIN},{"VisualShaderNodeVec2Constant", SYNTAX_BUILTIN},{"VisualShaderNodeVec2Parameter", SYNTAX_BUILTIN},{"VisualShaderNodeVec3Constant", SYNTAX_BUILTIN},{"VisualShaderNodeVec3Parameter", SYNTAX_BUILTIN},{"VisualShaderNodeVec4Constant", SYNTAX_BUILTIN},{"VisualShaderNodeVec4Parameter", SYNTAX_BUILTIN},{"VisualShaderNodeVectorBase", SYNTAX_BUILTIN},{"VisualShaderNodeVectorCompose", SYNTAX_BUILTIN},{"VisualShaderNodeVectorDecompose", SYNTAX_BUILTIN},{"VisualShaderNodeVectorDistance", SYNTAX_BUILTIN},{"VisualShaderNodeVectorFunc", SYNTAX_BUILTIN},{"VisualShaderNodeVectorLen", SYNTAX_BUILTIN},{"VisualShaderNodeVectorOp", SYNTAX_BUILTIN},{"VisualShaderNodeVectorRefract", SYNTAX_BUILTIN},{"VoxelGI", SYNTAX_BUILTIN},{"VoxelGIData", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_W[16] = {{"WeakRef", SYNTAX_BUILTIN},{"WebRTCDataChannel", SYNTAX_BUILTIN},{"WebRTCDataChannelExtension", SYNTAX_BUILTIN},{"WebRTCMultiplayerPeer", SYNTAX_BUILTIN},{"WebRTCPeerConnection", SYNTAX_BUILTIN},{"WebRTCPeerConnectionExtension", SYNTAX_BUILTIN},{"WebSocketMultiplayerPeer", SYNTAX_BUILTIN},{"WebSocketPeer", SYNTAX_BUILTIN},{"WebXRInterface", SYNTAX_BUILTIN},{"Window", SYNTAX_BUILTIN},{"WorkerThreadPool", SYNTAX_BUILTIN},{"World2D", SYNTAX_BUILTIN},{"World3D", SYNTAX_BUILTIN},{"WorldBoundaryShape2D", SYNTAX_BUILTIN},{"WorldBoundaryShape3D", SYNTAX_BUILTIN},{"WorldEnvironment", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_X[12] = {{"X509Certificate", SYNTAX_BUILTIN},{"XMLParser", SYNTAX_BUILTIN},{"XRAnchor3D", SYNTAX_BUILTIN},{"XRCamera3D", SYNTAX_BUILTIN},{"XRController3D", SYNTAX_BUILTIN},{"XRInterface", SYNTAX_BUILTIN},{"XRInterfaceExtension", SYNTAX_BUILTIN},{"XRNode3D", SYNTAX_BUILTIN},{"XROrigin3D", SYNTAX_BUILTIN},{"XRPose", SYNTAX_BUILTIN},{"XRPositionalTracker", SYNTAX_BUILTIN},{"XRServer", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_Z[2] = {{"ZIPPacker", SYNTAX_BUILTIN},{"ZIPReader", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_a[10] = {{"abs", SYNTAX_BUILTIN},{"absf", SYNTAX_BUILTIN},{"absi", SYNTAX_BUILTIN},{"acos", SYNTAX_BUILTIN},{"as", SYNTAX_KEYWORD},{"asin", SYNTAX_BUILTIN},{"assert", SYNTAX_KEYWORD},{"atan", SYNTAX_BUILTIN},{"atan2", SYNTAX_BUILTIN},{"await", SYNTAX_KEYWORD}};
+static const Keyword syntax_keywords_gdscript_b[7] = {{"bezier_derivative", SYNTAX_BUILTIN},{"bezier_interpolate", SYNTAX_BUILTIN},{"bool", SYNTAX_BUILTIN},{"break", SYNTAX_KEYWORD},{"breakpoint", SYNTAX_KEYWORD},{"bytes_to_var", SYNTAX_BUILTIN},{"bytes_to_var_with_objects", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_c[16] = {{"ceil", SYNTAX_BUILTIN},{"ceilf", SYNTAX_BUILTIN},{"ceili", SYNTAX_BUILTIN},{"clamp", SYNTAX_BUILTIN},{"clampf", SYNTAX_BUILTIN},{"clampi", SYNTAX_BUILTIN},{"class", SYNTAX_KEYWORD},{"class_name", SYNTAX_KEYWORD},{"const", SYNTAX_KEYWORD},{"continue", SYNTAX_KEYWORD},{"cos", SYNTAX_BUILTIN},{"cosh", SYNTAX_BUILTIN},{"cubic_interpolate", SYNTAX_BUILTIN},{"cubic_interpolate_angle", SYNTAX_BUILTIN},{"cubic_interpolate_angle_in_time", SYNTAX_BUILTIN},{"cubic_interpolate_in_time", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_d[2] = {{"db_to_linear", SYNTAX_BUILTIN},{"deg_to_rad", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_e[7] = {{"ease", SYNTAX_BUILTIN},{"elif", SYNTAX_KEYWORD},{"else", SYNTAX_KEYWORD},{"enum", SYNTAX_KEYWORD},{"error_string", SYNTAX_BUILTIN},{"exp", SYNTAX_BUILTIN},{"extends", SYNTAX_KEYWORD}};
+static const Keyword syntax_keywords_gdscript_f[9] = {{"false", SYNTAX_CONSTANT},{"float", SYNTAX_BUILTIN},{"floor", SYNTAX_BUILTIN},{"floorf", SYNTAX_BUILTIN},{"floori", SYNTAX_BUILTIN},{"fmod", SYNTAX_BUILTIN},{"for", SYNTAX_KEYWORD},{"fposmod", SYNTAX_BUILTIN},{"func", SYNTAX_KEYWORD}};
+static const Keyword syntax_keywords_gdscript_h[1] = {{"hash", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_i[14] = {{"if", SYNTAX_KEYWORD},{"in", SYNTAX_KEYWORD},{"instance_from_id", SYNTAX_BUILTIN},{"int", SYNTAX_BUILTIN},{"inverse_lerp", SYNTAX_BUILTIN},{"is", SYNTAX_KEYWORD},{"is_equal_approx", SYNTAX_BUILTIN},{"is_finite", SYNTAX_BUILTIN},{"is_inf", SYNTAX_BUILTIN},{"is_instance_id_valid", SYNTAX_BUILTIN},{"is_instance_valid", SYNTAX_BUILTIN},{"is_nan", SYNTAX_BUILTIN},{"is_same", SYNTAX_BUILTIN},{"is_zero_approx", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_l[5] = {{"lerp", SYNTAX_BUILTIN},{"lerp_angle", SYNTAX_BUILTIN},{"lerpf", SYNTAX_BUILTIN},{"linear_to_db", SYNTAX_BUILTIN},{"log", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_m[8] = {{"match", SYNTAX_KEYWORD},{"max", SYNTAX_BUILTIN},{"maxf", SYNTAX_BUILTIN},{"maxi", SYNTAX_BUILTIN},{"min", SYNTAX_BUILTIN},{"minf", SYNTAX_BUILTIN},{"mini", SYNTAX_BUILTIN},{"move_toward", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_n[2] = {{"nearest_po2", SYNTAX_BUILTIN},{"null", SYNTAX_CONSTANT}};
+static const Keyword syntax_keywords_gdscript_p[14] = {{"pass", SYNTAX_KEYWORD},{"pingpong", SYNTAX_BUILTIN},{"posmod", SYNTAX_BUILTIN},{"pow", SYNTAX_BUILTIN},{"preload", SYNTAX_KEYWORD},{"print", SYNTAX_BUILTIN},{"print_rich", SYNTAX_BUILTIN},{"print_verbose", SYNTAX_BUILTIN},{"printerr", SYNTAX_BUILTIN},{"printraw", SYNTAX_BUILTIN},{"prints", SYNTAX_BUILTIN},{"printt", SYNTAX_BUILTIN},{"push_error", SYNTAX_BUILTIN},{"push_warning", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_r[15] = {{"rad_to_deg", SYNTAX_BUILTIN},{"rand_from_seed", SYNTAX_BUILTIN},{"randf", SYNTAX_BUILTIN},{"randf_range", SYNTAX_BUILTIN},{"randfn", SYNTAX_BUILTIN},{"randi", SYNTAX_BUILTIN},{"randi_range", SYNTAX_BUILTIN},{"randomize", SYNTAX_BUILTIN},{"remap", SYNTAX_BUILTIN},{"return", SYNTAX_KEYWORD},{"rid_allocate_id", SYNTAX_BUILTIN},{"rid_from_int64", SYNTAX_BUILTIN},{"round", SYNTAX_BUILTIN},{"roundf", SYNTAX_BUILTIN},{"roundi", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_s[17] = {{"seed", SYNTAX_BUILTIN},{"self", SYNTAX_KEYWORD},{"sign", SYNTAX_BUILTIN},{"signal", SYNTAX_KEYWORD},{"signf", SYNTAX_BUILTIN},{"signi", SYNTAX_BUILTIN},{"sin", SYNTAX_BUILTIN},{"sinh", SYNTAX_BUILTIN},{"smoothstep", SYNTAX_BUILTIN},{"snapped", SYNTAX_BUILTIN},{"snappedf", SYNTAX_BUILTIN},{"snappedi", SYNTAX_BUILTIN},{"sqrt", SYNTAX_BUILTIN},{"static", SYNTAX_KEYWORD},{"step_decimals", SYNTAX_BUILTIN},{"str", SYNTAX_BUILTIN},{"str_to_var", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_t[4] = {{"tan", SYNTAX_BUILTIN},{"tanh", SYNTAX_BUILTIN},{"true", SYNTAX_CONSTANT},{"typeof", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_v[5] = {{"var", SYNTAX_KEYWORD},{"var_to_bytes", SYNTAX_BUILTIN},{"var_to_bytes_with_objects", SYNTAX_BUILTIN},{"var_to_str", SYNTAX_BUILTIN},{"void", SYNTAX_KEYWORD}};
+static const Keyword syntax_keywords_gdscript_w[5] = {{"weakref", SYNTAX_BUILTIN},{"while", SYNTAX_KEYWORD},{"wrap", SYNTAX_BUILTIN},{"wrapf", SYNTAX_BUILTIN},{"wrapi", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_gdscript_y[1] = {{"yield", SYNTAX_KEYWORD}};
+static const KeywordList syntax_all_keywords_gdscript[128] = {
+ ['A'] = {syntax_keywords_gdscript_A, arr_count(syntax_keywords_gdscript_A)}, ['B'] = {syntax_keywords_gdscript_B, arr_count(syntax_keywords_gdscript_B)}, ['C'] = {syntax_keywords_gdscript_C, arr_count(syntax_keywords_gdscript_C)}, ['D'] = {syntax_keywords_gdscript_D, arr_count(syntax_keywords_gdscript_D)}, ['E'] = {syntax_keywords_gdscript_E, arr_count(syntax_keywords_gdscript_E)}, ['F'] = {syntax_keywords_gdscript_F, arr_count(syntax_keywords_gdscript_F)}, ['G'] = {syntax_keywords_gdscript_G, arr_count(syntax_keywords_gdscript_G)}, ['H'] = {syntax_keywords_gdscript_H, arr_count(syntax_keywords_gdscript_H)}, ['I'] = {syntax_keywords_gdscript_I, arr_count(syntax_keywords_gdscript_I)}, ['J'] = {syntax_keywords_gdscript_J, arr_count(syntax_keywords_gdscript_J)}, ['K'] = {syntax_keywords_gdscript_K, arr_count(syntax_keywords_gdscript_K)}, ['L'] = {syntax_keywords_gdscript_L, arr_count(syntax_keywords_gdscript_L)}, ['M'] = {syntax_keywords_gdscript_M, arr_count(syntax_keywords_gdscript_M)}, ['N'] = {syntax_keywords_gdscript_N, arr_count(syntax_keywords_gdscript_N)}, ['O'] = {syntax_keywords_gdscript_O, arr_count(syntax_keywords_gdscript_O)}, ['P'] = {syntax_keywords_gdscript_P, arr_count(syntax_keywords_gdscript_P)}, ['Q'] = {syntax_keywords_gdscript_Q, arr_count(syntax_keywords_gdscript_Q)}, ['R'] = {syntax_keywords_gdscript_R, arr_count(syntax_keywords_gdscript_R)}, ['S'] = {syntax_keywords_gdscript_S, arr_count(syntax_keywords_gdscript_S)}, ['T'] = {syntax_keywords_gdscript_T, arr_count(syntax_keywords_gdscript_T)}, ['U'] = {syntax_keywords_gdscript_U, arr_count(syntax_keywords_gdscript_U)}, ['V'] = {syntax_keywords_gdscript_V, arr_count(syntax_keywords_gdscript_V)}, ['W'] = {syntax_keywords_gdscript_W, arr_count(syntax_keywords_gdscript_W)}, ['X'] = {syntax_keywords_gdscript_X, arr_count(syntax_keywords_gdscript_X)}, ['Z'] = {syntax_keywords_gdscript_Z, arr_count(syntax_keywords_gdscript_Z)}, ['a'] = {syntax_keywords_gdscript_a, arr_count(syntax_keywords_gdscript_a)}, ['b'] = {syntax_keywords_gdscript_b, arr_count(syntax_keywords_gdscript_b)}, ['c'] = {syntax_keywords_gdscript_c, arr_count(syntax_keywords_gdscript_c)}, ['d'] = {syntax_keywords_gdscript_d, arr_count(syntax_keywords_gdscript_d)}, ['e'] = {syntax_keywords_gdscript_e, arr_count(syntax_keywords_gdscript_e)}, ['f'] = {syntax_keywords_gdscript_f, arr_count(syntax_keywords_gdscript_f)}, ['h'] = {syntax_keywords_gdscript_h, arr_count(syntax_keywords_gdscript_h)}, ['i'] = {syntax_keywords_gdscript_i, arr_count(syntax_keywords_gdscript_i)}, ['l'] = {syntax_keywords_gdscript_l, arr_count(syntax_keywords_gdscript_l)}, ['m'] = {syntax_keywords_gdscript_m, arr_count(syntax_keywords_gdscript_m)}, ['n'] = {syntax_keywords_gdscript_n, arr_count(syntax_keywords_gdscript_n)}, ['p'] = {syntax_keywords_gdscript_p, arr_count(syntax_keywords_gdscript_p)}, ['r'] = {syntax_keywords_gdscript_r, arr_count(syntax_keywords_gdscript_r)}, ['s'] = {syntax_keywords_gdscript_s, arr_count(syntax_keywords_gdscript_s)}, ['t'] = {syntax_keywords_gdscript_t, arr_count(syntax_keywords_gdscript_t)}, ['v'] = {syntax_keywords_gdscript_v, arr_count(syntax_keywords_gdscript_v)}, ['w'] = {syntax_keywords_gdscript_w, arr_count(syntax_keywords_gdscript_w)}, ['y'] = {syntax_keywords_gdscript_y, arr_count(syntax_keywords_gdscript_y)}
+};
+
static const Keyword syntax_keywords_comment_B[1] = {{"BUG", SYNTAX_TODO}};
static const Keyword syntax_keywords_comment_F[1] = {{"FIXME", SYNTAX_TODO}};
static const Keyword syntax_keywords_comment_O[1] = {{"OPTIMIZE", SYNTAX_TODO}};
diff --git a/keywords.py b/keywords.py
index 4ec4eba..1a0f831 100755
--- a/keywords.py
+++ b/keywords.py
@@ -2,10 +2,6 @@
# creates lists of keywords for all languages
# to make keyword lookup more efficient, the lists are split up by their first letter
-# (or by their first codepoint, modulo 128, although no language I know of has non-ASCII keywords)
-# (probably APL but i hope no one is using APL)
-
-import ast
types = [
'SYNTAX_KEYWORD', 'SYNTAX_CONSTANT', 'SYNTAX_BUILTIN',
@@ -14,36 +10,36 @@ types = [
exec('\n'.join(['{} = {}'.format(type, i) for (i, type) in enumerate(types)]))
def process_keywords(keywords):
- keyword_types = {}
- for (type,kwd) in keywords:
- if kwd in keyword_types:
- print('repeated keyword:', kwd)
- keyword_types[kwd] = type
-
- keywords_by_c = {}
- for (type,kwd) in keywords:
- c = kwd[0]
- if c in keywords_by_c:
- keywords_by_c[c].append((kwd, type))
- else:
- keywords_by_c[c] = [(kwd, type)]
- return keywords_by_c
-
+ keyword_types = {}
+ for (type,kwd) in keywords:
+ if kwd in keyword_types:
+ print('repeated keyword:', kwd)
+ keyword_types[kwd] = type
+
+ keywords_by_c = {}
+ for (type,kwd) in keywords:
+ c = kwd[0]
+ if c in keywords_by_c:
+ keywords_by_c[c].append((kwd, type))
+ else:
+ keywords_by_c[c] = [(kwd, type)]
+ return keywords_by_c
+
def output_keywords(file, keywords, language):
- keywords = process_keywords(keywords)
- def escape(c):
- if c.isalpha():
- return c
- else:
- return 'x{:x}'.format(ord(c))
- for (c, kwds) in sorted(keywords.items()):
- kwds = list(sorted(kwds))
- file.write('static const Keyword syntax_keywords_{}_{}[{}] = {{'.format(language, escape(c), len(kwds)))
- file.write(','.join(map(lambda kwd: '{"'+kwd[0]+'", ' + types[kwd[1]] + '}', kwds)) + '};\n')
- file.write('static const KeywordList syntax_all_keywords_{}[128] = {{\n'.format(language))
- file.write('\t'+', '.join(["['{}'] = {{syntax_keywords_{}_{}, arr_count(syntax_keywords_{}_{})}}".format(
- c, language, escape(c), language, escape(c)) for c in sorted(keywords.keys())]) + '\n')
- file.write('};\n\n')
+ keywords = process_keywords(keywords)
+ def escape(c):
+ if c.isalpha():
+ return c
+ else:
+ return 'x{:x}'.format(ord(c))
+ for (c, kwds) in sorted(keywords.items()):
+ kwds = list(sorted(kwds))
+ file.write('static const Keyword syntax_keywords_{}_{}[{}] = {{'.format(language, escape(c), len(kwds)))
+ file.write(','.join(map(lambda kwd: '{"'+kwd[0]+'", ' + types[kwd[1]] + '}', kwds)) + '};\n')
+ file.write('static const KeywordList syntax_all_keywords_{}[128] = {{\n'.format(language))
+ file.write('\t'+', '.join(["['{}'] = {{syntax_keywords_{}_{}, arr_count(syntax_keywords_{}_{})}}".format(
+ c, language, escape(c), language, escape(c)) for c in sorted(keywords.keys())]) + '\n')
+ file.write('};\n\n')
def cant_overlap(*args):
for i in range(len(args)):
@@ -52,93 +48,93 @@ def cant_overlap(*args):
if intersection:
raise ValueError("Argument {} intersects with {}: {}".format(i, j, intersection))
-constants_c = ['CHAR_BIT', 'CHAR_MAX', 'CHAR_MIN', 'DBL_DIG', 'DBL_EPSILON', 'DBL_HAS_SUBNORM', 'DBL_MANT_DIG', 'DBL_MAX',
- 'DBL_MAX_10_EXP', 'DBL_MAX_EXP', 'DBL_MIN', 'DBL_MIN_EXP', 'DBL_TRUE_MIN', 'DECIMAL_DIG', 'EXIT_FAILURE', 'EXIT_SUCCESS',
- 'FLT_DECIMAL_DIG', 'FLT_DIG', 'FLT_EVAL_METHOD', 'FLT_HAS_SUBNORM', 'FLT_MANT_DIG', 'FLT_MAX', 'FLT_MAX_10_EXP', 'FLT_MAX_EXP',
- 'FLT_MIN', 'FLT_MIN_10_EXP', 'FLT_MIN_EXP', 'FLT_RADIX', 'FLT_ROUNDS', 'FLT_TRUE_MIN', 'INT16_MAX', 'INT16_MIN',
- 'INT32_MAX', 'INT32_MIN', 'INT64_MAX', 'INT64_MIN', 'INT8_MAX', 'INT8_MIN', 'INTMAX_MAX', 'INTMAX_MIN',
- 'INTPTR_MAX', 'INTPTR_MIN', 'INT_FAST16_MAX', 'INT_FAST16_MIN', 'INT_FAST32_MAX', 'INT_FAST32_MIN', 'INT_FAST64_MAX', 'INT_FAST64_MIN',
- 'INT_FAST8_MAX', 'INT_FAST8_MIN', 'INT_LEAST16_MAX', 'INT_LEAST16_MIN', 'INT_LEAST32_MAX', 'INT_LEAST32_MIN', 'INT_LEAST64_MAX', 'INT_LEAST64_MIN',
- 'INT_LEAST8_MAX', 'INT_LEAST8_MIN', 'INT_MAX', 'INT_MIN', 'LDBL_DECIMAL_DIG', 'LDBL_DIG', 'LDBL_EPSILON', 'LDBL_MANT_DIG',
- 'LDBL_MAX', 'LDBL_MAX_10_EXP', 'LDBL_MAX_EXP', 'LDBL_MIN', 'LDBL_MIN_10_EXP', 'LDBL_MIN_EXP', 'LDBL_TRUE_MIN', 'LLONG_MAX',
- 'LLONG_MIN', 'LONG_MAX', 'LONG_MIN', 'MB_LEN_MAX', 'NULL', 'SCHAR_MAX', 'SCHAR_MIN', 'SHRT_MAX',
- 'SHRT_MIN', 'UCHAR_MAX', 'UINT16_MAX', 'UINT32_MAX', 'UINT64_MAX', 'UINT8_MAX', 'UINTMAX_MAX', 'UINTPTR_MAX',
- 'UINT_FAST16_MAX', 'UINT_FAST32_MAX', 'UINT_FAST64_MAX', 'UINT_FAST8_MAX', 'UINT_LEAST16_MAX', 'UINT_LEAST32_MAX', 'UINT_LEAST64_MAX', 'UINT_LEAST8_MAX',
- 'UINT_MAX', 'ULLONG_MAX', 'ULONG_MAX', 'USHRT_MAX', 'true', 'false',
- 'PTRDIFF_MIN', 'PTRDIFF_MAX', 'SIG_ATOMIC_MIN', 'SIG_ATOMIC_MAX',
- 'SIZE_MAX', 'WCHAR_MIN', 'WCHAR_MAX', 'WINT_MIN', 'WINT_MAX',
- '_IOFBF', '_IOLBF', '_IONBF', 'BUFSIZ',
- 'EOF', 'FOPEN_MAX', 'FILENAME_MAX', 'L_tmpnam',
- 'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 'TMP_MAX', 'stderr', 'stdin', 'stdout', 'TIME_UTC',
- 'TMP_MAX_S', 'SIG_DFL', 'SIG_ERR', 'SIG_IGN',
- 'SIGABRT', 'SIGALRM', 'SIGBUS', 'SIGCHLD', 'SIGCLD', 'SIGCONT',
- 'SIGEMT', 'SIGFPE', 'SIGHUP', 'SIGILL', 'SIGINFO', 'SIGINT',
- 'SIGIO', 'SIGIOT', 'SIGKILL', 'SIGLOST', 'SIGPIPE',
- 'SIGPOLL', 'SIGPROF', 'SIGPWR', 'SIGQUIT', 'SIGSEGV', 'SIGSTKFLT',
- 'SIGSTOP', 'SIGTSTP', 'SIGSYS', 'SIGTERM', 'SIGTRAP', 'SIGTTIN',
- 'SIGTTOU', 'SIGUNUSED', 'SIGURG', 'SIGUSR1', 'SIGUSR2', 'SIGVTALRM',
- 'SIGXCPU', 'SIGXFSZ', 'SIGWINCH', 'NDEBUG', 'I',
- 'EPERM', 'ENOENT', 'ESRCH', 'EINTR', 'EIO', 'ENXIO',
- 'E2BIG', 'ENOEXEC', 'EBADF', 'ECHILD', 'EAGAIN', 'ENOMEM', 'EACCES',
- 'EFAULT', 'ENOTBLK', 'EBUSY', 'EEXIST', 'EXDEV', 'ENODEV', 'ENOTDIR',
- 'EISDIR', 'EINVAL', 'ENFILE', 'EMFILE', 'ENOTTY', 'ETXTBSY', 'EFBIG',
- 'ENOSPC', 'ESPIPE', 'EROFS', 'EMLINK', 'EPIPE', 'EDOM', 'ERANGE', 'EDEADLK',
- 'ENAMETOOLONG', 'ENOLCK', 'ENOSYS', 'ENOTEMPTY', 'ELOOP', 'EWOULDBLOCK',
- 'ENOMSG', 'EIDRM', 'ECHRNG', 'EL2NSYNC', 'EL3HLT', 'EL3RST', 'ELNRNG',
- 'EUNATCH', 'ENOCSI', 'EL2HLT', 'EBADE', 'EBADR', 'EXFULL', 'ENOANO',
- 'EBADRQC', 'EBADSLT', 'EDEADLOCK', 'EBFONT', 'ENOSTR', 'ENODATA',
- 'ETIME', 'ENOSR', 'ENONET', 'ENOPKG', 'EREMOTE', 'ENOLINK', 'EADV',
- 'ESRMNT', 'ECOMM', 'EPROTO', 'EMULTIHOP', 'EDOTDOT', 'EBADMSG',
- 'EOVERFLOW', 'ENOTUNIQ', 'EBADFD', 'EREMCHG', 'ELIBACC', 'ELIBBAD',
- 'ELIBSCN', 'ELIBMAX', 'ELIBEXEC', 'EILSEQ', 'ERESTART', 'ESTRPIPE',
- 'EUSERS', 'ENOTSOCK', 'EDESTADDRREQ', 'EMSGSIZE', 'EPROTOTYPE',
- 'ENOPROTOOPT', 'EPROTONOSUPPORT', 'ESOCKTNOSUPPORT', 'EOPNOTSUPP',
- 'EPFNOSUPPORT', 'EAFNOSUPPORT', 'EADDRINUSE', 'EADDRNOTAVAIL', 'ENETDOWN',
- 'ENETUNREACH', 'ENETRESET', 'ECONNABORTED', 'ECONNRESET', 'ENOBUFS',
- 'EISCONN', 'ENOTCONN', 'ESHUTDOWN', 'ETOOMANYREFS', 'ETIMEDOUT',
- 'ECONNREFUSED', 'EHOSTDOWN', 'EHOSTUNREACH', 'EALREADY', 'EINPROGRESS',
- 'ESTALE', 'EUCLEAN', 'ENOTNAM', 'ENAVAIL', 'EISNAM', 'EREMOTEIO', 'EDQUOT', 'ENOMEDIUM', 'EMEDIUMTYPE',
+constants_c = ['CHAR_BIT', 'CHAR_MAX', 'CHAR_MIN', 'DBL_DIG', 'DBL_EPSILON', 'DBL_HAS_SUBNORM', 'DBL_MANT_DIG', 'DBL_MAX',
+ 'DBL_MAX_10_EXP', 'DBL_MAX_EXP', 'DBL_MIN', 'DBL_MIN_EXP', 'DBL_TRUE_MIN', 'DECIMAL_DIG', 'EXIT_FAILURE', 'EXIT_SUCCESS',
+ 'FLT_DECIMAL_DIG', 'FLT_DIG', 'FLT_EVAL_METHOD', 'FLT_HAS_SUBNORM', 'FLT_MANT_DIG', 'FLT_MAX', 'FLT_MAX_10_EXP', 'FLT_MAX_EXP',
+ 'FLT_MIN', 'FLT_MIN_10_EXP', 'FLT_MIN_EXP', 'FLT_RADIX', 'FLT_ROUNDS', 'FLT_TRUE_MIN', 'INT16_MAX', 'INT16_MIN',
+ 'INT32_MAX', 'INT32_MIN', 'INT64_MAX', 'INT64_MIN', 'INT8_MAX', 'INT8_MIN', 'INTMAX_MAX', 'INTMAX_MIN',
+ 'INTPTR_MAX', 'INTPTR_MIN', 'INT_FAST16_MAX', 'INT_FAST16_MIN', 'INT_FAST32_MAX', 'INT_FAST32_MIN', 'INT_FAST64_MAX', 'INT_FAST64_MIN',
+ 'INT_FAST8_MAX', 'INT_FAST8_MIN', 'INT_LEAST16_MAX', 'INT_LEAST16_MIN', 'INT_LEAST32_MAX', 'INT_LEAST32_MIN', 'INT_LEAST64_MAX', 'INT_LEAST64_MIN',
+ 'INT_LEAST8_MAX', 'INT_LEAST8_MIN', 'INT_MAX', 'INT_MIN', 'LDBL_DECIMAL_DIG', 'LDBL_DIG', 'LDBL_EPSILON', 'LDBL_MANT_DIG',
+ 'LDBL_MAX', 'LDBL_MAX_10_EXP', 'LDBL_MAX_EXP', 'LDBL_MIN', 'LDBL_MIN_10_EXP', 'LDBL_MIN_EXP', 'LDBL_TRUE_MIN', 'LLONG_MAX',
+ 'LLONG_MIN', 'LONG_MAX', 'LONG_MIN', 'MB_LEN_MAX', 'NULL', 'SCHAR_MAX', 'SCHAR_MIN', 'SHRT_MAX',
+ 'SHRT_MIN', 'UCHAR_MAX', 'UINT16_MAX', 'UINT32_MAX', 'UINT64_MAX', 'UINT8_MAX', 'UINTMAX_MAX', 'UINTPTR_MAX',
+ 'UINT_FAST16_MAX', 'UINT_FAST32_MAX', 'UINT_FAST64_MAX', 'UINT_FAST8_MAX', 'UINT_LEAST16_MAX', 'UINT_LEAST32_MAX', 'UINT_LEAST64_MAX', 'UINT_LEAST8_MAX',
+ 'UINT_MAX', 'ULLONG_MAX', 'ULONG_MAX', 'USHRT_MAX', 'true', 'false',
+ 'PTRDIFF_MIN', 'PTRDIFF_MAX', 'SIG_ATOMIC_MIN', 'SIG_ATOMIC_MAX',
+ 'SIZE_MAX', 'WCHAR_MIN', 'WCHAR_MAX', 'WINT_MIN', 'WINT_MAX',
+ '_IOFBF', '_IOLBF', '_IONBF', 'BUFSIZ',
+ 'EOF', 'FOPEN_MAX', 'FILENAME_MAX', 'L_tmpnam',
+ 'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 'TMP_MAX', 'stderr', 'stdin', 'stdout', 'TIME_UTC',
+ 'TMP_MAX_S', 'SIG_DFL', 'SIG_ERR', 'SIG_IGN',
+ 'SIGABRT', 'SIGALRM', 'SIGBUS', 'SIGCHLD', 'SIGCLD', 'SIGCONT',
+ 'SIGEMT', 'SIGFPE', 'SIGHUP', 'SIGILL', 'SIGINFO', 'SIGINT',
+ 'SIGIO', 'SIGIOT', 'SIGKILL', 'SIGLOST', 'SIGPIPE',
+ 'SIGPOLL', 'SIGPROF', 'SIGPWR', 'SIGQUIT', 'SIGSEGV', 'SIGSTKFLT',
+ 'SIGSTOP', 'SIGTSTP', 'SIGSYS', 'SIGTERM', 'SIGTRAP', 'SIGTTIN',
+ 'SIGTTOU', 'SIGUNUSED', 'SIGURG', 'SIGUSR1', 'SIGUSR2', 'SIGVTALRM',
+ 'SIGXCPU', 'SIGXFSZ', 'SIGWINCH', 'NDEBUG', 'I',
+ 'EPERM', 'ENOENT', 'ESRCH', 'EINTR', 'EIO', 'ENXIO',
+ 'E2BIG', 'ENOEXEC', 'EBADF', 'ECHILD', 'EAGAIN', 'ENOMEM', 'EACCES',
+ 'EFAULT', 'ENOTBLK', 'EBUSY', 'EEXIST', 'EXDEV', 'ENODEV', 'ENOTDIR',
+ 'EISDIR', 'EINVAL', 'ENFILE', 'EMFILE', 'ENOTTY', 'ETXTBSY', 'EFBIG',
+ 'ENOSPC', 'ESPIPE', 'EROFS', 'EMLINK', 'EPIPE', 'EDOM', 'ERANGE', 'EDEADLK',
+ 'ENAMETOOLONG', 'ENOLCK', 'ENOSYS', 'ENOTEMPTY', 'ELOOP', 'EWOULDBLOCK',
+ 'ENOMSG', 'EIDRM', 'ECHRNG', 'EL2NSYNC', 'EL3HLT', 'EL3RST', 'ELNRNG',
+ 'EUNATCH', 'ENOCSI', 'EL2HLT', 'EBADE', 'EBADR', 'EXFULL', 'ENOANO',
+ 'EBADRQC', 'EBADSLT', 'EDEADLOCK', 'EBFONT', 'ENOSTR', 'ENODATA',
+ 'ETIME', 'ENOSR', 'ENONET', 'ENOPKG', 'EREMOTE', 'ENOLINK', 'EADV',
+ 'ESRMNT', 'ECOMM', 'EPROTO', 'EMULTIHOP', 'EDOTDOT', 'EBADMSG',
+ 'EOVERFLOW', 'ENOTUNIQ', 'EBADFD', 'EREMCHG', 'ELIBACC', 'ELIBBAD',
+ 'ELIBSCN', 'ELIBMAX', 'ELIBEXEC', 'EILSEQ', 'ERESTART', 'ESTRPIPE',
+ 'EUSERS', 'ENOTSOCK', 'EDESTADDRREQ', 'EMSGSIZE', 'EPROTOTYPE',
+ 'ENOPROTOOPT', 'EPROTONOSUPPORT', 'ESOCKTNOSUPPORT', 'EOPNOTSUPP',
+ 'EPFNOSUPPORT', 'EAFNOSUPPORT', 'EADDRINUSE', 'EADDRNOTAVAIL', 'ENETDOWN',
+ 'ENETUNREACH', 'ENETRESET', 'ECONNABORTED', 'ECONNRESET', 'ENOBUFS',
+ 'EISCONN', 'ENOTCONN', 'ESHUTDOWN', 'ETOOMANYREFS', 'ETIMEDOUT',
+ 'ECONNREFUSED', 'EHOSTDOWN', 'EHOSTUNREACH', 'EALREADY', 'EINPROGRESS',
+ 'ESTALE', 'EUCLEAN', 'ENOTNAM', 'ENAVAIL', 'EISNAM', 'EREMOTEIO', 'EDQUOT', 'ENOMEDIUM', 'EMEDIUMTYPE',
'FE_DIVBYZERO', 'FE_INEXACT', 'FE_INVALID', 'FE_OVERFLOW', 'FE_UNDERFLOW', 'FE_ALL_EXCEPT', 'FE_DOWNWARD',
- 'FE_TONEAREST', 'FE_TOWARDZERO', 'FE_UPWARD', 'FE_DFL_ENV',
- 'LC_ALL', 'LC_CTYPE', 'LC_NUMERIC', 'LC_COLLATE', 'LC_MONETARY', 'LC_TIME',
+ 'FE_TONEAREST', 'FE_TOWARDZERO', 'FE_UPWARD', 'FE_DFL_ENV',
+ 'LC_ALL', 'LC_CTYPE', 'LC_NUMERIC', 'LC_COLLATE', 'LC_MONETARY', 'LC_TIME',
'HUGE_VAL', 'HUGE_VALF', 'HUGE_VALL', 'INFINITY',
- 'NAN', 'FP_INFINITE', 'FP_NAN', 'FP_NORMAL', 'FP_SUBNORMAL', 'FP_ZERO',
- 'FP_FAST_FMA', 'FP_FAST_FMAF', 'FP_FAST_FMAL', 'FP_ILOGB0', 'FP_ILOGBNAN',
- 'MATH_ERRNO', 'MATH_ERREXCEPT', 'RSIZE_MAX', 'MB_CUR_MAX', 'CLOCKS_PER_SEC', 'WEOF',
+ 'NAN', 'FP_INFINITE', 'FP_NAN', 'FP_NORMAL', 'FP_SUBNORMAL', 'FP_ZERO',
+ 'FP_FAST_FMA', 'FP_FAST_FMAF', 'FP_FAST_FMAL', 'FP_ILOGB0', 'FP_ILOGBNAN',
+ 'MATH_ERRNO', 'MATH_ERREXCEPT', 'RSIZE_MAX', 'MB_CUR_MAX', 'CLOCKS_PER_SEC', 'WEOF',
'ONCE_FLAG_INIT', 'TSS_DTOR_ITERATIONS',
'thrd_timeout', 'thrd_success', 'thrd_busy', 'thrd_error', 'thrd_nomem',
'mtx_plain', 'mtx_recursive', 'mtx_timed', 'mtx_try',
]
-keywords_c = ['_Alignas', '_Alignof', '_Atomic', '_Bool',
- '_Complex', '_Generic', '_Imaginary', '_Noreturn', '_Static_assert', '_Thread_local', 'auto',
- 'break', 'case', 'char', 'const', 'continue',
- 'default', 'do', 'double', 'else', 'enum', 'extern', 'float', 'for', 'goto', 'if', 'inline', 'int',
- 'long', 'register', 'restrict', 'return', 'short', 'signed', 'sizeof',
- 'static', 'struct', 'switch', 'typedef', 'union', 'unsigned', 'void', 'volatile', 'while',
+keywords_c = ['_Alignas', '_Alignof', '_Atomic', '_Bool',
+ '_Complex', '_Generic', '_Imaginary', '_Noreturn', '_Static_assert', '_Thread_local', 'auto',
+ 'break', 'case', 'char', 'const', 'continue',
+ 'default', 'do', 'double', 'else', 'enum', 'extern', 'float', 'for', 'goto', 'if', 'inline', 'int',
+ 'long', 'register', 'restrict', 'return', 'short', 'signed', 'sizeof',
+ 'static', 'struct', 'switch', 'typedef', 'union', 'unsigned', 'void', 'volatile', 'while',
]
builtins_c = [
'bool',
- 'int8_t', 'int16_t', 'int32_t', 'int64_t', 'uint8_t', 'uint16_t', 'uint32_t', 'uint64_t',
- 'int_least8_t', 'int_least16_t', 'int_least32_t', 'int_least64_t', 'uint_least8_t', 'uint_least16_t', 'uint_least32_t', 'uint_least64_t',
- 'int_fast8_t', 'int_fast16_t', 'int_fast32_t', 'int_fast64_t', 'uint_fast8_t', 'uint_fast16_t', 'uint_fast32_t', 'uint_fast64_t',
+ 'int8_t', 'int16_t', 'int32_t', 'int64_t', 'uint8_t', 'uint16_t', 'uint32_t', 'uint64_t',
+ 'int_least8_t', 'int_least16_t', 'int_least32_t', 'int_least64_t', 'uint_least8_t', 'uint_least16_t', 'uint_least32_t', 'uint_least64_t',
+ 'int_fast8_t', 'int_fast16_t', 'int_fast32_t', 'int_fast64_t', 'uint_fast8_t', 'uint_fast16_t', 'uint_fast32_t', 'uint_fast64_t',
'char8_t', 'char16_t', 'char32_t',
'wchar_t', 'wint_t',
- 'size_t', 'rsize_t', 'uintptr_t', 'intptr_t', 'intmax_t', 'uintmax_t',
- 'mbstate_t', 'static_assert', 'noreturn', 'alignof', 'alignas', 'complex',
+ 'size_t', 'rsize_t', 'uintptr_t', 'intptr_t', 'intmax_t', 'uintmax_t',
+ 'mbstate_t', 'static_assert', 'noreturn', 'alignof', 'alignas', 'complex',
'imaxdiv_t',
'math_errhandling', 'jmp_buf', 'va_list',
- 'errno_t', 'fenv_t', 'fexcept_t',
+ 'errno_t', 'fenv_t', 'fexcept_t',
'float_t', 'double_t',
- 'sig_atomic_t', 'memory_order', 'memory_order_relaxed', 'memory_order_consume',
- 'memory_order_acquire', 'memory_order_release', 'memory_order_acq_rel', 'memory_order_seq_cst',
- 'ptrdiff_t', 'max_align_t', 'offsetof',
- 'div_t', 'ldiv_t', 'lldiv_t', 'constraint_handler_t', 'cnd_t', 'thrd_t', 'tss_t', 'mtx_t',
- 'tss_dtor_t', 'thrd_start_t', 'once_flag', 'xtime',
- 'clock_t', 'time_t', 'wctrans_t', 'wctype_t', 'FILE', 'fpos_t', 'ssize_t',
- 'ino_t', 'dev_t', 'mode_t', 'uid_t', 'pid_t', 'off_t', 'gid_t', 'nlink_t',
- 'id_t', 'off64_t', 'caddr_t', 'daddr_t', 'key_t', 'useconds_t', 'blksize_t',
- 'blkcnt_t', 'fsblkcnt_t', 'fsfilcnt_t',
- 'blkcnt64_t', 'fsblkcnt64_t', 'fsfilcnt64_t',
+ 'sig_atomic_t', 'memory_order', 'memory_order_relaxed', 'memory_order_consume',
+ 'memory_order_acquire', 'memory_order_release', 'memory_order_acq_rel', 'memory_order_seq_cst',
+ 'ptrdiff_t', 'max_align_t', 'offsetof',
+ 'div_t', 'ldiv_t', 'lldiv_t', 'constraint_handler_t', 'cnd_t', 'thrd_t', 'tss_t', 'mtx_t',
+ 'tss_dtor_t', 'thrd_start_t', 'once_flag', 'xtime',
+ 'clock_t', 'time_t', 'wctrans_t', 'wctype_t', 'FILE', 'fpos_t', 'ssize_t',
+ 'ino_t', 'dev_t', 'mode_t', 'uid_t', 'pid_t', 'off_t', 'gid_t', 'nlink_t',
+ 'id_t', 'off64_t', 'caddr_t', 'daddr_t', 'key_t', 'useconds_t', 'blksize_t',
+ 'blkcnt_t', 'fsblkcnt_t', 'fsfilcnt_t',
+ 'blkcnt64_t', 'fsblkcnt64_t', 'fsfilcnt64_t',
]
# see https://registry.khronos.org/OpenGL/specs/gl/GLSLangSpec.4.60.html#keywords
@@ -206,64 +202,63 @@ constants_glsl = []
for x in ['char', 'char16_t', 'char32_t', 'wchar_t', 'short', 'int',
- 'long', 'llong', 'address', 'flag']:
- constants_c.append('ATOMIC_{}_LOCK_FREE'.format(x.upper()))
+ 'long', 'llong', 'address', 'flag']:
+ constants_c.append('ATOMIC_{}_LOCK_FREE'.format(x.upper()))
for x in ['flag', 'bool', 'address', 'char', 'schar', 'uchar', 'short',
- 'ushort', 'int', 'uint', 'long', 'ulong', 'llong', 'ullong', 'char16_t',
- 'char32_t', 'wchar_t',
- 'int_least8_t', 'int_least16_t', 'int_least32_t', 'int_least64_t',
- 'uint_least8_t', 'uint_least16_t', 'uint_least32_t', 'uint_least64_t',
- 'int_fast8_t', 'int_fast16_t', 'int_fast32_t', 'int_fast64_t',
- 'uint_fast8_t', 'uint_fast16_t', 'uint_fast32_t', 'uint_fast64_t',
- 'intptr_t', 'uintptr_t', 'size_t', 'ptrdiff_t', 'intmax_t', 'uintmax_t']:
- builtins_c.append('atomic_{}'.format(x))
+ 'ushort', 'int', 'uint', 'long', 'ulong', 'llong', 'ullong', 'char16_t',
+ 'char32_t', 'wchar_t',
+ 'int_least8_t', 'int_least16_t', 'int_least32_t', 'int_least64_t',
+ 'uint_least8_t', 'uint_least16_t', 'uint_least32_t', 'uint_least64_t',
+ 'int_fast8_t', 'int_fast16_t', 'int_fast32_t', 'int_fast64_t',
+ 'uint_fast8_t', 'uint_fast16_t', 'uint_fast32_t', 'uint_fast64_t',
+ 'intptr_t', 'uintptr_t', 'size_t', 'ptrdiff_t', 'intmax_t', 'uintmax_t']:
+ builtins_c.append('atomic_{}'.format(x))
for c in 'diouxX':
- for thing in ['', 'LEAST', 'FAST']:
- for N in [8, 16, 32, 64]:
- constants_c.append('PRI{}{}{}'.format(c, thing, N))
- if c != 'X': constants_c.append('SCN{}{}{}'.format(c, thing, N))
-
- constants_c.append('PRI{}PTR'.format(c))
- constants_c.append('PRI{}MAX'.format(c))
- if c != 'X':
- constants_c.append('SCN{}PTR'.format(c))
- constants_c.append('SCN{}MAX'.format(c))
-
+ for thing in ['', 'LEAST', 'FAST']:
+ for N in [8, 16, 32, 64]:
+ constants_c.append('PRI{}{}{}'.format(c, thing, N))
+ if c != 'X': constants_c.append('SCN{}{}{}'.format(c, thing, N))
+ constants_c.append('PRI{}PTR'.format(c))
+ constants_c.append('PRI{}MAX'.format(c))
+ if c != 'X':
+ constants_c.append('SCN{}PTR'.format(c))
+ constants_c.append('SCN{}MAX'.format(c))
+
# keywords unique to C++ (not in C)
keywords_cpp = [
- 'and', 'and_eq', 'asm', 'atomic_cancel', 'atomic_commit',
- 'atomic_noexcept', 'bitand', 'bitor', 'catch', 'class', 'compl',
- 'concept', 'consteval', 'constexpr', 'constinit', 'const_cast',
- 'co_await', 'co_return', 'co_yield', 'decltype', 'delete', 'thread_local',
- 'dynamic_cast', 'explicit', 'export', 'friend', 'mutable', 'namespace',
- 'new', 'noexcept', 'not', 'not_eq', 'nullptr', 'operator', 'or', 'or_eq',
- 'private', 'protected', 'public', 'reflexpr', 'reinterpret_cast', 'requires',
- 'static_cast', 'synchronized', 'template', 'this',
- 'throw', 'try', 'typeid', 'typename', 'using', 'virtual',
- 'xor', 'xor_eq',
+ 'and', 'and_eq', 'asm', 'atomic_cancel', 'atomic_commit',
+ 'atomic_noexcept', 'bitand', 'bitor', 'catch', 'class', 'compl',
+ 'concept', 'consteval', 'constexpr', 'constinit', 'const_cast',
+ 'co_await', 'co_return', 'co_yield', 'decltype', 'delete', 'thread_local',
+ 'dynamic_cast', 'explicit', 'export', 'friend', 'mutable', 'namespace',
+ 'new', 'noexcept', 'not', 'not_eq', 'nullptr', 'operator', 'or', 'or_eq',
+ 'private', 'protected', 'public', 'reflexpr', 'reinterpret_cast', 'requires',
+ 'static_cast', 'synchronized', 'template', 'this',
+ 'throw', 'try', 'typeid', 'typename', 'using', 'virtual',
+ 'xor', 'xor_eq',
'bool', 'wchar_t',
]
cant_overlap(keywords_c, keywords_cpp)
keywords_rust = [
- 'as', 'break', 'const', 'continue', 'crate', 'else', 'enum', 'extern', 'fn', 'for',
- 'if', 'impl', 'in', 'let', 'loop', 'match', 'mod', 'move', 'mut', 'pub', 'ref', 'return',
- 'self', 'Self', 'static', 'struct', 'super', 'trait', 'type', 'unsafe', 'use',
- 'where', 'while', 'async', 'await', 'dyn', 'abstract', 'become', 'box', 'do', 'final',
- 'macro', 'override', 'priv', 'typeof', 'unsized', 'virtual', 'yield', 'try', 'union',
+ 'as', 'break', 'const', 'continue', 'crate', 'else', 'enum', 'extern', 'fn', 'for',
+ 'if', 'impl', 'in', 'let', 'loop', 'match', 'mod', 'move', 'mut', 'pub', 'ref', 'return',
+ 'self', 'Self', 'static', 'struct', 'super', 'trait', 'type', 'unsafe', 'use',
+ 'where', 'while', 'async', 'await', 'dyn', 'abstract', 'become', 'box', 'do', 'final',
+ 'macro', 'override', 'priv', 'typeof', 'unsized', 'virtual', 'yield', 'try', 'union',
]
builtins_rust = [
- 'asm!','concat_idents!','format_args_nl!','global_asm!','is_aarch64_feature_detected!',
- 'is_arm_feature_detected!','is_mips64_feature_detected!','is_mips_feature_detected!',
- 'is_powerpc64_feature_detected!','is_powerpc_feature_detected!','llvm_asm!','log_syntax!',
- 'trace_macros!','assert!','assert_eq!','assert_ne!','cfg!','column!','compile_error!',
- 'concat!','dbg!','debug_assert!','debug_assert_eq!','debug_assert_ne!','env!','eprint!',
- 'eprintln!','file!','format!','format_args!','include!','include_bytes!','include_str!',
- 'is_x86_feature_detected!','line!','matches!','module_path!','option_env!','panic!',
- 'print!','println!','stringify!','thread_local!','todo!','try!','unimplemented!',
- 'unreachable!','vec!','write!','writeln!',
+ 'asm!','concat_idents!','format_args_nl!','global_asm!','is_aarch64_feature_detected!',
+ 'is_arm_feature_detected!','is_mips64_feature_detected!','is_mips_feature_detected!',
+ 'is_powerpc64_feature_detected!','is_powerpc_feature_detected!','llvm_asm!','log_syntax!',
+ 'trace_macros!','assert!','assert_eq!','assert_ne!','cfg!','column!','compile_error!',
+ 'concat!','dbg!','debug_assert!','debug_assert_eq!','debug_assert_ne!','env!','eprint!',
+ 'eprintln!','file!','format!','format_args!','include!','include_bytes!','include_str!',
+ 'is_x86_feature_detected!','line!','matches!','module_path!','option_env!','panic!',
+ 'print!','println!','stringify!','thread_local!','todo!','try!','unimplemented!',
+ 'unreachable!','vec!','write!','writeln!',
'Copy', 'Send', 'Sized', 'Sync', 'Unpin', 'Drop', 'Fn', 'FnMut', 'FnOnce',
'drop', 'Box', 'ToOwned', 'Clone', 'PartialEq', 'PartialOrd', 'Eq', 'Ord',
'AsRef', 'AsMut', 'Into', 'From', 'Default', 'Iterator', 'Extend', 'IntoIterator',
@@ -278,30 +273,30 @@ constants_rust = ['false', 'true']
keywords_python = ['await', 'else', 'import', 'pass', 'break', 'except', 'in', 'raise', 'class', 'finally',
- 'is', 'return', 'and', 'continue', 'for', 'lambda', 'try', 'as', 'def', 'from', 'nonlocal',
- 'while', 'assert', 'del', 'global', 'not', 'with', 'async', 'elif', 'if', 'or', 'yield',
+ 'is', 'return', 'and', 'continue', 'for', 'lambda', 'try', 'as', 'def', 'from', 'nonlocal',
+ 'while', 'assert', 'del', 'global', 'not', 'with', 'async', 'elif', 'if', 'or', 'yield',
]
builtins_python = ['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BlockingIOError',
- 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError',
- 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning',
- 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False', 'FileExistsError', 'FileNotFoundError',
- 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning',
- 'IndentationError', 'IndexError', 'InterruptedError', 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt',
- 'LookupError', 'MemoryError', 'ModuleNotFoundError', 'NameError', 'None', 'NotADirectoryError',
- 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning',
- 'PermissionError', 'ProcessLookupError', 'RecursionError', 'ReferenceError', 'ResourceWarning',
- 'RuntimeError', 'RuntimeWarning', 'StopAsyncIteration', 'StopIteration', 'SyntaxError', 'SyntaxWarning',
- 'SystemError', 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError', 'UnboundLocalError',
- 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning',
- 'UserWarning', 'ValueError', 'Warning', 'WindowsError', 'ZeroDivisionError', '__build_class__', '__debug__',
- '__doc__', '__import__', '__loader__', '__name__', '__package__', '__spec__', 'abs', 'all', 'any', 'ascii',
- 'bin', 'bool', 'breakpoint', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex',
- 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'exit', 'filter',
- 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int',
- 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 'min',
- 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'quit', 'range', 'repr', 'reversed',
- 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type',
- 'vars', 'zip',
+ 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError',
+ 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning',
+ 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False', 'FileExistsError', 'FileNotFoundError',
+ 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning',
+ 'IndentationError', 'IndexError', 'InterruptedError', 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt',
+ 'LookupError', 'MemoryError', 'ModuleNotFoundError', 'NameError', 'None', 'NotADirectoryError',
+ 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning',
+ 'PermissionError', 'ProcessLookupError', 'RecursionError', 'ReferenceError', 'ResourceWarning',
+ 'RuntimeError', 'RuntimeWarning', 'StopAsyncIteration', 'StopIteration', 'SyntaxError', 'SyntaxWarning',
+ 'SystemError', 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError', 'UnboundLocalError',
+ 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning',
+ 'UserWarning', 'ValueError', 'Warning', 'WindowsError', 'ZeroDivisionError', '__build_class__', '__debug__',
+ '__doc__', '__import__', '__loader__', '__name__', '__package__', '__spec__', 'abs', 'all', 'any', 'ascii',
+ 'bin', 'bool', 'breakpoint', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex',
+ 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'exit', 'filter',
+ 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int',
+ 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 'min',
+ 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'quit', 'range', 'repr', 'reversed',
+ 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type',
+ 'vars', 'zip',
]
attributes_html = [
@@ -433,180 +428,180 @@ builtins_go = [
]
builtins_css = [
- '-webkit-line-clamp:', 'abs', 'accent-color:', 'acos',
- 'additive-symbols:', 'align-content:', 'align-items:', 'align-self:', 'align-tracks:', 'all:', 'animation:',
- 'animation-composition:', 'animation-delay:', 'animation-direction:', 'animation-duration:', 'animation-fill-mode:',
- 'animation-iteration-count:', 'animation-name:', 'animation-play-state:', 'animation-timeline:',
- 'animation-timing-function:', 'annotation', 'appearance:', 'ascent-override:', 'asin', 'aspect-ratio:', 'atan',
- 'atan2', 'attr', 'backdrop-filter:', 'backface-visibility:', 'background:', 'background-attachment:',
- 'background-blend-mode:', 'background-clip:', 'background-color:', 'background-image:', 'background-origin:',
- 'background-position:', 'background-position-x:', 'background-position-y:', 'background-repeat:', 'background-size:',
- 'bleed:', 'block-overflow:', 'block-size:', 'blur', 'border:', 'border-block:', 'border-block-color:',
- 'border-block-end:', 'border-block-end-color:', 'border-block-end-style:', 'border-block-end-width:',
- 'border-block-start:', 'border-block-start-color:', 'border-block-start-style:', 'border-block-start-width:',
- 'border-block-style:', 'border-block-width:', 'border-bottom:', 'border-bottom-color:', 'border-bottom-left-radius:',
- 'border-bottom-right-radius:', 'border-bottom-style:', 'border-bottom-width:', 'border-collapse:', 'border-color:',
- 'border-end-end-radius:', 'border-end-start-radius:', 'border-image:', 'border-image-outset:', 'border-image-repeat:',
- 'border-image-slice:', 'border-image-source:', 'border-image-width:', 'border-inline:', 'border-inline-color:',
- 'border-inline-end:', 'border-inline-end-color:', 'border-inline-end-style:', 'border-inline-end-width:',
- 'border-inline-start:', 'border-inline-start-color:', 'border-inline-start-style:', 'border-inline-start-width:',
- 'border-inline-style:', 'border-inline-width:', 'border-left:', 'border-left-color:', 'border-left-style:',
- 'border-left-width:', 'border-radius:', 'border-right:', 'border-right-color:', 'border-right-style:',
- 'border-right-width:', 'border-spacing:', 'border-start-end-radius:', 'border-start-start-radius:', 'border-style:',
- 'border-top:', 'border-top-color:', 'border-top-left-radius:', 'border-top-right-radius:', 'border-top-style:',
- 'border-top-width:', 'border-width:', 'box-decoration-break:', 'box-shadow:', 'box-sizing:', 'break-after:',
- 'break-before:', 'break-inside:', 'brightness', 'calc', 'caption-side:', 'caret:', 'caret-color:', 'caret-shape:',
- 'character-variant', 'circle', 'clamp', 'clear:', 'clip:', 'clip-path:', 'color:', 'color-scheme:', 'column-count:',
- 'column-fill:', 'column-gap:', 'column-rule:', 'column-rule-color:', 'column-rule-style:', 'column-rule-width:',
- 'column-span:', 'column-width:', 'columns:', 'conic-gradient', 'contain:', 'contain-intrinsic-block-size:',
- 'contain-intrinsic-height:', 'contain-intrinsic-inline-size:', 'contain-intrinsic-size:', 'contain-intrinsic-width:',
- 'content:', 'content-visibility:', 'contrast', 'cos', 'counter-increment:', 'counter-reset:', 'counter-set:',
- 'counters', 'cross-fade', 'cubic-bezier', 'cursor:', 'descent-override:', 'direction:', 'display:', 'drop-shadow',
- 'element', 'ellipse', 'empty-cells:', 'env', 'exp', 'fallback:', 'filter:', 'flex:', 'flex-basis:', 'flex-direction:',
- 'flex-flow:', 'flex-grow:', 'flex-shrink:', 'flex-wrap:', 'float:', 'font:', 'font-display:', 'font-family:',
- 'font-feature-settings:', 'font-kerning:', 'font-language-override:', 'font-optical-sizing:', 'font-size:',
- 'font-size-adjust:', 'font-stretch:', 'font-style:', 'font-synthesis:', 'font-variant:', 'font-variant-alternates:',
- 'font-variant-caps:', 'font-variant-east-asian:', 'font-variant-ligatures:', 'font-variant-numeric:',
- 'font-variant-position:', 'font-variation-settings:', 'font-weight:', 'forced-color-adjust:', 'format', 'gap:',
- 'grayscale', 'grid:', 'grid-area:', 'grid-auto-columns:', 'grid-auto-flow:', 'grid-auto-rows:', 'grid-column:',
- 'grid-column-end:', 'grid-column-start:', 'grid-row:', 'grid-row-end:', 'grid-row-start:', 'grid-template:',
- 'grid-template-areas:', 'grid-template-columns:', 'grid-template-rows:', 'hanging-punctuation:', 'height:', 'hsl',
- 'hsla', 'hue-rotate', 'hwb', 'hyphenate-character:', 'hyphenate-limit-chars:', 'hyphens:', 'hypot', 'image',
- 'image-orientation:', 'image-rendering:', 'image-resolution:', 'image-set', 'inherits:', 'initial-letter:',
- 'initial-letter-align:', 'initial-value:', 'inline-size:', 'input-security:', 'inset', 'inset-block:',
- 'inset-block-end:', 'inset-block-start:', 'inset-inline:', 'inset-inline-end:', 'inset-inline-start:', 'invert',
- 'isolation:', 'justify-content:', 'justify-items:', 'justify-self:', 'justify-tracks:', 'lab', 'layer', 'lch',
- 'leader', 'letter-spacing:', 'line-break:', 'line-clamp:', 'line-gap-override:', 'line-height:', 'line-height-step:',
- 'linear-gradient', 'list-style:', 'list-style-image:', 'list-style-position:', 'list-style-type:', 'local', 'log',
- 'margin:', 'margin-block:', 'margin-block-end:', 'margin-block-start:', 'margin-bottom:', 'margin-inline:',
- 'margin-inline-end:', 'margin-inline-start:', 'margin-left:', 'margin-right:', 'margin-top:', 'margin-trim:', 'marks:',
- 'mask:', 'mask-border:', 'mask-border-mode:', 'mask-border-outset:', 'mask-border-repeat:', 'mask-border-slice:',
- 'mask-border-source:', 'mask-border-width:', 'mask-clip:', 'mask-composite:', 'mask-image:', 'mask-mode:',
- 'mask-origin:', 'mask-position:', 'mask-repeat:', 'mask-size:', 'mask-type:', 'masonry-auto-flow:', 'math-depth:',
- 'math-shift:', 'math-style:', 'matrix', 'matrix3d', 'max', 'max-block-size:', 'max-height:', 'max-inline-size:',
- 'max-lines:', 'max-width:', 'max-zoom:', 'min', 'min-block-size:', 'min-height:', 'min-inline-size:', 'min-width:',
- 'min-zoom:', 'minmax', 'mix-blend-mode:', 'mod', 'negative:', 'object-fit:', 'object-position:', 'offset:',
- 'offset-anchor:', 'offset-distance:', 'offset-path:', 'offset-position:', 'offset-rotate:', 'opacity', 'order:',
- 'orientation:', 'ornaments', 'orphans:', 'outline:', 'outline-color:', 'outline-offset:', 'outline-style:',
- 'outline-width:', 'overflow:', 'overflow-anchor:', 'overflow-block:', 'overflow-clip-margin:', 'overflow-inline:',
- 'overflow-wrap:', 'overflow-x:', 'overflow-y:', 'overscroll-behavior:', 'overscroll-behavior-block:',
- 'overscroll-behavior-inline:', 'overscroll-behavior-x:', 'overscroll-behavior-y:', 'pad:', 'padding:',
- 'padding-block:', 'padding-block-end:', 'padding-block-start:', 'padding-bottom:', 'padding-inline:',
- 'padding-inline-end:', 'padding-inline-start:', 'padding-left:', 'padding-right:', 'padding-top:', 'page-break-after:',
- 'page-break-before:', 'page-break-inside:', 'paint', 'paint-order:', 'path', 'perspective', 'perspective-origin:',
- 'place-content:', 'place-items:', 'place-self:', 'pointer-events:', 'polygon', 'position:', 'pow', 'prefix:',
- 'print-color-adjust:', 'quotes:', 'radial-gradient', 'range:', 'rect', 'rem', 'repeat', 'repeating-conic-gradient',
- 'repeating-linear-gradient', 'repeating-radial-gradient', 'resize:', 'reversed', 'rgb', 'rgba', 'rotate', 'rotate3d',
- 'rotateX', 'rotateY', 'rotateZ', 'row-gap:', 'ruby-align:', 'ruby-merge:', 'ruby-position:', 'saturate', 'scale',
- 'scale3d', 'scaleX', 'scaleY', 'scaleZ', 'scroll', 'scroll-behavior:', 'scroll-margin:', 'scroll-margin-block:',
- 'scroll-margin-block-end:', 'scroll-margin-block-start:', 'scroll-margin-bottom:', 'scroll-margin-inline:',
- 'scroll-margin-inline-end:', 'scroll-margin-inline-start:', 'scroll-margin-left:', 'scroll-margin-right:',
- 'scroll-margin-top:', 'scroll-padding:', 'scroll-padding-block:', 'scroll-padding-block-end:',
- 'scroll-padding-block-start:', 'scroll-padding-bottom:', 'scroll-padding-inline:', 'scroll-padding-inline-end:',
- 'scroll-padding-inline-start:', 'scroll-padding-left:', 'scroll-padding-right:', 'scroll-padding-top:',
- 'scroll-snap-align:', 'scroll-snap-stop:', 'scroll-snap-type:', 'scroll-timeline:', 'scroll-timeline-axis:',
- 'scroll-timeline-name:', 'scrollbar-color:', 'scrollbar-gutter:', 'scrollbar-width:', 'selector', 'sepia',
- 'shape-image-threshold:', 'shape-margin:', 'shape-outside:', 'sign', 'sin', 'size:', 'size-adjust:', 'skew', 'skewX',
- 'skewY', 'speak-as:', 'sqrt', 'src:', 'steps', 'styleset', 'stylistic', 'suffix:', 'supports', 'swash', 'symbols',
- 'syntax:', 'system:', 'tab-size:', 'table-layout:', 'tan', 'target-counter', 'target-counters', 'target-text',
- 'text-align:', 'text-align-last:', 'text-combine-upright:', 'text-decoration:', 'text-decoration-color:',
- 'text-decoration-line:', 'text-decoration-skip:', 'text-decoration-skip-ink:', 'text-decoration-style:',
- 'text-decoration-thickness:', 'text-emphasis:', 'text-emphasis-color:', 'text-emphasis-position:',
- 'text-emphasis-style:', 'text-indent:', 'text-justify:', 'text-orientation:', 'text-overflow:', 'text-rendering:',
- 'text-shadow:', 'text-size-adjust:', 'text-transform:', 'text-underline-offset:', 'text-underline-position:',
- 'touch-action:', 'transform:', 'transform-box:', 'transform-origin:', 'transform-style:', 'transition:',
- 'transition-delay:', 'transition-duration:', 'transition-property:', 'transition-timing-function:', 'translate',
- 'translate3d', 'translateX', 'translateY', 'translateZ', 'type', 'unicode-bidi:', 'unicode-range:', 'url',
- 'user-select:', 'user-zoom:', 'var', 'vertical-align:', 'viewport-fit:', 'visibility:', 'white-space:', 'widows:',
+ '-webkit-line-clamp:', 'abs', 'accent-color:', 'acos',
+ 'additive-symbols:', 'align-content:', 'align-items:', 'align-self:', 'align-tracks:', 'all:', 'animation:',
+ 'animation-composition:', 'animation-delay:', 'animation-direction:', 'animation-duration:', 'animation-fill-mode:',
+ 'animation-iteration-count:', 'animation-name:', 'animation-play-state:', 'animation-timeline:',
+ 'animation-timing-function:', 'annotation', 'appearance:', 'ascent-override:', 'asin', 'aspect-ratio:', 'atan',
+ 'atan2', 'attr', 'backdrop-filter:', 'backface-visibility:', 'background:', 'background-attachment:',
+ 'background-blend-mode:', 'background-clip:', 'background-color:', 'background-image:', 'background-origin:',
+ 'background-position:', 'background-position-x:', 'background-position-y:', 'background-repeat:', 'background-size:',
+ 'bleed:', 'block-overflow:', 'block-size:', 'blur', 'border:', 'border-block:', 'border-block-color:',
+ 'border-block-end:', 'border-block-end-color:', 'border-block-end-style:', 'border-block-end-width:',
+ 'border-block-start:', 'border-block-start-color:', 'border-block-start-style:', 'border-block-start-width:',
+ 'border-block-style:', 'border-block-width:', 'border-bottom:', 'border-bottom-color:', 'border-bottom-left-radius:',
+ 'border-bottom-right-radius:', 'border-bottom-style:', 'border-bottom-width:', 'border-collapse:', 'border-color:',
+ 'border-end-end-radius:', 'border-end-start-radius:', 'border-image:', 'border-image-outset:', 'border-image-repeat:',
+ 'border-image-slice:', 'border-image-source:', 'border-image-width:', 'border-inline:', 'border-inline-color:',
+ 'border-inline-end:', 'border-inline-end-color:', 'border-inline-end-style:', 'border-inline-end-width:',
+ 'border-inline-start:', 'border-inline-start-color:', 'border-inline-start-style:', 'border-inline-start-width:',
+ 'border-inline-style:', 'border-inline-width:', 'border-left:', 'border-left-color:', 'border-left-style:',
+ 'border-left-width:', 'border-radius:', 'border-right:', 'border-right-color:', 'border-right-style:',
+ 'border-right-width:', 'border-spacing:', 'border-start-end-radius:', 'border-start-start-radius:', 'border-style:',
+ 'border-top:', 'border-top-color:', 'border-top-left-radius:', 'border-top-right-radius:', 'border-top-style:',
+ 'border-top-width:', 'border-width:', 'box-decoration-break:', 'box-shadow:', 'box-sizing:', 'break-after:',
+ 'break-before:', 'break-inside:', 'brightness', 'calc', 'caption-side:', 'caret:', 'caret-color:', 'caret-shape:',
+ 'character-variant', 'circle', 'clamp', 'clear:', 'clip:', 'clip-path:', 'color:', 'color-scheme:', 'column-count:',
+ 'column-fill:', 'column-gap:', 'column-rule:', 'column-rule-color:', 'column-rule-style:', 'column-rule-width:',
+ 'column-span:', 'column-width:', 'columns:', 'conic-gradient', 'contain:', 'contain-intrinsic-block-size:',
+ 'contain-intrinsic-height:', 'contain-intrinsic-inline-size:', 'contain-intrinsic-size:', 'contain-intrinsic-width:',
+ 'content:', 'content-visibility:', 'contrast', 'cos', 'counter-increment:', 'counter-reset:', 'counter-set:',
+ 'counters', 'cross-fade', 'cubic-bezier', 'cursor:', 'descent-override:', 'direction:', 'display:', 'drop-shadow',
+ 'element', 'ellipse', 'empty-cells:', 'env', 'exp', 'fallback:', 'filter:', 'flex:', 'flex-basis:', 'flex-direction:',
+ 'flex-flow:', 'flex-grow:', 'flex-shrink:', 'flex-wrap:', 'float:', 'font:', 'font-display:', 'font-family:',
+ 'font-feature-settings:', 'font-kerning:', 'font-language-override:', 'font-optical-sizing:', 'font-size:',
+ 'font-size-adjust:', 'font-stretch:', 'font-style:', 'font-synthesis:', 'font-variant:', 'font-variant-alternates:',
+ 'font-variant-caps:', 'font-variant-east-asian:', 'font-variant-ligatures:', 'font-variant-numeric:',
+ 'font-variant-position:', 'font-variation-settings:', 'font-weight:', 'forced-color-adjust:', 'format', 'gap:',
+ 'grayscale', 'grid:', 'grid-area:', 'grid-auto-columns:', 'grid-auto-flow:', 'grid-auto-rows:', 'grid-column:',
+ 'grid-column-end:', 'grid-column-start:', 'grid-row:', 'grid-row-end:', 'grid-row-start:', 'grid-template:',
+ 'grid-template-areas:', 'grid-template-columns:', 'grid-template-rows:', 'hanging-punctuation:', 'height:', 'hsl',
+ 'hsla', 'hue-rotate', 'hwb', 'hyphenate-character:', 'hyphenate-limit-chars:', 'hyphens:', 'hypot', 'image',
+ 'image-orientation:', 'image-rendering:', 'image-resolution:', 'image-set', 'inherits:', 'initial-letter:',
+ 'initial-letter-align:', 'initial-value:', 'inline-size:', 'input-security:', 'inset', 'inset-block:',
+ 'inset-block-end:', 'inset-block-start:', 'inset-inline:', 'inset-inline-end:', 'inset-inline-start:', 'invert',
+ 'isolation:', 'justify-content:', 'justify-items:', 'justify-self:', 'justify-tracks:', 'lab', 'layer', 'lch',
+ 'leader', 'letter-spacing:', 'line-break:', 'line-clamp:', 'line-gap-override:', 'line-height:', 'line-height-step:',
+ 'linear-gradient', 'list-style:', 'list-style-image:', 'list-style-position:', 'list-style-type:', 'local', 'log',
+ 'margin:', 'margin-block:', 'margin-block-end:', 'margin-block-start:', 'margin-bottom:', 'margin-inline:',
+ 'margin-inline-end:', 'margin-inline-start:', 'margin-left:', 'margin-right:', 'margin-top:', 'margin-trim:', 'marks:',
+ 'mask:', 'mask-border:', 'mask-border-mode:', 'mask-border-outset:', 'mask-border-repeat:', 'mask-border-slice:',
+ 'mask-border-source:', 'mask-border-width:', 'mask-clip:', 'mask-composite:', 'mask-image:', 'mask-mode:',
+ 'mask-origin:', 'mask-position:', 'mask-repeat:', 'mask-size:', 'mask-type:', 'masonry-auto-flow:', 'math-depth:',
+ 'math-shift:', 'math-style:', 'matrix', 'matrix3d', 'max', 'max-block-size:', 'max-height:', 'max-inline-size:',
+ 'max-lines:', 'max-width:', 'max-zoom:', 'min', 'min-block-size:', 'min-height:', 'min-inline-size:', 'min-width:',
+ 'min-zoom:', 'minmax', 'mix-blend-mode:', 'mod', 'negative:', 'object-fit:', 'object-position:', 'offset:',
+ 'offset-anchor:', 'offset-distance:', 'offset-path:', 'offset-position:', 'offset-rotate:', 'opacity', 'order:',
+ 'orientation:', 'ornaments', 'orphans:', 'outline:', 'outline-color:', 'outline-offset:', 'outline-style:',
+ 'outline-width:', 'overflow:', 'overflow-anchor:', 'overflow-block:', 'overflow-clip-margin:', 'overflow-inline:',
+ 'overflow-wrap:', 'overflow-x:', 'overflow-y:', 'overscroll-behavior:', 'overscroll-behavior-block:',
+ 'overscroll-behavior-inline:', 'overscroll-behavior-x:', 'overscroll-behavior-y:', 'pad:', 'padding:',
+ 'padding-block:', 'padding-block-end:', 'padding-block-start:', 'padding-bottom:', 'padding-inline:',
+ 'padding-inline-end:', 'padding-inline-start:', 'padding-left:', 'padding-right:', 'padding-top:', 'page-break-after:',
+ 'page-break-before:', 'page-break-inside:', 'paint', 'paint-order:', 'path', 'perspective', 'perspective-origin:',
+ 'place-content:', 'place-items:', 'place-self:', 'pointer-events:', 'polygon', 'position:', 'pow', 'prefix:',
+ 'print-color-adjust:', 'quotes:', 'radial-gradient', 'range:', 'rect', 'rem', 'repeat', 'repeating-conic-gradient',
+ 'repeating-linear-gradient', 'repeating-radial-gradient', 'resize:', 'reversed', 'rgb', 'rgba', 'rotate', 'rotate3d',
+ 'rotateX', 'rotateY', 'rotateZ', 'row-gap:', 'ruby-align:', 'ruby-merge:', 'ruby-position:', 'saturate', 'scale',
+ 'scale3d', 'scaleX', 'scaleY', 'scaleZ', 'scroll', 'scroll-behavior:', 'scroll-margin:', 'scroll-margin-block:',
+ 'scroll-margin-block-end:', 'scroll-margin-block-start:', 'scroll-margin-bottom:', 'scroll-margin-inline:',
+ 'scroll-margin-inline-end:', 'scroll-margin-inline-start:', 'scroll-margin-left:', 'scroll-margin-right:',
+ 'scroll-margin-top:', 'scroll-padding:', 'scroll-padding-block:', 'scroll-padding-block-end:',
+ 'scroll-padding-block-start:', 'scroll-padding-bottom:', 'scroll-padding-inline:', 'scroll-padding-inline-end:',
+ 'scroll-padding-inline-start:', 'scroll-padding-left:', 'scroll-padding-right:', 'scroll-padding-top:',
+ 'scroll-snap-align:', 'scroll-snap-stop:', 'scroll-snap-type:', 'scroll-timeline:', 'scroll-timeline-axis:',
+ 'scroll-timeline-name:', 'scrollbar-color:', 'scrollbar-gutter:', 'scrollbar-width:', 'selector', 'sepia',
+ 'shape-image-threshold:', 'shape-margin:', 'shape-outside:', 'sign', 'sin', 'size:', 'size-adjust:', 'skew', 'skewX',
+ 'skewY', 'speak-as:', 'sqrt', 'src:', 'steps', 'styleset', 'stylistic', 'suffix:', 'supports', 'swash', 'symbols',
+ 'syntax:', 'system:', 'tab-size:', 'table-layout:', 'tan', 'target-counter', 'target-counters', 'target-text',
+ 'text-align:', 'text-align-last:', 'text-combine-upright:', 'text-decoration:', 'text-decoration-color:',
+ 'text-decoration-line:', 'text-decoration-skip:', 'text-decoration-skip-ink:', 'text-decoration-style:',
+ 'text-decoration-thickness:', 'text-emphasis:', 'text-emphasis-color:', 'text-emphasis-position:',
+ 'text-emphasis-style:', 'text-indent:', 'text-justify:', 'text-orientation:', 'text-overflow:', 'text-rendering:',
+ 'text-shadow:', 'text-size-adjust:', 'text-transform:', 'text-underline-offset:', 'text-underline-position:',
+ 'touch-action:', 'transform:', 'transform-box:', 'transform-origin:', 'transform-style:', 'transition:',
+ 'transition-delay:', 'transition-duration:', 'transition-property:', 'transition-timing-function:', 'translate',
+ 'translate3d', 'translateX', 'translateY', 'translateZ', 'type', 'unicode-bidi:', 'unicode-range:', 'url',
+ 'user-select:', 'user-zoom:', 'var', 'vertical-align:', 'viewport-fit:', 'visibility:', 'white-space:', 'widows:',
'width:', 'will-change:', 'word-break:', 'word-spacing:', 'word-wrap:', 'writing-mode:', 'z-index:', 'zoom:',
'left:','right:','top:','bottom:',
]
constants_css = [
- 'aliceblue', 'antiquewhite', 'aqua', 'aquamarine', 'azure', 'beige', 'bisque', 'black', 'blanchedalmond', 'blue',
- 'blueviolet', 'brown', 'burlywood', 'cadetblue', 'chartreuse', 'chocolate', 'coral', 'cornflowerblue', 'cornsilk',
- 'crimson', 'cyan', 'darkblue', 'darkcyan', 'darkgoldenrod', 'darkgray', 'darkgreen', 'darkgrey', 'darkkhaki',
- 'darkmagenta', 'darkolivegreen', 'darkorange', 'darkorchid', 'darkred', 'darksalmon', 'darkseagreen', 'darkslateblue',
- 'darkslategray', 'darkslategrey', 'darkturquoise', 'darkviolet', 'deeppink', 'deepskyblue', 'dimgray', 'dimgrey',
- 'dodgerblue', 'firebrick', 'floralwhite', 'forestgreen', 'fuchsia', 'gainsboro', 'ghostwhite', 'gold', 'goldenrod',
- 'gray', 'green', 'greenyellow', 'grey', 'honeydew', 'hotpink', 'indianred', 'indigo', 'ivory', 'khaki', 'lavender',
- 'lavenderblush', 'lawngreen', 'lemonchiffon', 'lightblue', 'lightcoral', 'lightcyan', 'lightgoldenrodyellow',
- 'lightgray', 'lightgreen', 'lightgrey', 'lightpink', 'lightsalmon', 'lightseagreen', 'lightskyblue', 'lightslategray',
- 'lightslategrey', 'lightsteelblue', 'lightyellow', 'lime', 'limegreen', 'linen', 'magenta', 'maroon',
- 'mediumaquamarine', 'mediumblue', 'mediumorchid', 'mediumpurple', 'mediumseagreen', 'mediumslateblue',
- 'mediumspringgreen', 'mediumturquoise', 'mediumvioletred', 'midnightblue', 'mintcream', 'mistyrose', 'moccasin',
- 'navajowhite', 'navy', 'oldlace', 'olive', 'olivedrab', 'orange', 'orangered', 'orchid', 'palegoldenrod', 'palegreen',
- 'paleturquoise', 'palevioletred', 'papayawhip', 'peachpuff', 'peru', 'pink', 'plum', 'powderblue', 'purple', 'red',
- 'rosybrown', 'royalblue', 'saddlebrown', 'salmon', 'sandybrown', 'seagreen', 'seashell', 'sienna', 'silver', 'skyblue',
- 'slateblue', 'slategray', 'slategrey', 'snow', 'springgreen', 'steelblue', 'teal', 'thistle', 'tomato',
+ 'aliceblue', 'antiquewhite', 'aqua', 'aquamarine', 'azure', 'beige', 'bisque', 'black', 'blanchedalmond', 'blue',
+ 'blueviolet', 'brown', 'burlywood', 'cadetblue', 'chartreuse', 'chocolate', 'coral', 'cornflowerblue', 'cornsilk',
+ 'crimson', 'cyan', 'darkblue', 'darkcyan', 'darkgoldenrod', 'darkgray', 'darkgreen', 'darkgrey', 'darkkhaki',
+ 'darkmagenta', 'darkolivegreen', 'darkorange', 'darkorchid', 'darkred', 'darksalmon', 'darkseagreen', 'darkslateblue',
+ 'darkslategray', 'darkslategrey', 'darkturquoise', 'darkviolet', 'deeppink', 'deepskyblue', 'dimgray', 'dimgrey',
+ 'dodgerblue', 'firebrick', 'floralwhite', 'forestgreen', 'fuchsia', 'gainsboro', 'ghostwhite', 'gold', 'goldenrod',
+ 'gray', 'green', 'greenyellow', 'grey', 'honeydew', 'hotpink', 'indianred', 'indigo', 'ivory', 'khaki', 'lavender',
+ 'lavenderblush', 'lawngreen', 'lemonchiffon', 'lightblue', 'lightcoral', 'lightcyan', 'lightgoldenrodyellow',
+ 'lightgray', 'lightgreen', 'lightgrey', 'lightpink', 'lightsalmon', 'lightseagreen', 'lightskyblue', 'lightslategray',
+ 'lightslategrey', 'lightsteelblue', 'lightyellow', 'lime', 'limegreen', 'linen', 'magenta', 'maroon',
+ 'mediumaquamarine', 'mediumblue', 'mediumorchid', 'mediumpurple', 'mediumseagreen', 'mediumslateblue',
+ 'mediumspringgreen', 'mediumturquoise', 'mediumvioletred', 'midnightblue', 'mintcream', 'mistyrose', 'moccasin',
+ 'navajowhite', 'navy', 'oldlace', 'olive', 'olivedrab', 'orange', 'orangered', 'orchid', 'palegoldenrod', 'palegreen',
+ 'paleturquoise', 'palevioletred', 'papayawhip', 'peachpuff', 'peru', 'pink', 'plum', 'powderblue', 'purple', 'red',
+ 'rosybrown', 'royalblue', 'saddlebrown', 'salmon', 'sandybrown', 'seagreen', 'seashell', 'sienna', 'silver', 'skyblue',
+ 'slateblue', 'slategray', 'slategrey', 'snow', 'springgreen', 'steelblue', 'teal', 'thistle', 'tomato',
'turquoise', 'violet', 'wheat', 'white', 'whitesmoke', 'yellow', 'yellowgreen',
- 'above', 'absolute', 'active', 'add', 'additive', 'after-edge', 'alias', 'all-petite-caps', 'all-scroll',
- 'all-small-caps', 'alpha', 'alphabetic', 'alternate', 'alternate-reverse', 'always', 'antialiased', 'auto', 'auto-pos',
- 'available', 'avoid', 'avoid-column', 'avoid-page', 'avoid-region', 'backwards', 'balance', 'baseline', 'before-edge',
- 'below', 'bevel', 'bidi-override', 'block', 'block-axis', 'block-start', 'block-end', 'bold', 'bolder',
- 'border-box', 'both', 'bottom', 'bottom-outside', 'break-all', 'break-word', 'bullets', 'butt', 'capitalize',
- 'cell', 'center', 'central', 'char', 'clone', 'close-quote', 'closest-corner',
- 'closest-side', 'col-resize', 'collapse', 'color-burn', 'color-dodge', 'column', 'column-reverse',
- 'common-ligatures', 'compact', 'condensed', 'content-box', 'contents', 'context-menu',
- 'contextual', 'copy', 'cover', 'crisp-edges', 'crispEdges', 'crosshair', 'cyclic', 'dark', 'darken', 'dashed',
- 'decimal', 'default', 'dense', 'diagonal-fractions', 'difference', 'digits', 'disabled', 'disc',
- 'discretionary-ligatures', 'distribute', 'distribute-all-lines', 'distribute-letter', 'distribute-space', 'dot',
- 'dotted', 'double', 'double-circle', 'downleft', 'downright', 'e-resize', 'each-line', 'ease', 'ease-in',
- 'ease-in-out', 'ease-out', 'economy', 'ellipsis', 'end', 'evenodd', 'ew-resize', 'exact',
- 'exclude', 'exclusion', 'expanded', 'extends', 'extra-condensed', 'extra-expanded', 'farthest-corner',
+ 'above', 'absolute', 'active', 'add', 'additive', 'after-edge', 'alias', 'all-petite-caps', 'all-scroll',
+ 'all-small-caps', 'alpha', 'alphabetic', 'alternate', 'alternate-reverse', 'always', 'antialiased', 'auto', 'auto-pos',
+ 'available', 'avoid', 'avoid-column', 'avoid-page', 'avoid-region', 'backwards', 'balance', 'baseline', 'before-edge',
+ 'below', 'bevel', 'bidi-override', 'block', 'block-axis', 'block-start', 'block-end', 'bold', 'bolder',
+ 'border-box', 'both', 'bottom', 'bottom-outside', 'break-all', 'break-word', 'bullets', 'butt', 'capitalize',
+ 'cell', 'center', 'central', 'char', 'clone', 'close-quote', 'closest-corner',
+ 'closest-side', 'col-resize', 'collapse', 'color-burn', 'color-dodge', 'column', 'column-reverse',
+ 'common-ligatures', 'compact', 'condensed', 'content-box', 'contents', 'context-menu',
+ 'contextual', 'copy', 'cover', 'crisp-edges', 'crispEdges', 'crosshair', 'cyclic', 'dark', 'darken', 'dashed',
+ 'decimal', 'default', 'dense', 'diagonal-fractions', 'difference', 'digits', 'disabled', 'disc',
+ 'discretionary-ligatures', 'distribute', 'distribute-all-lines', 'distribute-letter', 'distribute-space', 'dot',
+ 'dotted', 'double', 'double-circle', 'downleft', 'downright', 'e-resize', 'each-line', 'ease', 'ease-in',
+ 'ease-in-out', 'ease-out', 'economy', 'ellipsis', 'end', 'evenodd', 'ew-resize', 'exact',
+ 'exclude', 'exclusion', 'expanded', 'extends', 'extra-condensed', 'extra-expanded', 'farthest-corner',
'farthest-side', 'fill', 'fill-available', 'fill-box', 'filled', 'fit-content', 'fixed', 'flat',
- 'flip', 'flow-root', 'forwards', 'freeze', 'from-image', 'full-width', 'geometricPrecision', 'georgian',
- 'grab', 'grabbing', 'groove', 'hand', 'hanging', 'hard-light', 'help', 'hidden', 'hide',
- 'historical-forms', 'historical-ligatures', 'horizontal', 'horizontal-tb', 'hue', 'icon', 'ideograph-alpha',
- 'ideograph-numeric', 'ideograph-parenthesis', 'ideograph-space', 'ideographic', 'inactive', 'infinite', 'inherit',
- 'initial', 'inline', 'inline-axis', 'inline-block', 'inline-end', 'inline-flex', 'inline-grid', 'inline-list-item',
- 'inline-start', 'inline-table', 'inside', 'inter-character', 'inter-ideograph', 'inter-word', 'intersect',
- 'isolate', 'isolate-override', 'italic', 'jis04', 'jis78', 'jis83', 'jis90', 'justify', 'justify-all',
- 'kannada', 'keep-all', 'landscape', 'large', 'larger', 'left', 'light', 'lighten', 'lighter', 'line', 'line-edge',
- 'line-through', 'linear', 'linearRGB', 'lining-nums', 'list-item', 'loose', 'lowercase', 'lr', 'lr-tb', 'ltr',
- 'luminance', 'luminosity', 'main-size', 'mandatory', 'manipulation', 'manual', 'margin-box', 'match-parent',
- 'match-source', 'mathematical', 'max-content', 'medium', 'message-box', 'middle', 'min-content', 'miter',
- 'mixed', 'move', 'multiply', 'n-resize', 'narrower', 'ne-resize', 'nearest-neighbor', 'nesw-resize', 'newspaper',
- 'no-change', 'no-clip', 'no-close-quote', 'no-common-ligatures', 'no-contextual', 'no-discretionary-ligatures',
- 'no-drop', 'no-historical-ligatures', 'no-open-quote', 'no-repeat', 'none', 'nonzero', 'normal', 'not-allowed',
- 'nowrap', 'ns-resize', 'numbers', 'numeric', 'nw-resize', 'nwse-resize', 'oblique', 'oldstyle-nums', 'open',
- 'open-quote', 'optimizeLegibility', 'optimizeQuality', 'optimizeSpeed', 'optional', 'ordinal', 'outset', 'outside',
- 'over', 'overlay', 'overline', 'page', 'painted', 'pan-down', 'pan-left', 'pan-right',
- 'pan-up', 'pan-x', 'pan-y', 'paused', 'petite-caps', 'pixelated', 'plaintext', 'pointer', 'portrait',
- 'pre-line', 'pre-wrap', 'preserve-3d', 'progressive', 'proportional-nums', 'proportional-width',
- 'proximity', 'radial', 'recto', 'region', 'relative', 'remove', 'reset-size', 'reverse',
- 'revert', 'ridge', 'right', 'rl', 'rl-tb', 'round', 'row', 'row-resize', 'row-reverse', 'row-severse', 'rtl',
- 'ruby-base', 'ruby-base-container', 'ruby-text', 'ruby-text-container', 'run-in', 'running', 's-resize', 'saturation',
- 'scale-down', 'screen', 'se-resize', 'semi-condensed', 'semi-expanded', 'separate',
- 'sesame', 'show', 'sideways', 'sideways-left', 'sideways-lr', 'sideways-right', 'sideways-rl', 'simplified',
- 'slashed-zero', 'slice', 'small', 'small-caps', 'small-caption', 'smaller', 'smooth', 'soft-light', 'solid', 'space',
- 'space-around', 'space-between', 'space-evenly', 'spell-out', 'square', 'sRGB', 'stacked-fractions', 'start', 'static',
- 'status-bar', 'swap', 'step-end', 'step-start', 'sticky', 'stretch', 'strict', 'stroke', 'stroke-box', 'style',
- 'subgrid', 'subpixel-antialiased', 'subtract', 'super', 'sw-resize', 'symbolic', 'table-caption',
- 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row',
- 'table-row-group', 'tabular-nums', 'tb', 'tb-rl', 'text', 'text-after-edge', 'text-before-edge', 'text-bottom',
- 'text-top', 'thick', 'thin', 'titling-caps', 'top', 'top-outside', 'touch', 'traditional', 'transparent', 'triangle',
- 'ultra-condensed', 'ultra-expanded', 'under', 'underline', 'unicase', 'unset', 'upleft', 'uppercase', 'upright',
- 'use-glyph-orientation', 'use-script', 'verso', 'vertical', 'vertical-ideographic', 'vertical-lr', 'vertical-rl',
- 'vertical-text', 'view-box', 'visible', 'visibleFill', 'visiblePainted', 'visibleStroke', 'w-resize', 'wait', 'wavy',
- 'weight', 'whitespace', 'wider', 'words', 'wrap', 'wrap-reverse', 'x', 'x-large', 'x-small', 'xx-large', 'xx-small',
+ 'flip', 'flow-root', 'forwards', 'freeze', 'from-image', 'full-width', 'geometricPrecision', 'georgian',
+ 'grab', 'grabbing', 'groove', 'hand', 'hanging', 'hard-light', 'help', 'hidden', 'hide',
+ 'historical-forms', 'historical-ligatures', 'horizontal', 'horizontal-tb', 'hue', 'icon', 'ideograph-alpha',
+ 'ideograph-numeric', 'ideograph-parenthesis', 'ideograph-space', 'ideographic', 'inactive', 'infinite', 'inherit',
+ 'initial', 'inline', 'inline-axis', 'inline-block', 'inline-end', 'inline-flex', 'inline-grid', 'inline-list-item',
+ 'inline-start', 'inline-table', 'inside', 'inter-character', 'inter-ideograph', 'inter-word', 'intersect',
+ 'isolate', 'isolate-override', 'italic', 'jis04', 'jis78', 'jis83', 'jis90', 'justify', 'justify-all',
+ 'kannada', 'keep-all', 'landscape', 'large', 'larger', 'left', 'light', 'lighten', 'lighter', 'line', 'line-edge',
+ 'line-through', 'linear', 'linearRGB', 'lining-nums', 'list-item', 'loose', 'lowercase', 'lr', 'lr-tb', 'ltr',
+ 'luminance', 'luminosity', 'main-size', 'mandatory', 'manipulation', 'manual', 'margin-box', 'match-parent',
+ 'match-source', 'mathematical', 'max-content', 'medium', 'message-box', 'middle', 'min-content', 'miter',
+ 'mixed', 'move', 'multiply', 'n-resize', 'narrower', 'ne-resize', 'nearest-neighbor', 'nesw-resize', 'newspaper',
+ 'no-change', 'no-clip', 'no-close-quote', 'no-common-ligatures', 'no-contextual', 'no-discretionary-ligatures',
+ 'no-drop', 'no-historical-ligatures', 'no-open-quote', 'no-repeat', 'none', 'nonzero', 'normal', 'not-allowed',
+ 'nowrap', 'ns-resize', 'numbers', 'numeric', 'nw-resize', 'nwse-resize', 'oblique', 'oldstyle-nums', 'open',
+ 'open-quote', 'optimizeLegibility', 'optimizeQuality', 'optimizeSpeed', 'optional', 'ordinal', 'outset', 'outside',
+ 'over', 'overlay', 'overline', 'page', 'painted', 'pan-down', 'pan-left', 'pan-right',
+ 'pan-up', 'pan-x', 'pan-y', 'paused', 'petite-caps', 'pixelated', 'plaintext', 'pointer', 'portrait',
+ 'pre-line', 'pre-wrap', 'preserve-3d', 'progressive', 'proportional-nums', 'proportional-width',
+ 'proximity', 'radial', 'recto', 'region', 'relative', 'remove', 'reset-size', 'reverse',
+ 'revert', 'ridge', 'right', 'rl', 'rl-tb', 'round', 'row', 'row-resize', 'row-reverse', 'row-severse', 'rtl',
+ 'ruby-base', 'ruby-base-container', 'ruby-text', 'ruby-text-container', 'run-in', 'running', 's-resize', 'saturation',
+ 'scale-down', 'screen', 'se-resize', 'semi-condensed', 'semi-expanded', 'separate',
+ 'sesame', 'show', 'sideways', 'sideways-left', 'sideways-lr', 'sideways-right', 'sideways-rl', 'simplified',
+ 'slashed-zero', 'slice', 'small', 'small-caps', 'small-caption', 'smaller', 'smooth', 'soft-light', 'solid', 'space',
+ 'space-around', 'space-between', 'space-evenly', 'spell-out', 'square', 'sRGB', 'stacked-fractions', 'start', 'static',
+ 'status-bar', 'swap', 'step-end', 'step-start', 'sticky', 'stretch', 'strict', 'stroke', 'stroke-box', 'style',
+ 'subgrid', 'subpixel-antialiased', 'subtract', 'super', 'sw-resize', 'symbolic', 'table-caption',
+ 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row',
+ 'table-row-group', 'tabular-nums', 'tb', 'tb-rl', 'text', 'text-after-edge', 'text-before-edge', 'text-bottom',
+ 'text-top', 'thick', 'thin', 'titling-caps', 'top', 'top-outside', 'touch', 'traditional', 'transparent', 'triangle',
+ 'ultra-condensed', 'ultra-expanded', 'under', 'underline', 'unicase', 'unset', 'upleft', 'uppercase', 'upright',
+ 'use-glyph-orientation', 'use-script', 'verso', 'vertical', 'vertical-ideographic', 'vertical-lr', 'vertical-rl',
+ 'vertical-text', 'view-box', 'visible', 'visibleFill', 'visiblePainted', 'visibleStroke', 'w-resize', 'wait', 'wavy',
+ 'weight', 'whitespace', 'wider', 'words', 'wrap', 'wrap-reverse', 'x', 'x-large', 'x-small', 'xx-large', 'xx-small',
'y', 'zero', 'zoom-in', 'zoom-out', '!important',
]
-keywords_css = [
- '@annotation', '@bottom-center', '@character-variant', '@charset', '@counter-style',
- '@font-face', '@font-feature-values', '@historical-forms', '@import', '@keyframes', '@layer', '@left-bottom',
- '@media', '@namespace', '@ornaments', '@page', '@property', '@right-bottom', '@scroll-timeline', '@styleset',
+keywords_css = [
+ '@annotation', '@bottom-center', '@character-variant', '@charset', '@counter-style',
+ '@font-face', '@font-feature-values', '@historical-forms', '@import', '@keyframes', '@layer', '@left-bottom',
+ '@media', '@namespace', '@ornaments', '@page', '@property', '@right-bottom', '@scroll-timeline', '@styleset',
'@stylistic', '@supports', '@swash', '@top-center', '@viewport',
- 'a', 'abbr', 'acronym', 'address', 'applet', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo',
- 'bgsound', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col',
- 'colgroup', 'content', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'em',
- 'embed', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'frame', 'frameset', 'head', 'header',
- 'hgroup', 'hr', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li',
- 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'nobr', 'noembed', 'noframes',
- 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'portal', 'pre',
- 'progress', 'q', 'rb', 'rp', 'rt', 'rtc', 'ruby', 's', 'samp', 'script', 'section', 'select', 'shadow', 'slot',
- 'source', 'spacer', 'span', 'strike', 'strong', 'sub', 'summary', 'sup', 'table', 'tbody', 'td',
- 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'tt', 'u', 'ul', 'video', 'wbr',
+ 'a', 'abbr', 'acronym', 'address', 'applet', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo',
+ 'bgsound', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col',
+ 'colgroup', 'content', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'em',
+ 'embed', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'frame', 'frameset', 'head', 'header',
+ 'hgroup', 'hr', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li',
+ 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'nobr', 'noembed', 'noframes',
+ 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'portal', 'pre',
+ 'progress', 'q', 'rb', 'rp', 'rt', 'rtc', 'ruby', 's', 'samp', 'script', 'section', 'select', 'shadow', 'slot',
+ 'source', 'spacer', 'span', 'strike', 'strong', 'sub', 'summary', 'sup', 'table', 'tbody', 'td',
+ 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'tt', 'u', 'ul', 'video', 'wbr',
'xmp', 'svg'
]
@@ -615,6 +610,304 @@ keywords_comment = [
]
+keywords_gdscript = [
+ 'if', 'elif', 'else', 'for', 'while', 'match', 'break', 'continue',
+ 'pass', 'return', 'class', 'class_name', 'extends', 'is', 'in', 'as',
+ 'self', 'signal', 'func', 'static', 'const', 'enum', 'var', 'breakpoint',
+ 'preload', 'await', 'yield', 'assert', 'void',
+]
+
+builtins_gdscript = [
+ 'AABB', 'AESContext', 'AStar2D', 'AStar3D', 'AStarGrid2D', 'AcceptDialog',
+ 'AnimatableBody2D', 'AnimatableBody3D', 'AnimatedSprite2D', 'AnimatedSprite3D',
+ 'AnimatedTexture', 'Animation', 'AnimationLibrary', 'AnimationNode',
+ 'AnimationNodeAdd2', 'AnimationNodeAdd3', 'AnimationNodeAnimation',
+ 'AnimationNodeBlend2', 'AnimationNodeBlend3', 'AnimationNodeBlendSpace1D',
+ 'AnimationNodeBlendSpace2D', 'AnimationNodeBlendTree', 'AnimationNodeOneShot',
+ 'AnimationNodeOutput', 'AnimationNodeStateMachine',
+ 'AnimationNodeStateMachinePlayback', 'AnimationNodeStateMachineTransition',
+ 'AnimationNodeSub2', 'AnimationNodeSync', 'AnimationNodeTimeScale',
+ 'AnimationNodeTimeSeek', 'AnimationNodeTransition', 'AnimationPlayer',
+ 'AnimationRootNode', 'AnimationTree', 'Area2D', 'Area3D', 'Array', 'ArrayMesh',
+ 'ArrayOccluder3D', 'AspectRatioContainer', 'AtlasTexture', 'AudioBusLayout',
+ 'AudioEffect', 'AudioEffectAmplify', 'AudioEffectBandLimitFilter',
+ 'AudioEffectBandPassFilter', 'AudioEffectCapture', 'AudioEffectChorus',
+ 'AudioEffectCompressor', 'AudioEffectDelay', 'AudioEffectDistortion',
+ 'AudioEffectEQ', 'AudioEffectEQ10', 'AudioEffectEQ21', 'AudioEffectEQ6',
+ 'AudioEffectFilter', 'AudioEffectHighPassFilter', 'AudioEffectHighShelfFilter',
+ 'AudioEffectInstance', 'AudioEffectLimiter', 'AudioEffectLowPassFilter',
+ 'AudioEffectLowShelfFilter', 'AudioEffectNotchFilter', 'AudioEffectPanner',
+ 'AudioEffectPhaser', 'AudioEffectPitchShift', 'AudioEffectRecord',
+ 'AudioEffectReverb', 'AudioEffectSpectrumAnalyzer',
+ 'AudioEffectSpectrumAnalyzerInstance', 'AudioEffectStereoEnhance',
+ 'AudioListener2D', 'AudioListener3D', 'AudioServer', 'AudioStream',
+ 'AudioStreamGenerator', 'AudioStreamGeneratorPlayback', 'AudioStreamMP3',
+ 'AudioStreamMicrophone', 'AudioStreamOggVorbis', 'AudioStreamPlayback',
+ 'AudioStreamPlaybackOggVorbis', 'AudioStreamPlaybackPolyphonic',
+ 'AudioStreamPlaybackResampled', 'AudioStreamPlayer', 'AudioStreamPlayer2D',
+ 'AudioStreamPlayer3D', 'AudioStreamPolyphonic', 'AudioStreamRandomizer',
+ 'AudioStreamWAV', 'BackBufferCopy', 'BaseButton', 'BaseMaterial3D', 'Basis',
+ 'BitMap', 'Bone2D', 'BoneAttachment3D', 'BoneMap', 'BoxContainer', 'BoxMesh',
+ 'BoxOccluder3D', 'BoxShape3D', 'Button', 'ButtonGroup', 'CPUParticles2D',
+ 'CPUParticles3D', 'CSGBox3D', 'CSGCombiner3D', 'CSGCylinder3D', 'CSGMesh3D',
+ 'CSGPolygon3D', 'CSGPrimitive3D', 'CSGShape3D', 'CSGSphere3D', 'CSGTorus3D',
+ 'CSharpScript', 'Callable', 'CallbackTweener', 'Camera2D', 'Camera3D',
+ 'CameraAttributes', 'CameraAttributesPhysical', 'CameraAttributesPractical',
+ 'CameraFeed', 'CameraServer', 'CameraTexture', 'CanvasGroup', 'CanvasItem',
+ 'CanvasItemMaterial', 'CanvasLayer', 'CanvasModulate', 'CanvasTexture',
+ 'CapsuleMesh', 'CapsuleShape2D', 'CapsuleShape3D', 'CenterContainer',
+ 'CharFXTransform', 'CharacterBody2D', 'CharacterBody3D', 'CheckBox',
+ 'CheckButton', 'CircleShape2D', 'ClassDB', 'CodeEdit', 'CodeHighlighter',
+ 'CollisionObject2D', 'CollisionObject3D', 'CollisionPolygon2D',
+ 'CollisionPolygon3D', 'CollisionShape2D', 'CollisionShape3D', 'Color',
+ 'ColorPicker', 'ColorPickerButton', 'ColorRect', 'CompressedCubemap',
+ 'CompressedCubemapArray', 'CompressedTexture2D', 'CompressedTexture2DArray',
+ 'CompressedTexture3D', 'CompressedTextureLayered', 'ConcavePolygonShape2D',
+ 'ConcavePolygonShape3D', 'ConeTwistJoint3D', 'ConfigFile',
+ 'ConfirmationDialog', 'Container', 'Control', 'ConvexPolygonShape2D',
+ 'ConvexPolygonShape3D', 'Crypto', 'CryptoKey', 'Cubemap', 'CubemapArray',
+ 'Curve', 'Curve2D', 'Curve3D', 'CurveTexture', 'CurveXYZTexture',
+ 'CylinderMesh', 'CylinderShape3D', 'DTLSServer', 'DampedSpringJoint2D',
+ 'Decal', 'Dictionary', 'DirAccess', 'DirectionalLight2D', 'DirectionalLight3D',
+ 'DisplayServer', 'ENetConnection', 'ENetMultiplayerPeer', 'ENetPacketPeer',
+ 'EditorCommandPalette', 'EditorDebuggerPlugin', 'EditorDebuggerSession',
+ 'EditorExportPlatform', 'EditorExportPlatformAndroid',
+ 'EditorExportPlatformIOS', 'EditorExportPlatformLinuxBSD',
+ 'EditorExportPlatformMacOS', 'EditorExportPlatformPC',
+ 'EditorExportPlatformWeb', 'EditorExportPlatformWindows', 'EditorExportPlugin',
+ 'EditorFeatureProfile', 'EditorFileDialog', 'EditorFileSystem',
+ 'EditorFileSystemDirectory', 'EditorFileSystemImportFormatSupportQuery',
+ 'EditorImportPlugin', 'EditorInspector', 'EditorInspectorPlugin',
+ 'EditorInterface', 'EditorNode3DGizmo', 'EditorNode3DGizmoPlugin',
+ 'EditorPaths', 'EditorPlugin', 'EditorProperty',
+ 'EditorResourceConversionPlugin', 'EditorResourcePicker',
+ 'EditorResourcePreview', 'EditorResourcePreviewGenerator',
+ 'EditorResourceTooltipPlugin', 'EditorSceneFormatImporter',
+ 'EditorSceneFormatImporterBlend', 'EditorSceneFormatImporterFBX',
+ 'EditorSceneFormatImporterGLTF', 'EditorScenePostImport',
+ 'EditorScenePostImportPlugin', 'EditorScript', 'EditorScriptPicker',
+ 'EditorSelection', 'EditorSettings', 'EditorSpinSlider',
+ 'EditorSyntaxHighlighter', 'EditorTranslationParserPlugin',
+ 'EditorUndoRedoManager', 'EditorVCSInterface', 'EncodedObjectAsID', 'Engine',
+ 'EngineDebugger', 'EngineProfiler', 'Environment', 'Expression',
+ 'FastNoiseLite', 'FileAccess', 'FileDialog', 'FileSystemDock', 'FlowContainer',
+ 'FogMaterial', 'FogVolume', 'Font', 'FontFile', 'FontVariation', 'GDExtension',
+ 'GDExtensionManager', 'GDScript', 'GLTFAccessor', 'GLTFAnimation',
+ 'GLTFBufferView', 'GLTFCamera', 'GLTFDocument', 'GLTFDocumentExtension',
+ 'GLTFDocumentExtensionConvertImporterMesh', 'GLTFLight', 'GLTFMesh',
+ 'GLTFNode', 'GLTFPhysicsBody', 'GLTFPhysicsShape', 'GLTFSkeleton', 'GLTFSkin',
+ 'GLTFSpecGloss', 'GLTFState', 'GLTFTexture', 'GLTFTextureSampler',
+ 'GPUParticles2D', 'GPUParticles3D', 'GPUParticlesAttractor3D',
+ 'GPUParticlesAttractorBox3D', 'GPUParticlesAttractorSphere3D',
+ 'GPUParticlesAttractorVectorField3D', 'GPUParticlesCollision3D',
+ 'GPUParticlesCollisionBox3D', 'GPUParticlesCollisionHeightField3D',
+ 'GPUParticlesCollisionSDF3D', 'GPUParticlesCollisionSphere3D',
+ 'Generic6DOFJoint3D', 'Geometry2D', 'Geometry3D', 'GeometryInstance3D',
+ 'GodotSharp', 'Gradient', 'GradientTexture1D', 'GradientTexture2D',
+ 'GraphEdit', 'GraphNode', 'GridContainer', 'GridMap', 'GrooveJoint2D',
+ 'HBoxContainer', 'HFlowContainer', 'HMACContext', 'HScrollBar', 'HSeparator',
+ 'HSlider', 'HSplitContainer', 'HTTPClient', 'HTTPRequest', 'HashingContext',
+ 'HeightMapShape3D', 'HingeJoint3D', 'IP', 'Image', 'ImageFormatLoader',
+ 'ImageFormatLoaderExtension', 'ImageTexture', 'ImageTexture3D',
+ 'ImageTextureLayered', 'ImmediateMesh', 'ImporterMesh',
+ 'ImporterMeshInstance3D', 'Input', 'InputEvent', 'InputEventAction',
+ 'InputEventFromWindow', 'InputEventGesture', 'InputEventJoypadButton',
+ 'InputEventJoypadMotion', 'InputEventKey', 'InputEventMIDI',
+ 'InputEventMagnifyGesture', 'InputEventMouse', 'InputEventMouseButton',
+ 'InputEventMouseMotion', 'InputEventPanGesture', 'InputEventScreenDrag',
+ 'InputEventScreenTouch', 'InputEventShortcut', 'InputEventWithModifiers',
+ 'InputMap', 'InstancePlaceholder', 'IntervalTweener', 'ItemList',
+ 'JNISingleton', 'JSON', 'JSONRPC', 'JavaClass', 'JavaClassWrapper',
+ 'JavaScriptBridge', 'JavaScriptObject', 'Joint2D', 'Joint3D',
+ 'KinematicCollision2D', 'KinematicCollision3D', 'Label', 'Label3D',
+ 'LabelSettings', 'Light2D', 'Light3D', 'LightOccluder2D', 'LightmapGI',
+ 'LightmapGIData', 'LightmapProbe', 'Lightmapper', 'LightmapperRD', 'Line2D',
+ 'LineEdit', 'LinkButton', 'MainLoop', 'MarginContainer', 'Marker2D',
+ 'Marker3D', 'Marshalls', 'Material', 'MenuBar', 'MenuButton', 'Mesh',
+ 'MeshConvexDecompositionSettings', 'MeshDataTool', 'MeshInstance2D',
+ 'MeshInstance3D', 'MeshLibrary', 'MeshTexture', 'MethodTweener', 'MissingNode',
+ 'MissingResource', 'MobileVRInterface', 'MovieWriter', 'MultiMesh',
+ 'MultiMeshInstance2D', 'MultiMeshInstance3D', 'MultiplayerAPI',
+ 'MultiplayerAPIExtension', 'MultiplayerPeer', 'MultiplayerPeerExtension',
+ 'MultiplayerSpawner', 'MultiplayerSynchronizer', 'Mutex', 'NavigationAgent2D',
+ 'NavigationAgent3D', 'NavigationLink2D', 'NavigationLink3D', 'NavigationMesh',
+ 'NavigationMeshGenerator', 'NavigationMeshSourceGeometryData3D',
+ 'NavigationObstacle2D', 'NavigationObstacle3D',
+ 'NavigationPathQueryParameters2D', 'NavigationPathQueryParameters3D',
+ 'NavigationPathQueryResult2D', 'NavigationPathQueryResult3D',
+ 'NavigationPolygon', 'NavigationRegion2D', 'NavigationRegion3D',
+ 'NavigationServer2D', 'NavigationServer3D', 'NinePatchRect', 'Node', 'Node2D',
+ 'Node3D', 'Node3DGizmo', 'NodePath', 'Noise', 'NoiseTexture2D',
+ 'NoiseTexture3D', 'ORMMaterial3D', 'OS', 'Object', 'Occluder3D',
+ 'OccluderInstance3D', 'OccluderPolygon2D', 'OfflineMultiplayerPeer',
+ 'OggPacketSequence', 'OggPacketSequencePlayback', 'OmniLight3D',
+ 'OpenXRAction', 'OpenXRActionMap', 'OpenXRActionSet', 'OpenXRHand',
+ 'OpenXRIPBinding', 'OpenXRInteractionProfile', 'OpenXRInterface',
+ 'OptimizedTranslation', 'OptionButton', 'PCKPacker', 'PackedByteArray',
+ 'PackedColorArray', 'PackedDataContainer', 'PackedDataContainerRef',
+ 'PackedFloat32Array', 'PackedFloat64Array', 'PackedInt32Array',
+ 'PackedInt64Array', 'PackedScene', 'PackedStringArray', 'PackedVector2Array',
+ 'PackedVector3Array', 'PacketPeer', 'PacketPeerDTLS', 'PacketPeerExtension',
+ 'PacketPeerStream', 'PacketPeerUDP', 'Panel', 'PanelContainer',
+ 'PanoramaSkyMaterial', 'ParallaxBackground', 'ParallaxLayer',
+ 'ParticleProcessMaterial', 'Path2D', 'Path3D', 'PathFollow2D', 'PathFollow3D',
+ 'Performance', 'PhysicalBone2D', 'PhysicalBone3D', 'PhysicalSkyMaterial',
+ 'PhysicsBody2D', 'PhysicsBody3D', 'PhysicsDirectBodyState2D',
+ 'PhysicsDirectBodyState2DExtension', 'PhysicsDirectBodyState3D',
+ 'PhysicsDirectBodyState3DExtension', 'PhysicsDirectSpaceState2D',
+ 'PhysicsDirectSpaceState2DExtension', 'PhysicsDirectSpaceState3D',
+ 'PhysicsDirectSpaceState3DExtension', 'PhysicsMaterial',
+ 'PhysicsPointQueryParameters2D', 'PhysicsPointQueryParameters3D',
+ 'PhysicsRayQueryParameters2D', 'PhysicsRayQueryParameters3D',
+ 'PhysicsServer2D', 'PhysicsServer2DExtension', 'PhysicsServer2DManager',
+ 'PhysicsServer3D', 'PhysicsServer3DExtension', 'PhysicsServer3DManager',
+ 'PhysicsServer3DRenderingServerHandler', 'PhysicsShapeQueryParameters2D',
+ 'PhysicsShapeQueryParameters3D', 'PhysicsTestMotionParameters2D',
+ 'PhysicsTestMotionParameters3D', 'PhysicsTestMotionResult2D',
+ 'PhysicsTestMotionResult3D', 'PinJoint2D', 'PinJoint3D', 'PlaceholderCubemap',
+ 'PlaceholderCubemapArray', 'PlaceholderMaterial', 'PlaceholderMesh',
+ 'PlaceholderTexture2D', 'PlaceholderTexture2DArray', 'PlaceholderTexture3D',
+ 'PlaceholderTextureLayered', 'Plane', 'PlaneMesh', 'PointLight2D', 'PointMesh',
+ 'Polygon2D', 'PolygonOccluder3D', 'PolygonPathFinder', 'Popup', 'PopupMenu',
+ 'PopupPanel', 'PortableCompressedTexture2D', 'PrimitiveMesh', 'PrismMesh',
+ 'ProceduralSkyMaterial', 'ProgressBar', 'ProjectSettings', 'Projection',
+ 'PropertyTweener', 'QuadMesh', 'QuadOccluder3D', 'Quaternion',
+ 'RDAttachmentFormat', 'RDFramebufferPass', 'RDPipelineColorBlendState',
+ 'RDPipelineColorBlendStateAttachment', 'RDPipelineDepthStencilState',
+ 'RDPipelineMultisampleState', 'RDPipelineRasterizationState',
+ 'RDPipelineSpecializationConstant', 'RDSamplerState', 'RDShaderFile',
+ 'RDShaderSPIRV', 'RDShaderSource', 'RDTextureFormat', 'RDTextureView',
+ 'RDUniform', 'RDVertexAttribute', 'RID', 'RandomNumberGenerator', 'Range',
+ 'RayCast2D', 'RayCast3D', 'Rect2', 'Rect2i', 'RectangleShape2D', 'RefCounted',
+ 'ReferenceRect', 'ReflectionProbe', 'RegEx', 'RegExMatch', 'RemoteTransform2D',
+ 'RemoteTransform3D', 'RenderingDevice', 'RenderingServer', 'Resource',
+ 'ResourceFormatLoader', 'ResourceFormatSaver', 'ResourceImporter',
+ 'ResourceLoader', 'ResourcePreloader', 'ResourceSaver', 'ResourceUID',
+ 'RibbonTrailMesh', 'RichTextEffect', 'RichTextLabel', 'RigidBody2D',
+ 'RigidBody3D', 'RootMotionView', 'SceneMultiplayer', 'SceneReplicationConfig',
+ 'SceneState', 'SceneTree', 'SceneTreeTimer', 'Script', 'ScriptCreateDialog',
+ 'ScriptEditor', 'ScriptEditorBase', 'ScriptExtension', 'ScriptLanguage',
+ 'ScriptLanguageExtension', 'ScrollBar', 'ScrollContainer', 'SegmentShape2D',
+ 'Semaphore', 'SeparationRayShape2D', 'SeparationRayShape3D', 'Separator',
+ 'Shader', 'ShaderGlobalsOverride', 'ShaderInclude', 'ShaderMaterial',
+ 'Shape2D', 'Shape3D', 'ShapeCast2D', 'ShapeCast3D', 'Shortcut', 'Signal',
+ 'Skeleton2D', 'Skeleton3D', 'SkeletonIK3D', 'SkeletonModification2D',
+ 'SkeletonModification2DCCDIK', 'SkeletonModification2DFABRIK',
+ 'SkeletonModification2DJiggle', 'SkeletonModification2DLookAt',
+ 'SkeletonModification2DPhysicalBones', 'SkeletonModification2DStackHolder',
+ 'SkeletonModification2DTwoBoneIK', 'SkeletonModificationStack2D',
+ 'SkeletonProfile', 'SkeletonProfileHumanoid', 'Skin', 'SkinReference', 'Sky',
+ 'Slider', 'SliderJoint3D', 'SoftBody3D', 'SphereMesh', 'SphereOccluder3D',
+ 'SphereShape3D', 'SpinBox', 'SplitContainer', 'SpotLight3D', 'SpringArm3D',
+ 'Sprite2D', 'Sprite3D', 'SpriteBase3D', 'SpriteFrames', 'StandardMaterial3D',
+ 'StaticBody2D', 'StaticBody3D', 'StreamPeer', 'StreamPeerBuffer',
+ 'StreamPeerExtension', 'StreamPeerGZIP', 'StreamPeerTCP', 'StreamPeerTLS',
+ 'String', 'StringName', 'StyleBox', 'StyleBoxEmpty', 'StyleBoxFlat',
+ 'StyleBoxLine', 'StyleBoxTexture', 'SubViewport', 'SubViewportContainer',
+ 'SurfaceTool', 'SyntaxHighlighter', 'SystemFont', 'TCPServer', 'TLSOptions',
+ 'TabBar', 'TabContainer', 'TextEdit', 'TextLine', 'TextMesh', 'TextParagraph',
+ 'TextServer', 'TextServerAdvanced', 'TextServerDummy', 'TextServerExtension',
+ 'TextServerFallback', 'TextServerManager', 'Texture', 'Texture2D',
+ 'Texture2DArray', 'Texture3D', 'TextureButton', 'TextureLayered',
+ 'TextureProgressBar', 'TextureRect', 'Theme', 'ThemeDB', 'Thread', 'TileData',
+ 'TileMap', 'TileMapPattern', 'TileSet', 'TileSetAtlasSource',
+ 'TileSetScenesCollectionSource', 'TileSetSource', 'Time', 'Timer', 'TorusMesh',
+ 'TouchScreenButton', 'Transform2D', 'Transform3D', 'Translation',
+ 'TranslationServer', 'Tree', 'TreeItem', 'TriangleMesh', 'TubeTrailMesh',
+ 'Tween', 'Tweener', 'UDPServer', 'UPNP', 'UPNPDevice', 'UndoRedo',
+ 'VBoxContainer', 'VFlowContainer', 'VScrollBar', 'VSeparator', 'VSlider',
+ 'VSplitContainer', 'Variant', 'Vector2', 'Vector2i', 'Vector3', 'Vector3i',
+ 'Vector4', 'Vector4i', 'VehicleBody3D', 'VehicleWheel3D', 'VideoStream',
+ 'VideoStreamPlayback', 'VideoStreamPlayer', 'VideoStreamTheora', 'Viewport',
+ 'ViewportTexture', 'VisibleOnScreenEnabler2D', 'VisibleOnScreenEnabler3D',
+ 'VisibleOnScreenNotifier2D', 'VisibleOnScreenNotifier3D', 'VisualInstance3D',
+ 'VisualShader', 'VisualShaderNode', 'VisualShaderNodeBillboard',
+ 'VisualShaderNodeBooleanConstant', 'VisualShaderNodeBooleanParameter',
+ 'VisualShaderNodeClamp', 'VisualShaderNodeColorConstant',
+ 'VisualShaderNodeColorFunc', 'VisualShaderNodeColorOp',
+ 'VisualShaderNodeColorParameter', 'VisualShaderNodeComment',
+ 'VisualShaderNodeCompare', 'VisualShaderNodeConstant',
+ 'VisualShaderNodeCubemap', 'VisualShaderNodeCubemapParameter',
+ 'VisualShaderNodeCurveTexture', 'VisualShaderNodeCurveXYZTexture',
+ 'VisualShaderNodeCustom', 'VisualShaderNodeDerivativeFunc',
+ 'VisualShaderNodeDeterminant', 'VisualShaderNodeDistanceFade',
+ 'VisualShaderNodeDotProduct', 'VisualShaderNodeExpression',
+ 'VisualShaderNodeFaceForward', 'VisualShaderNodeFloatConstant',
+ 'VisualShaderNodeFloatFunc', 'VisualShaderNodeFloatOp',
+ 'VisualShaderNodeFloatParameter', 'VisualShaderNodeFresnel',
+ 'VisualShaderNodeGlobalExpression', 'VisualShaderNodeGroupBase',
+ 'VisualShaderNodeIf', 'VisualShaderNodeInput', 'VisualShaderNodeIntConstant',
+ 'VisualShaderNodeIntFunc', 'VisualShaderNodeIntOp',
+ 'VisualShaderNodeIntParameter', 'VisualShaderNodeIs',
+ 'VisualShaderNodeLinearSceneDepth', 'VisualShaderNodeMix',
+ 'VisualShaderNodeMultiplyAdd', 'VisualShaderNodeOuterProduct',
+ 'VisualShaderNodeOutput', 'VisualShaderNodeParameter',
+ 'VisualShaderNodeParameterRef', 'VisualShaderNodeParticleAccelerator',
+ 'VisualShaderNodeParticleBoxEmitter', 'VisualShaderNodeParticleConeVelocity',
+ 'VisualShaderNodeParticleEmit', 'VisualShaderNodeParticleEmitter',
+ 'VisualShaderNodeParticleMeshEmitter',
+ 'VisualShaderNodeParticleMultiplyByAxisAngle',
+ 'VisualShaderNodeParticleOutput', 'VisualShaderNodeParticleRandomness',
+ 'VisualShaderNodeParticleRingEmitter', 'VisualShaderNodeParticleSphereEmitter',
+ 'VisualShaderNodeProximityFade', 'VisualShaderNodeRandomRange',
+ 'VisualShaderNodeRemap', 'VisualShaderNodeResizableBase',
+ 'VisualShaderNodeSDFRaymarch', 'VisualShaderNodeSDFToScreenUV',
+ 'VisualShaderNodeSample3D', 'VisualShaderNodeScreenUVToSDF',
+ 'VisualShaderNodeSmoothStep', 'VisualShaderNodeStep', 'VisualShaderNodeSwitch',
+ 'VisualShaderNodeTexture', 'VisualShaderNodeTexture2DArray',
+ 'VisualShaderNodeTexture2DArrayParameter',
+ 'VisualShaderNodeTexture2DParameter', 'VisualShaderNodeTexture3D',
+ 'VisualShaderNodeTexture3DParameter', 'VisualShaderNodeTextureParameter',
+ 'VisualShaderNodeTextureParameterTriplanar', 'VisualShaderNodeTextureSDF',
+ 'VisualShaderNodeTextureSDFNormal', 'VisualShaderNodeTransformCompose',
+ 'VisualShaderNodeTransformConstant', 'VisualShaderNodeTransformDecompose',
+ 'VisualShaderNodeTransformFunc', 'VisualShaderNodeTransformOp',
+ 'VisualShaderNodeTransformParameter', 'VisualShaderNodeTransformVecMult',
+ 'VisualShaderNodeUIntConstant', 'VisualShaderNodeUIntFunc',
+ 'VisualShaderNodeUIntOp', 'VisualShaderNodeUIntParameter',
+ 'VisualShaderNodeUVFunc', 'VisualShaderNodeUVPolarCoord',
+ 'VisualShaderNodeVarying', 'VisualShaderNodeVaryingGetter',
+ 'VisualShaderNodeVaryingSetter', 'VisualShaderNodeVec2Constant',
+ 'VisualShaderNodeVec2Parameter', 'VisualShaderNodeVec3Constant',
+ 'VisualShaderNodeVec3Parameter', 'VisualShaderNodeVec4Constant',
+ 'VisualShaderNodeVec4Parameter', 'VisualShaderNodeVectorBase',
+ 'VisualShaderNodeVectorCompose', 'VisualShaderNodeVectorDecompose',
+ 'VisualShaderNodeVectorDistance', 'VisualShaderNodeVectorFunc',
+ 'VisualShaderNodeVectorLen', 'VisualShaderNodeVectorOp',
+ 'VisualShaderNodeVectorRefract', 'VoxelGI', 'VoxelGIData', 'WeakRef',
+ 'WebRTCDataChannel', 'WebRTCDataChannelExtension', 'WebRTCMultiplayerPeer',
+ 'WebRTCPeerConnection', 'WebRTCPeerConnectionExtension',
+ 'WebSocketMultiplayerPeer', 'WebSocketPeer', 'WebXRInterface', 'Window',
+ 'WorkerThreadPool', 'World2D', 'World3D', 'WorldBoundaryShape2D',
+ 'WorldBoundaryShape3D', 'WorldEnvironment', 'X509Certificate', 'XMLParser',
+ 'XRAnchor3D', 'XRCamera3D', 'XRController3D', 'XRInterface',
+ 'XRInterfaceExtension', 'XRNode3D', 'XROrigin3D', 'XRPose',
+ 'XRPositionalTracker', 'XRServer', 'ZIPPacker', 'ZIPReader', 'abs', 'absf',
+ 'absi', 'acos', 'asin', 'atan', 'atan2', 'bezier_derivative',
+ 'bezier_interpolate', 'bool', 'bytes_to_var', 'bytes_to_var_with_objects',
+ 'ceil', 'ceilf', 'ceili', 'clamp', 'clampf', 'clampi', 'cos', 'cosh',
+ 'cubic_interpolate', 'cubic_interpolate_angle',
+ 'cubic_interpolate_angle_in_time', 'cubic_interpolate_in_time', 'db_to_linear',
+ 'deg_to_rad', 'ease', 'error_string', 'exp', 'float', 'floor', 'floorf',
+ 'floori', 'fmod', 'fposmod', 'hash', 'instance_from_id', 'int', 'inverse_lerp',
+ 'is_equal_approx', 'is_finite', 'is_inf', 'is_instance_id_valid',
+ 'is_instance_valid', 'is_nan', 'is_same', 'is_zero_approx', 'lerp',
+ 'lerp_angle', 'lerpf', 'linear_to_db', 'log', 'max', 'maxf', 'maxi', 'min',
+ 'minf', 'mini', 'move_toward', 'nearest_po2', 'pingpong', 'posmod', 'pow',
+ 'print', 'print_rich', 'print_verbose', 'printerr', 'printraw', 'prints',
+ 'printt', 'push_error', 'push_warning', 'rad_to_deg', 'rand_from_seed',
+ 'randf', 'randf_range', 'randfn', 'randi', 'randi_range', 'randomize', 'remap',
+ 'rid_allocate_id', 'rid_from_int64', 'round', 'roundf', 'roundi', 'seed',
+ 'sign', 'signf', 'signi', 'sin', 'sinh', 'smoothstep', 'snapped', 'snappedf',
+ 'snappedi', 'sqrt', 'step_decimals', 'str', 'str_to_var', 'tan', 'tanh',
+ 'typeof', 'var_to_bytes', 'var_to_bytes_with_objects', 'var_to_str', 'weakref',
+ 'wrap', 'wrapf', 'wrapi'
+]
+
+constants_gdscript = [
+ 'PI', 'TAU', 'INF', 'NAN', 'null', 'true', 'false',
+]
+
file = open('keywords.h', 'w')
file.write('''// keywords for all languages ted supports
// This file was auto-generated by keywords.py
@@ -652,5 +945,6 @@ output_keywords(file, label(constants_config, SYNTAX_CONSTANT), 'config')
output_keywords(file, label(keywords_glsl, SYNTAX_KEYWORD) + label(constants_glsl, SYNTAX_CONSTANT)
+ label(builtins_glsl, SYNTAX_BUILTIN), 'glsl')
output_keywords(file, label(builtins_css, SYNTAX_BUILTIN) + label(constants_css, SYNTAX_CONSTANT) + label(keywords_css, SYNTAX_KEYWORD), 'css')
+output_keywords(file, label(builtins_gdscript, SYNTAX_BUILTIN) + label(constants_gdscript, SYNTAX_CONSTANT) + label(keywords_gdscript, SYNTAX_KEYWORD), 'gdscript')
output_keywords(file, label(keywords_comment, SYNTAX_TODO), 'comment')
file.close()
diff --git a/main.c b/main.c
index 595d4c5..12d7d63 100644
--- a/main.c
+++ b/main.c
@@ -1,6 +1,6 @@
/*
TODO:
-- gdscript syntax highlighting
+- LSP over TCP (needed for godot)
FUTURE FEATURES:
- autodetect indentation (tabs vs spaces)
- custom file/build command associations
diff --git a/syntax.c b/syntax.c
index c7c4d6e..e68797a 100644
--- a/syntax.c
+++ b/syntax.c
@@ -30,6 +30,11 @@ enum {
};
enum {
+ SYNTAX_STATE_GDSCRIPT_STRING = 0x01u, // multiline strings (''' and """)
+ SYNTAX_STATE_GDSCRIPT_STRING_DBL_QUOTED = 0x02u, // is this a """ string, as opposed to a ''' string?
+};
+
+enum {
SYNTAX_STATE_TEX_DOLLAR = 0x01u, // inside math $ ... $
SYNTAX_STATE_TEX_DOLLARDOLLAR = 0x02u, // inside math $$ ... $$
SYNTAX_STATE_TEX_VERBATIM = 0x04u, // inside \begin{verbatim} ... \end{verbatim}
@@ -2016,6 +2021,154 @@ static void syntax_highlight_css(SyntaxState *state_ptr, const char32_t *line, u
);
}
+static void syntax_highlight_gdscript(SyntaxState *state, const char32_t *line, u32 line_len, SyntaxCharType *char_types) {
+ (void)state;
+ bool in_string = (*state & SYNTAX_STATE_GDSCRIPT_STRING) != 0;
+ bool string_is_dbl_quoted = (*state & SYNTAX_STATE_GDSCRIPT_STRING_DBL_QUOTED) != 0;
+ bool string_is_multiline = true;
+ bool in_number = false;
+ u32 backslashes = 0;
+
+ for (u32 i = 0; i < line_len; ++i) {
+ char32_t c = line[i];
+ bool dealt_with = false;
+ switch (c) {
+ case '#':
+ if (!in_string) {
+ // comment
+ if (char_types) {
+ for (u32 j = i; j < line_len; ++j)
+ char_types[j] = syntax_highlight_comment(line, j, line_len);
+ dealt_with = true;
+ }
+ i = line_len - 1;
+ }
+ break;
+ case '@':
+ if (char_types && !in_string
+ && i+1 < line_len
+ && is32_word(line[i+1])) {
+ // annotations (e.g. @onready)
+ char_types[i++] = SYNTAX_PREPROCESSOR;
+ while (i < line_len) {
+ if (!is32_word(line[i])) {
+ --i;
+ dealt_with = true;
+ break;
+ }
+ char_types[i++] = SYNTAX_PREPROCESSOR;
+ }
+ }
+ break;
+ case '$':
+ case '^':
+ case '&':
+ case '%':
+ if (char_types
+ && i && i+1 < line_len
+ && !is32_word(line[i-1])
+ && (is32_word(line[i+1]) || line[i+1] == '/')) {
+ // unquoted StringName/node literal
+ char_types[i++] = SYNTAX_STRING;
+ while (i < line_len) {
+ if (!(is32_word(line[i]) || line[i] == '/')) {
+ --i;
+ dealt_with = true;
+ break;
+ }
+ char_types[i++] = SYNTAX_STRING;
+ }
+ }
+ break;
+ case '\'':
+ case '"': {
+ bool dbl_quoted = c == '"';
+ bool is_triple = i+2 < line_len &&
+ line[i+1] == c && line[i+2] == c;
+ if (in_string) {
+ if (!string_is_multiline || is_triple) {
+ if (string_is_dbl_quoted == dbl_quoted && backslashes % 2 == 0) {
+ // end of string
+ in_string = false;
+ if (char_types) {
+ char_types[i] = SYNTAX_STRING;
+ if (string_is_multiline) {
+ // highlight all three ending quotes
+ char_types[++i] = SYNTAX_STRING;
+ char_types[++i] = SYNTAX_STRING;
+ }
+ dealt_with = true;
+ }
+ }
+ }
+ } else {
+ // start of string
+ string_is_dbl_quoted = dbl_quoted;
+ in_string = true;
+ string_is_multiline = is_triple;
+ if (char_types && i && line[i-1] < CHAR_MAX && strchr("&^$%", (char)line[i-1])) {
+ // quoted StringName/node path literal
+ char_types[i-1] = SYNTAX_STRING;
+ }
+ }
+ } break;
+ case ANY_DIGIT:
+ if (char_types && !in_string && !in_number) {
+ in_number = true;
+ if (i) {
+ if (line[i - 1] == '.') {
+ // support .6, for example
+ char_types[i - 1] = SYNTAX_CONSTANT;
+ } else if (is32_word(line[i - 1])) {
+ // actually, this isn't a number. it's something like a*6* or u3*2*.
+ in_number = false;
+ }
+ }
+ }
+ break;
+ case '\\':
+ ++backslashes;
+ break;
+ default:
+ if ((i && is32_word(line[i - 1])) || !is32_word(c))
+ break; // can't be a keyword on its own.
+
+ if (char_types && !in_string && !in_number) {
+ u32 keyword_len = syntax_keyword_len(LANG_GDSCRIPT, line, i, line_len);
+ Keyword const *keyword = syntax_keyword_lookup(syntax_all_keywords_gdscript, &line[i], keyword_len);
+ if (keyword) {
+ SyntaxCharType type = keyword->type;
+ for (size_t j = 0; j < keyword_len; ++j) {
+ char_types[i++] = type;
+ }
+ --i; // we'll increment i from the for loop
+ dealt_with = true;
+ break;
+ }
+ }
+ break;
+ }
+ if (c != '\\') backslashes = 0;
+ if (in_number && !syntax_number_continues(LANG_GDSCRIPT, line, line_len, i))
+ in_number = false;
+
+ if (char_types && !dealt_with) {
+ SyntaxCharType type = SYNTAX_NORMAL;
+ if (in_string)
+ type = SYNTAX_STRING;
+ else if (in_number)
+ type = SYNTAX_CONSTANT;
+ char_types[i] = type;
+ }
+ }
+ *state = 0;
+ if (in_string && string_is_multiline) {
+ *state |= (SyntaxState)(
+ SYNTAX_STATE_GDSCRIPT_STRING
+ | (SYNTAX_STATE_GDSCRIPT_STRING_DBL_QUOTED * string_is_dbl_quoted)
+ );
+ }
+}
typedef struct {
Language lang;
@@ -2177,6 +2330,12 @@ void syntax_init(void) {
.lsp_identifier = "css",
.highlighter = syntax_highlight_css
},
+ {
+ .id = LANG_GDSCRIPT,
+ .name = "GDScript",
+ .lsp_identifier = "gdscript",
+ .highlighter = syntax_highlight_gdscript
+ },
};
for (size_t i = 0; i < arr_count(builtins); ++i) {
diff --git a/ted.cfg b/ted.cfg
index b639182..27ad0a3 100644
--- a/ted.cfg
+++ b/ted.cfg
@@ -436,6 +436,7 @@ JSON = .json
Java = .java
Go = .go
CSS = .css
+GDScript = .gd
# You can add language-specific settings like this:
# [HTML.core]
diff --git a/ted.h b/ted.h
index 2cc7d3a..b1c8950 100644
--- a/ted.h
+++ b/ted.h
@@ -67,6 +67,8 @@ enum {
LANG_TEXT = 17,
/// CSS
LANG_CSS = 18,
+ /// GDScript
+ LANG_GDSCRIPT = 19,
/// all user-defined languages are greater than this.
LANG_USER_MIN = 100000,