Repository: godot
Issue: LSP bugs experienced with lsp-mode in Emacs
Labels: bug,topic:gdscript,topic:editor

### Godot version

3.3.2

### System information

Arch Linux

### Issue description

Emacs has support for Language Server Protocol offered in Godot for GDScript with [lsp-mode](https://emacs-lsp.github.io/lsp-mode/page/lsp-gdscript/), however, the client have some troubles with the server making the experience of working with GDScript in Emacs painful and cumbersome.

Upon opening a GDScript file and starting the lsp-mode, a warning is thrown:

![Warning (lsp-mode): Unknown notification: gdscript/capabilities Disable showing Disable logging
](https://user-images.githubusercontent.com/1055216/127950504-fa5fda20-8308-4af8-acba-52ec6b73f0ec.png)

Another issue display by the client is the attempt to execute a LSP command ending in failure:

```
LSP :: `workspace/executeCommand' with `' failed.

(error "Method not found: executeCommand")
```

this issue was open due to my comments on https://github.com/godotengine/godot/pull/50454#issuecomment-890460006

### Steps to reproduce

1. Install Emacs and then install Doom Emacs [per the instructions here](https://github.com/hlissner/doom-emacs#install) and run `doom install`
2. Edit `~/.doom.d/init.el` and uncomment the module `:tools [...] lsp` and `:lang [...] gdscript`, change `gdscript` to `(gdscript +lsp)`, save and run `doom sync`.
3. clone [Godot demo projects](https://github.com/godotengine/godot-demo-projects) and open any GDScript file.
4. Observe: the warning is thrown by lsp-mode
5. try to auto-complete on the open file, finish and
6. observe: an error is thrown in `* Messages *`

I'm providing the logging from lsp-mode, this should shed some light on the issues with the LSP sever of Godot and lsp-mode:

<details>
<summary>lsp-mode logs</summary>

```
[Trace - 09:19:09 p.m.] Sending request 'initialize - (1)'.
Params: {
  "processId": null,
  "rootPath": "/home/jorge/sotsfgs/proyectos/zombox",
  "clientInfo": {
    "name": "emacs",
    "version": "GNU Emacs 28.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.29, cairo version 1.17.4)\n of 2021-06-07"
  },
  "rootUri": "file:///home/jorge/sotsfgs/proyectos/zombox",
  "capabilities": {
    "workspace": {
      "workspaceEdit": {
        "documentChanges": true,
        "resourceOperations": [
          "create",
          "rename",
          "delete"
        ]
      },
      "applyEdit": true,
      "symbol": {
        "symbolKind": {
          "valueSet": [
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
            13,
            14,
            15,
            16,
            17,
            18,
            19,
            20,
            21,
            22,
            23,
            24,
            25,
            26
          ]
        }
      },
      "executeCommand": {
        "dynamicRegistration": false
      },
      "didChangeWatchedFiles": {
        "dynamicRegistration": true
      },
      "workspaceFolders": true,
      "configuration": true,
      "fileOperations": {
        "didCreate": false,
        "willCreate": false,
        "didRename": false,
        "willRename": false,
        "didDelete": false,
        "willDelete": false
      }
    },
    "textDocument": {
      "declaration": {
        "linkSupport": true
      },
      "definition": {
        "linkSupport": true
      },
      "implementation": {
        "linkSupport": true
      },
      "typeDefinition": {
        "linkSupport": true
      },
      "synchronization": {
        "willSave": true,
        "didSave": true,
        "willSaveWaitUntil": true
      },
      "documentSymbol": {
        "symbolKind": {
          "valueSet": [
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
            13,
            14,
            15,
            16,
            17,
            18,
            19,
            20,
            21,
            22,
            23,
            24,
            25,
            26
          ]
        },
        "hierarchicalDocumentSymbolSupport": true
      },
      "formatting": {
        "dynamicRegistration": true
      },
      "rangeFormatting": {
        "dynamicRegistration": true
      },
      "rename": {
        "dynamicRegistration": true,
        "prepareSupport": true
      },
      "codeAction": {
        "dynamicRegistration": true,
        "isPreferredSupport": true,
        "codeActionLiteralSupport": {
          "codeActionKind": {
            "valueSet": [
              "",
              "quickfix",
              "refactor",
              "refactor.extract",
              "refactor.inline",
              "refactor.rewrite",
              "source",
              "source.organizeImports"
            ]
          }
        },
        "resolveSupport": {
          "properties": [
            "edit",
            "command"
          ]
        },
        "dataSupport": true
      },
      "completion": {
        "completionItem": {
          "snippetSupport": true,
          "documentationFormat": [
            "markdown",
            "plaintext"
          ],
          "resolveAdditionalTextEditsSupport": true,
          "insertReplaceSupport": true,
          "resolveSupport": {
            "properties": [
              "documentation",
              "details",
              "additionalTextEdits",
              "command"
            ]
          },
          "insertTextModeSupport": {
            "valueSet": [
              1,
              2
            ]
          }
        },
        "contextSupport": true
      },
      "signatureHelp": {
        "signatureInformation": {
          "parameterInformation": {
            "labelOffsetSupport": true
          }
        }
      },
      "documentLink": {
        "dynamicRegistration": true,
        "tooltipSupport": true
      },
      "hover": {
        "contentFormat": [
          "markdown",
          "plaintext"
        ]
      },
      "foldingRange": null,
      "callHierarchy": {
        "dynamicRegistration": false
      },
      "publishDiagnostics": {
        "relatedInformation": true,
        "tagSupport": {
          "valueSet": [
            1,
            2
          ]
        },
        "versionSupport": true
      },
      "moniker": null,
      "linkedEditingRange": null
    },
    "window": {
      "workDoneProgress": true,
      "showMessage": null,
      "showDocument": null
    }
  },
  "initializationOptions": null,
  "workDoneToken": "1"
}


[Trace - 09:19:09 p.m.] Received response 'initialize - (1)' in 196ms.
Result: {
  "capabilities": {
    "codeActionProvider": null,
    "colorProvider": null,
    "completionProvider": {
      "resolveProvider": true,
      "triggerCharacters": [
        ".",
        "$",
        "'",
        "\""
      ]
    },
    "declarationProvider": true,
    "definitionProvider": true,
    "documentFormattingProvider": null,
    "documentHighlightProvider": null,
    "documentLinkProvider": {
      "resolveProvider": null
    },
    "documentOnTypeFormattingProvider": {
      "firstTriggerCharacter": "",
      "moreTriggerCharacter": []
    },
    "documentRangeFormattingProvider": null,
    "documentSymbolProvider": true,
    "executeCommandProvider": {
      "commands": []
    },
    "foldingRangeProvider": null,
    "hoverProvider": true,
    "implementationProvider": null,
    "referencesProvider": null,
    "renameProvider": {
      "prepareProvider": null
    },
    "signatureHelpProvider": {
      "triggerCharacters": [
        ",",
        "("
      ]
    },
    "textDocumentSync": {
      "change": 1,
      "openClose": true,
      "save": null,
      "willSave": null,
      "willSaveWaitUntil": null
    },
    "typeDefinitionProvider": null,
    "workspace": {
      "fileOperations": {
        "didDelete": {
          "filters": [
            {
              "pattern": {
                "glob": "**/*.gd",
                "matches": "file"
              }
            }
          ]
        }
      }
    },
    "workspaceSymbolProvider": true
  }
}


[Trace - 09:19:09 p.m.] Sending notification 'initialized'.
Params: {}


[Trace - 09:19:09 p.m.] Sending notification 'textDocument/didOpen'.
Params: {
  "textDocument": {
    "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd",
    "languageId": "gdscript",
    "version": 0,
    "text": "extends KinematicBody\n\nexport (float) var speed = 1.5\nexport (float) var rotation_speed = 0.25\nexport (float) var ACCELERATION = 2\nexport (float) var DECELERATION = 4\nvar rotation_lerp = 0.0\nvar target_rotation: Basis\n\nvar velocity = Vector3()\n\nfunc get_vision_triangle(height: int, angle: float):\n\tvar base = self.global_transform.origin\n\tvar C = height / cos(deg2rad(angle / 2)) * base\n\tvar Cm = height / cos(deg2rad(-1 * angle / 2)) * base\n\t\n\treturn [base, C, Cm]\n\nfunc look_towards(target: Vector3):\n\ttarget_rotation = transform.looking_at(target, Vector3.UP).basis\n\nfunc rotate_character(delta):\n\tif rotation_lerp < 1:\n\t\trotation_lerp += delta * rotation_speed\n\telif rotation_lerp > 1:\n\t\trotation_lerp = 1\n\t$Cuerpo.transform.basis = $Cuerpo.transform.basis.slerp(target_rotation, rotation_lerp).orthonormalized()\n\n\nfunc move(delta):\n\tpass\n\nfunc _physics_process(delta):\n\tmove(delta)\n\trotate_character(delta)\n\tmove_and_collide(velocity)\n"
  }
}


[Trace - 09:19:09 p.m.] Sending request 'textDocument/documentLink - (2)'.
Params: {
  "textDocument": {
    "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
  }
}


[Trace - 09:19:09 p.m.] Received notification 'gdscript/capabilities'.
Params: {
  "native_classes": [
    {
      "inherits": "",
      "name": "@GDScript"
    },
    {
      "inherits": "",
      "name": "@GlobalScope"
    },
    {
      "inherits": "",
      "name": "AABB"
    },
    {
      "inherits": "Spatial",
      "name": "ARVRAnchor"
    },
    {
      "inherits": "Camera",
      "name": "ARVRCamera"
    },
    {
      "inherits": "Spatial",
      "name": "ARVRController"
    },
    {
      "inherits": "Reference",
      "name": "ARVRInterface"
    },
    {
      "inherits": "ARVRInterface",
      "name": "ARVRInterfaceGDNative"
    },
    {
      "inherits": "Spatial",
      "name": "ARVROrigin"
    },
    {
      "inherits": "Object",
      "name": "ARVRPositionalTracker"
    },
    {
      "inherits": "Object",
      "name": "ARVRServer"
    },
    {
      "inherits": "Reference",
      "name": "AStar"
    },
    {
      "inherits": "Reference",
      "name": "AStar2D"
    },
    {
      "inherits": "WindowDialog",
      "name": "AcceptDialog"
    },
    {
      "inherits": "Node2D",
      "name": "AnimatedSprite"
    },
    {
      "inherits": "SpriteBase3D",
      "name": "AnimatedSprite3D"
    },
    {
      "inherits": "Texture",
      "name": "AnimatedTexture"
    },
    {
      "inherits": "Resource",
      "name": "Animation"
    },
    {
      "inherits": "Resource",
      "name": "AnimationNode"
    },
    {
      "inherits": "AnimationNode",
      "name": "AnimationNodeAdd2"
    },
    {
      "inherits": "AnimationNode",
      "name": "AnimationNodeAdd3"
    },
    {
      "inherits": "AnimationRootNode",
      "name": "AnimationNodeAnimation"
    },
    {
      "inherits": "AnimationNode",
      "name": "AnimationNodeBlend2"
    },
    {
      "inherits": "AnimationNode",
      "name": "AnimationNodeBlend3"
    },
    {
      "inherits": "AnimationRootNode",
      "name": "AnimationNodeBlendSpace1D"
    },
    {
      "inherits": "AnimationRootNode",
      "name": "AnimationNodeBlendSpace2D"
    },
    {
      "inherits": "AnimationRootNode",
      "name": "AnimationNodeBlendTree"
    },
    {
      "inherits": "AnimationNode",
      "name": "AnimationNodeOneShot"
    },
    {
      "inherits": "AnimationNode",
      "name": "AnimationNodeOutput"
    },
    {
      "inherits": "AnimationRootNode",
      "name": "AnimationNodeStateMachine"
    },
    {
      "inherits": "Resource",
      "name": "AnimationNodeStateMachinePlayback"
    },
    {
      "inherits": "Resource",
      "name": "AnimationNodeStateMachineTransition"
    },
    {
      "inherits": "AnimationNode",
      "name": "AnimationNodeTimeScale"
    },
    {
      "inherits": "AnimationNode",
      "name": "AnimationNodeTimeSeek"
    },
    {
      "inherits": "AnimationNode",
      "name": "AnimationNodeTransition"
    },
    {
      "inherits": "Node",
      "name": "AnimationPlayer"
    },
    {
      "inherits": "AnimationNode",
      "name": "AnimationRootNode"
    },
    {
      "inherits": "Reference",
      "name": "AnimationTrackEditPlugin"
    },
    {
      "inherits": "Node",
      "name": "AnimationTree"
    },
    {
      "inherits": "Node",
      "name": "AnimationTreePlayer"
    },
    {
      "inherits": "CollisionObject",
      "name": "Area"
    },
    {
      "inherits": "CollisionObject2D",
      "name": "Area2D"
    },
    {
      "inherits": "",
      "name": "Array"
    },
    {
      "inherits": "Mesh",
      "name": "ArrayMesh"
    },
    {
      "inherits": "Container",
      "name": "AspectRatioContainer"
    },
    {
      "inherits": "Texture",
      "name": "AtlasTexture"
    },
    {
      "inherits": "Resource",
      "name": "AudioBusLayout"
    },
    {
      "inherits": "Resource",
      "name": "AudioEffect"
    },
    {
      "inherits": "AudioEffect",
      "name": "AudioEffectAmplify"
    },
    {
      "inherits": "AudioEffectFilter",
      "name": "AudioEffectBandLimitFilter"
    },
    {
      "inherits": "AudioEffectFilter",
      "name": "AudioEffectBandPassFilter"
    },
    {
      "inherits": "AudioEffect",
      "name": "AudioEffectCapture"
    },
    {
      "inherits": "AudioEffect",
      "name": "AudioEffectChorus"
    },
    {
      "inherits": "AudioEffect",
      "name": "AudioEffectCompressor"
    },
    {
      "inherits": "AudioEffect",
      "name": "AudioEffectDelay"
    },
    {
      "inherits": "AudioEffect",
      "name": "AudioEffectDistortion"
    },
    {
      "inherits": "AudioEffect",
      "name": "AudioEffectEQ"
    },
    {
      "inherits": "AudioEffectEQ",
      "name": "AudioEffectEQ10"
    },
    {
      "inherits": "AudioEffectEQ",
      "name": "AudioEffectEQ21"
    },
    {
      "inherits": "AudioEffectEQ",
      "name": "AudioEffectEQ6"
    },
    {
      "inherits": "AudioEffect",
      "name": "AudioEffectFilter"
    },
    {
      "inherits": "AudioEffectFilter",
      "name": "AudioEffectHighPassFilter"
    },
    {
      "inherits": "AudioEffectFilter",
      "name": "AudioEffectHighShelfFilter"
    },
    {
      "inherits": "Reference",
      "name": "AudioEffectInstance"
    },
    {
      "inherits": "AudioEffect",
      "name": "AudioEffectLimiter"
    },
    {
      "inherits": "AudioEffectFilter",
      "name": "AudioEffectLowPassFilter"
    },
    {
      "inherits": "AudioEffectFilter",
      "name": "AudioEffectLowShelfFilter"
    },
    {
      "inherits": "AudioEffectFilter",
      "name": "AudioEffectNotchFilter"
    },
    {
      "inherits": "AudioEffect",
      "name": "AudioEffectPanner"
    },
    {
      "inherits": "AudioEffect",
      "name": "AudioEffectPhaser"
    },
    {
      "inherits": "AudioEffect",
      "name": "AudioEffectPitchShift"
    },
    {
      "inherits": "AudioEffect",
      "name": "AudioEffectRecord"
    },
    {
      "inherits": "AudioEffect",
      "name": "AudioEffectReverb"
    },
    {
      "inherits": "AudioEffect",
      "name": "AudioEffectSpectrumAnalyzer"
    },
    {
      "inherits": "AudioEffectInstance",
      "name": "AudioEffectSpectrumAnalyzerInstance"
    },
    {
      "inherits": "AudioEffect",
      "name": "AudioEffectStereoEnhance"
    },
    {
      "inherits": "Object",
      "name": "AudioServer"
    },
    {
      "inherits": "Resource",
      "name": "AudioStream"
    },
    {
      "inherits": "AudioStream",
      "name": "AudioStreamGenerator"
    },
    {
      "inherits": "AudioStreamPlaybackResampled",
      "name": "AudioStreamGeneratorPlayback"
    },
    {
      "inherits": "AudioStream",
      "name": "AudioStreamMP3"
    },
    {
      "inherits": "AudioStream",
      "name": "AudioStreamMicrophone"
    },
    {
      "inherits": "AudioStream",
      "name": "AudioStreamOGGVorbis"
    },
    {
      "inherits": "Reference",
      "name": "AudioStreamPlayback"
    },
    {
      "inherits": "AudioStreamPlayback",
      "name": "AudioStreamPlaybackResampled"
    },
    {
      "inherits": "Node",
      "name": "AudioStreamPlayer"
    },
    {
      "inherits": "Node2D",
      "name": "AudioStreamPlayer2D"
    },
    {
      "inherits": "Spatial",
      "name": "AudioStreamPlayer3D"
    },
    {
      "inherits": "AudioStream",
      "name": "AudioStreamRandomPitch"
    },
    {
      "inherits": "AudioStream",
      "name": "AudioStreamSample"
    },
    {
      "inherits": "Node2D",
      "name": "BackBufferCopy"
    },
    {
      "inherits": "VisualInstance",
      "name": "BakedLightmap"
    },
    {
      "inherits": "Resource",
      "name": "BakedLightmapData"
    },
    {
      "inherits": "Control",
      "name": "BaseButton"
    },
    {
      "inherits": "",
      "name": "Basis"
    },
    {
      "inherits": "Resource",
      "name": "BitMap"
    },
    {
      "inherits": "Font",
      "name": "BitmapFont"
    },
    {
      "inherits": "Node2D",
      "name": "Bone2D"
    },
    {
      "inherits": "Spatial",
      "name": "BoneAttachment"
    },
    {
      "inherits": "Container",
      "name": "BoxContainer"
    },
    {
      "inherits": "Shape",
      "name": "BoxShape"
    },
    {
      "inherits": "BaseButton",
      "name": "Button"
    },
    {
      "inherits": "Resource",
      "name": "ButtonGroup"
    },
    {
      "inherits": "GeometryInstance",
      "name": "CPUParticles"
    },
    {
      "inherits": "Node2D",
      "name": "CPUParticles2D"
    },
    {
      "inherits": "CSGPrimitive",
      "name": "CSGBox"
    },
    {
      "inherits": "CSGShape",
      "name": "CSGCombiner"
    },
    {
      "inherits": "CSGPrimitive",
      "name": "CSGCylinder"
    },
    {
      "inherits": "CSGPrimitive",
      "name": "CSGMesh"
    },
    {
      "inherits": "CSGPrimitive",
      "name": "CSGPolygon"
    },
    {
      "inherits": "CSGShape",
      "name": "CSGPrimitive"
    },
    {
      "inherits": "GeometryInstance",
      "name": "CSGShape"
    },
    {
      "inherits": "CSGPrimitive",
      "name": "CSGSphere"
    },
    {
      "inherits": "CSGPrimitive",
      "name": "CSGTorus"
    },
    {
      "inherits": "Spatial",
      "name": "Camera"
    },
    {
      "inherits": "Node2D",
      "name": "Camera2D"
    },
    {
      "inherits": "Reference",
      "name": "CameraFeed"
    },
    {
      "inherits": "Object",
      "name": "CameraServer"
    },
    {
      "inherits": "Texture",
      "name": "CameraTexture"
    },
    {
      "inherits": "Node",
      "name": "CanvasItem"
    },
    {
      "inherits": "Material",
      "name": "CanvasItemMaterial"
    },
    {
      "inherits": "Node",
      "name": "CanvasLayer"
    },
    {
      "inherits": "Node2D",
      "name": "CanvasModulate"
    },
    {
      "inherits": "PrimitiveMesh",
      "name": "CapsuleMesh"
    },
    {
      "inherits": "Shape",
      "name": "CapsuleShape"
    },
    {
      "inherits": "Shape2D",
      "name": "CapsuleShape2D"
    },
    {
      "inherits": "Container",
      "name": "CenterContainer"
    },
    {
      "inherits": "Reference",
      "name": "CharFXTransform"
    },
    {
      "inherits": "Button",
      "name": "CheckBox"
    },
    {
      "inherits": "Button",
      "name": "CheckButton"
    },
    {
      "inherits": "Shape2D",
      "name": "CircleShape2D"
    },
    {
      "inherits": "Object",
      "name": "ClassDB"
    },
    {
      "inherits": "Camera",
      "name": "ClippedCamera"
    },
    {
      "inherits": "Spatial",
      "name": "CollisionObject"
    },
    {
      "inherits": "Node2D",
      "name": "CollisionObject2D"
    },
    {
      "inherits": "Spatial",
      "name": "CollisionPolygon"
    },
    {
      "inherits": "Node2D",
      "name": "CollisionPolygon2D"
    },
    {
      "inherits": "Spatial",
      "name": "CollisionShape"
    },
    {
      "inherits": "Node2D",
      "name": "CollisionShape2D"
    },
    {
      "inherits": "",
      "name": "Color"
    },
    {
      "inherits": "BoxContainer",
      "name": "ColorPicker"
    },
    {
      "inherits": "Button",
      "name": "ColorPickerButton"
    },
    {
      "inherits": "Control",
      "name": "ColorRect"
    },
    {
      "inherits": "Shape",
      "name": "ConcavePolygonShape"
    },
    {
      "inherits": "Shape2D",
      "name": "ConcavePolygonShape2D"
    },
    {
      "inherits": "Joint",
      "name": "ConeTwistJoint"
    },
    {
      "inherits": "Reference",
      "name": "ConfigFile"
    },
    {
      "inherits": "AcceptDialog",
      "name": "ConfirmationDialog"
    },
    {
      "inherits": "Control",
      "name": "Container"
    },
    {
      "inherits": "CanvasItem",
      "name": "Control"
    },
    {
      "inherits": "Shape",
      "name": "ConvexPolygonShape"
    },
    {
      "inherits": "Shape2D",
      "name": "ConvexPolygonShape2D"
    },
    {
      "inherits": "Reference",
      "name": "Crypto"
    },
    {
      "inherits": "Resource",
      "name": "CryptoKey"
    },
    {
      "inherits": "Resource",
      "name": "CubeMap"
    },
    {
      "inherits": "PrimitiveMesh",
      "name": "CubeMesh"
    },
    {
      "inherits": "Resource",
      "name": "Curve"
    },
    {
      "inherits": "Resource",
      "name": "Curve2D"
    },
    {
      "inherits": "Resource",
      "name": "Curve3D"
    },
    {
      "inherits": "Texture",
      "name": "CurveTexture"
    },
    {
      "inherits": "PrimitiveMesh",
      "name": "CylinderMesh"
    },
    {
      "inherits": "Shape",
      "name": "CylinderShape"
    },
    {
      "inherits": "Reference",
      "name": "DTLSServer"
    },
    {
      "inherits": "Joint2D",
      "name": "DampedSpringJoint2D"
    },
    {
      "inherits": "",
      "name": "Dictionary"
    },
    {
      "inherits": "Light",
      "name": "DirectionalLight"
    },
    {
      "inherits": "Reference",
      "name": "Directory"
    },
    {
      "inherits": "Font",
      "name": "DynamicFont"
    },
    {
      "inherits": "Resource",
      "name": "DynamicFontData"
    },
    {
      "inherits": "Reference",
      "name": "EditorExportPlugin"
    },
    {
      "inherits": "Reference",
      "name": "EditorFeatureProfile"
    },
    {
      "inherits": "ConfirmationDialog",
      "name": "EditorFileDialog"
    },
    {
      "inherits": "Node",
      "name": "EditorFileSystem"
    },
    {
      "inherits": "Object",
      "name": "EditorFileSystemDirectory"
    },
    {
      "inherits": "ResourceImporter",
      "name": "EditorImportPlugin"
    },
    {
      "inherits": "ScrollContainer",
      "name": "EditorInspector"
    },
    {
      "inherits": "Reference",
      "name": "EditorInspectorPlugin"
    },
    {
      "inherits": "Node",
      "name": "EditorInterface"
    },
    {
      "inherits": "Object",
      "name": "EditorNavigationMeshGenerator"
    },
    {
      "inherits": "Node",
      "name": "EditorPlugin"
    },
    {
      "inherits": "Container",
      "name": "EditorProperty"
    },
    {
      "inherits": "Reference",
      "name": "EditorResourceConversionPlugin"
    },
    {
      "inherits": "Node",
      "name": "EditorResourcePreview"
    },
    {
      "inherits": "Reference",
      "name": "EditorResourcePreviewGenerator"
    },
    {
      "inherits": "Reference",
      "name": "EditorSceneImporter"
    },
    {
      "inherits": "EditorSceneImporter",
      "name": "EditorSceneImporterFBX"
    },
    {
      "inherits": "Reference",
      "name": "EditorScenePostImport"
    },
    {
      "inherits": "Reference",
      "name": "EditorScript"
    },
    {
      "inherits": "Object",
      "name": "EditorSelection"
    },
    {
      "inherits": "Resource",
      "name": "EditorSettings"
    },
    {
      "inherits": "SpatialGizmo",
      "name": "EditorSpatialGizmo"
    },
    {
      "inherits": "Resource",
      "name": "EditorSpatialGizmoPlugin"
    },
    {
      "inherits": "Range",
      "name": "EditorSpinSlider"
    },
    {
      "inherits": "Object",
      "name": "EditorVCSInterface"
    },
    {
      "inherits": "Reference",
      "name": "EncodedObjectAsID"
    },
    {
      "inherits": "Object",
      "name": "Engine"
    },
    {
      "inherits": "Resource",
      "name": "Environment"
    },
    {
      "inherits": "Reference",
      "name": "Expression"
    },
    {
      "inherits": "Texture",
      "name": "ExternalTexture"
    },
    {
      "inherits": "Reference",
      "name": "File"
    },
    {
      "inherits": "ConfirmationDialog",
      "name": "FileDialog"
    },
    {
      "inherits": "VBoxContainer",
      "name": "FileSystemDock"
    },
    {
      "inherits": "Resource",
      "name": "Font"
    },
    {
      "inherits": "Reference",
      "name": "FuncRef"
    },
    {
      "inherits": "Reference",
      "name": "GDNative"
    },
    {
      "inherits": "Resource",
      "name": "GDNativeLibrary"
    },
    {
      "inherits": "Script",
      "name": "GDScript"
    },
    {
      "inherits": "Reference",
      "name": "GDScriptFunctionState"
    },
    {
      "inherits": "VisualInstance",
      "name": "GIProbe"
    },
    {
      "inherits": "Resource",
      "name": "GIProbeData"
    },
    {
      "inherits": "Joint",
      "name": "Generic6DOFJoint"
    },
    {
      "inherits": "Object",
      "name": "Geometry"
    },
    {
      "inherits": "VisualInstance",
      "name": "GeometryInstance"
    },
    {
      "inherits": "Resource",
      "name": "Gradient"
    },
    {
      "inherits": "Texture",
      "name": "GradientTexture"
    },
    {
      "inherits": "Control",
      "name": "GraphEdit"
    },
    {
      "inherits": "Container",
      "name": "GraphNode"
    },
    {
      "inherits": "Container",
      "name": "GridContainer"
    },
    {
      "inherits": "Spatial",
      "name": "GridMap"
    },
    {
      "inherits": "Joint2D",
      "name": "GrooveJoint2D"
    },
    {
      "inherits": "BoxContainer",
      "name": "HBoxContainer"
    },
    {
      "inherits": "ScrollBar",
      "name": "HScrollBar"
    },
    {
      "inherits": "Separator",
      "name": "HSeparator"
    },
    {
      "inherits": "Slider",
      "name": "HSlider"
    },
    {
      "inherits": "SplitContainer",
      "name": "HSplitContainer"
    },
    {
      "inherits": "Reference",
      "name": "HTTPClient"
    },
    {
      "inherits": "Node",
      "name": "HTTPRequest"
    },
    {
      "inherits": "Reference",
      "name": "HashingContext"
    },
    {
      "inherits": "Shape",
      "name": "HeightMapShape"
    },
    {
      "inherits": "Joint",
      "name": "HingeJoint"
    },
    {
      "inherits": "Object",
      "name": "IP"
    },
    {
      "inherits": "Resource",
      "name": "Image"
    },
    {
      "inherits": "Texture",
      "name": "ImageTexture"
    },
    {
      "inherits": "GeometryInstance",
      "name": "ImmediateGeometry"
    },
    {
      "inherits": "Object",
      "name": "Input"
    },
    {
      "inherits": "Resource",
      "name": "InputEvent"
    },
    {
      "inherits": "InputEvent",
      "name": "InputEventAction"
    },
    {
      "inherits": "InputEventWithModifiers",
      "name": "InputEventGesture"
    },
    {
      "inherits": "InputEvent",
      "name": "InputEventJoypadButton"
    },
    {
      "inherits": "InputEvent",
      "name": "InputEventJoypadMotion"
    },
    {
      "inherits": "InputEventWithModifiers",
      "name": "InputEventKey"
    },
    {
      "inherits": "InputEvent",
      "name": "InputEventMIDI"
    },
    {
      "inherits": "InputEventGesture",
      "name": "InputEventMagnifyGesture"
    },
    {
      "inherits": "InputEventWithModifiers",
      "name": "InputEventMouse"
    },
    {
      "inherits": "InputEventMouse",
      "name": "InputEventMouseButton"
    },
    {
      "inherits": "InputEventMouse",
      "name": "InputEventMouseMotion"
    },
    {
      "inherits": "InputEventGesture",
      "name": "InputEventPanGesture"
    },
    {
      "inherits": "InputEvent",
      "name": "InputEventScreenDrag"
    },
    {
      "inherits": "InputEvent",
      "name": "InputEventScreenTouch"
    },
    {
      "inherits": "InputEvent",
      "name": "InputEventWithModifiers"
    },
    {
      "inherits": "Object",
      "name": "InputMap"
    },
    {
      "inherits": "Node",
      "name": "InstancePlaceholder"
    },
    {
      "inherits": "Camera",
      "name": "InterpolatedCamera"
    },
    {
      "inherits": "Control",
      "name": "ItemList"
    },
    {
      "inherits": "Object",
      "name": "JNISingleton"
    },
    {
      "inherits": "Object",
      "name": "JSON"
    },
    {
      "inherits": "Reference",
      "name": "JSONParseResult"
    },
    {
      "inherits": "Object",
      "name": "JSONRPC"
    },
    {
      "inherits": "Reference",
      "name": "JavaClass"
    },
    {
      "inherits": "Object",
      "name": "JavaClassWrapper"
    },
    {
      "inherits": "Object",
      "name": "JavaScript"
    },
    {
      "inherits": "Spatial",
      "name": "Joint"
    },
    {
      "inherits": "Node2D",
      "name": "Joint2D"
    },
    {
      "inherits": "PhysicsBody",
      "name": "KinematicBody"
    },
    {
      "inherits": "PhysicsBody2D",
      "name": "KinematicBody2D"
    },
    {
      "inherits": "Reference",
      "name": "KinematicCollision"
    },
    {
      "inherits": "Reference",
      "name": "KinematicCollision2D"
    },
    {
      "inherits": "Control",
      "name": "Label"
    },
    {
      "inherits": "Texture",
      "name": "LargeTexture"
    },
    {
      "inherits": "VisualInstance",
      "name": "Light"
    },
    {
      "inherits": "Node2D",
      "name": "Light2D"
    },
    {
      "inherits": "Node2D",
      "name": "LightOccluder2D"
    },
    {
      "inherits": "Node2D",
      "name": "Line2D"
    },
    {
      "inherits": "Control",
      "name": "LineEdit"
    },
    {
      "inherits": "Shape2D",
      "name": "LineShape2D"
    },
    {
      "inherits": "BaseButton",
      "name": "LinkButton"
    },
    {
      "inherits": "Spatial",
      "name": "Listener"
    },
    {
      "inherits": "Object",
      "name": "MainLoop"
    },
    {
      "inherits": "Container",
      "name": "MarginContainer"
    },
    {
      "inherits": "Object",
      "name": "Marshalls"
    },
    {
      "inherits": "Resource",
      "name": "Material"
    },
    {
      "inherits": "Button",
      "name": "MenuButton"
    },
    {
      "inherits": "Resource",
      "name": "Mesh"
    },
    {
      "inherits": "Reference",
      "name": "MeshDataTool"
    },
    {
      "inherits": "GeometryInstance",
      "name": "MeshInstance"
    },
    {
      "inherits": "Node2D",
      "name": "MeshInstance2D"
    },
    {
      "inherits": "Resource",
      "name": "MeshLibrary"
    },
    {
      "inherits": "Texture",
      "name": "MeshTexture"
    },
    {
      "inherits": "ARVRInterface",
      "name": "MobileVRInterface"
    },
    {
      "inherits": "Resource",
      "name": "MultiMesh"
    },
    {
      "inherits": "GeometryInstance",
      "name": "MultiMeshInstance"
    },
    {
      "inherits": "Node2D",
      "name": "MultiMeshInstance2D"
    },
    {
      "inherits": "Reference",
      "name": "MultiplayerAPI"
    },
    {
      "inherits": "NetworkedMultiplayerPeer",
      "name": "MultiplayerPeerGDNative"
    },
    {
      "inherits": "Reference",
      "name": "Mutex"
    },
    {
      "inherits": "Script",
      "name": "NativeScript"
    },
    {
      "inherits": "Spatial",
      "name": "Navigation"
    },
    {
      "inherits": "Node2D",
      "name": "Navigation2D"
    },
    {
      "inherits": "Resource",
      "name": "NavigationMesh"
    },
    {
      "inherits": "Spatial",
      "name": "NavigationMeshInstance"
    },
    {
      "inherits": "Resource",
      "name": "NavigationPolygon"
    },
    {
      "inherits": "Node2D",
      "name": "NavigationPolygonInstance"
    },
    {
      "inherits": "NetworkedMultiplayerPeer",
      "name": "NetworkedMultiplayerENet"
    },
    {
      "inherits": "PacketPeer",
      "name": "NetworkedMultiplayerPeer"
    },
    {
      "inherits": "Control",
      "name": "NinePatchRect"
    },
    {
      "inherits": "Object",
      "name": "Node"
    },
    {
      "inherits": "CanvasItem",
      "name": "Node2D"
    },
    {
      "inherits": "",
      "name": "NodePath"
    },
    {
      "inherits": "Texture",
      "name": "NoiseTexture"
    },
    {
      "inherits": "Object",
      "name": "OS"
    },
    {
      "inherits": "",
      "name": "Object"
    },
    {
      "inherits": "Resource",
      "name": "OccluderPolygon2D"
    },
    {
      "inherits": "Light",
      "name": "OmniLight"
    },
    {
      "inherits": "Resource",
      "name": "OpenSimplexNoise"
    },
    {
      "inherits": "Button",
      "name": "OptionButton"
    },
    {
      "inherits": "Reference",
      "name": "PCKPacker"
    },
    {
      "inherits": "Translation",
      "name": "PHashTranslation"
    },
    {
      "inherits": "Resource",
      "name": "PackedDataContainer"
    },
    {
      "inherits": "Reference",
      "name": "PackedDataContainerRef"
    },
    {
      "inherits": "Resource",
      "name": "PackedScene"
    },
    {
      "inherits": "Reference",
      "name": "PacketPeer"
    },
    {
      "inherits": "PacketPeer",
      "name": "PacketPeerDTLS"
    },
    {
      "inherits": "PacketPeer",
      "name": "PacketPeerGDNative"
    },
    {
      "inherits": "PacketPeer",
      "name": "PacketPeerStream"
    },
    {
      "inherits": "PacketPeer",
      "name": "PacketPeerUDP"
    },
    {
      "inherits": "Control",
      "name": "Panel"
    },
    {
      "inherits": "Container",
      "name": "PanelContainer"
    },
    {
      "inherits": "Sky",
      "name": "PanoramaSky"
    },
    {
      "inherits": "CanvasLayer",
      "name": "ParallaxBackground"
    },
    {
      "inherits": "Node2D",
      "name": "ParallaxLayer"
    },
    {
      "inherits": "GeometryInstance",
      "name": "Particles"
    },
    {
      "inherits": "Node2D",
      "name": "Particles2D"
    },
    {
      "inherits": "Material",
      "name": "ParticlesMaterial"
    },
    {
      "inherits": "Spatial",
      "name": "Path"
    },
    {
      "inherits": "Node2D",
      "name": "Path2D"
    },
    {
      "inherits": "Spatial",
      "name": "PathFollow"
    },
    {
      "inherits": "Node2D",
      "name": "PathFollow2D"
    },
    {
      "inherits": "Object",
      "name": "Performance"
    },
    {
      "inherits": "PhysicsBody",
      "name": "PhysicalBone"
    },
    {
      "inherits": "Object",
      "name": "Physics2DDirectBodyState"
    },
    {
      "inherits": "Object",
      "name": "Physics2DDirectSpaceState"
    },
    {
      "inherits": "Object",
      "name": "Physics2DServer"
    },
    {
      "inherits": "Reference",
      "name": "Physics2DShapeQueryParameters"
    },
    {
      "inherits": "Reference",
      "name": "Physics2DShapeQueryResult"
    },
    {
      "inherits": "Reference",
      "name": "Physics2DTestMotionResult"
    },
    {
      "inherits": "CollisionObject",
      "name": "PhysicsBody"
    },
    {
      "inherits": "CollisionObject2D",
      "name": "PhysicsBody2D"
    },
    {
      "inherits": "Object",
      "name": "PhysicsDirectBodyState"
    },
    {
      "inherits": "Object",
      "name": "PhysicsDirectSpaceState"
    },
    {
      "inherits": "Resource",
      "name": "PhysicsMaterial"
    },
    {
      "inherits": "Object",
      "name": "PhysicsServer"
    },
    {
      "inherits": "Reference",
      "name": "PhysicsShapeQueryParameters"
    },
    {
      "inherits": "Reference",
      "name": "PhysicsShapeQueryResult"
    },
    {
      "inherits": "Joint",
      "name": "PinJoint"
    },
    {
      "inherits": "Joint2D",
      "name": "PinJoint2D"
    },
    {
      "inherits": "",
      "name": "Plane"
    },
    {
      "inherits": "PrimitiveMesh",
      "name": "PlaneMesh"
    },
    {
      "inherits": "Shape",
      "name": "PlaneShape"
    },
    {
      "inherits": "Script",
      "name": "PluginScript"
    },
    {
      "inherits": "PrimitiveMesh",
      "name": "PointMesh"
    },
    {
      "inherits": "Node2D",
      "name": "Polygon2D"
    },
    {
      "inherits": "Resource",
      "name": "PolygonPathFinder"
    },
    {
      "inherits": "",
      "name": "PoolByteArray"
    },
    {
      "inherits": "",
      "name": "PoolColorArray"
    },
    {
      "inherits": "",
      "name": "PoolIntArray"
    },
    {
      "inherits": "",
      "name": "PoolRealArray"
    },
    {
      "inherits": "",
      "name": "PoolStringArray"
    },
    {
      "inherits": "",
      "name": "PoolVector2Array"
    },
    {
      "inherits": "",
      "name": "PoolVector3Array"
    },
    {
      "inherits": "Control",
      "name": "Popup"
    },
    {
      "inherits": "Popup",
      "name": "PopupDialog"
    },
    {
      "inherits": "Popup",
      "name": "PopupMenu"
    },
    {
      "inherits": "Popup",
      "name": "PopupPanel"
    },
    {
      "inherits": "Node2D",
      "name": "Position2D"
    },
    {
      "inherits": "Spatial",
      "name": "Position3D"
    },
    {
      "inherits": "Mesh",
      "name": "PrimitiveMesh"
    },
    {
      "inherits": "PrimitiveMesh",
      "name": "PrismMesh"
    },
    {
      "inherits": "Sky",
      "name": "ProceduralSky"
    },
    {
      "inherits": "Range",
      "name": "ProgressBar"
    },
    {
      "inherits": "Object",
      "name": "ProjectSettings"
    },
    {
      "inherits": "Spatial",
      "name": "ProximityGroup"
    },
    {
      "inherits": "Texture",
      "name": "ProxyTexture"
    },
    {
      "inherits": "PrimitiveMesh",
      "name": "QuadMesh"
    },
    {
      "inherits": "",
      "name": "Quat"
    },
    {
      "inherits": "",
      "name": "RID"
    },
    {
      "inherits": "Reference",
      "name": "RandomNumberGenerator"
    },
    {
      "inherits": "Control",
      "name": "Range"
    },
    {
      "inherits": "Spatial",
      "name": "RayCast"
    },
    {
      "inherits": "Node2D",
      "name": "RayCast2D"
    },
    {
      "inherits": "Shape",
      "name": "RayShape"
    },
    {
      "inherits": "Shape2D",
      "name": "RayShape2D"
    },
    {
      "inherits": "",
      "name": "Rect2"
    },
    {
      "inherits": "Shape2D",
      "name": "RectangleShape2D"
    },
    {
      "inherits": "Object",
      "name": "Reference"
    },
    {
      "inherits": "Control",
      "name": "ReferenceRect"
    },
    {
      "inherits": "VisualInstance",
      "name": "ReflectionProbe"
    },
    {
      "inherits": "Reference",
      "name": "RegEx"
    },
    {
      "inherits": "Reference",
      "name": "RegExMatch"
    },
    {
      "inherits": "Spatial",
      "name": "RemoteTransform"
    },
    {
      "inherits": "Node2D",
      "name": "RemoteTransform2D"
    },
    {
      "inherits": "Reference",
      "name": "Resource"
    },
    {
      "inherits": "Reference",
      "name": "ResourceFormatLoader"
    },
    {
      "inherits": "Reference",
      "name": "ResourceFormatSaver"
    },
    {
      "inherits": "Reference",
      "name": "ResourceImporter"
    },
    {
      "inherits": "Reference",
      "name": "ResourceInteractiveLoader"
    },
    {
      "inherits": "Object",
      "name": "ResourceLoader"
    },
    {
      "inherits": "Node",
      "name": "ResourcePreloader"
    },
    {
      "inherits": "Object",
      "name": "ResourceSaver"
    },
    {
      "inherits": "Resource",
      "name": "RichTextEffect"
    },
    {
      "inherits": "Control",
      "name": "RichTextLabel"
    },
    {
      "inherits": "PhysicsBody",
      "name": "RigidBody"
    },
    {
      "inherits": "PhysicsBody2D",
      "name": "RigidBody2D"
    },
    {
      "inherits": "VisualInstance",
      "name": "RootMotionView"
    },
    {
      "inherits": "Reference",
      "name": "SceneState"
    },
    {
      "inherits": "MainLoop",
      "name": "SceneTree"
    },
    {
      "inherits": "Reference",
      "name": "SceneTreeTimer"
    },
    {
      "inherits": "Resource",
      "name": "Script"
    },
    {
      "inherits": "ConfirmationDialog",
      "name": "ScriptCreateDialog"
    },
    {
      "inherits": "PanelContainer",
      "name": "ScriptEditor"
    },
    {
      "inherits": "Range",
      "name": "ScrollBar"
    },
    {
      "inherits": "Container",
      "name": "ScrollContainer"
    },
    {
      "inherits": "Shape2D",
      "name": "SegmentShape2D"
    },
    {
      "inherits": "Reference",
      "name": "Semaphore"
    },
    {
      "inherits": "Control",
      "name": "Separator"
    },
    {
      "inherits": "Resource",
      "name": "Shader"
    },
    {
      "inherits": "Material",
      "name": "ShaderMaterial"
    },
    {
      "inherits": "Resource",
      "name": "Shape"
    },
    {
      "inherits": "Resource",
      "name": "Shape2D"
    },
    {
      "inherits": "Resource",
      "name": "ShortCut"
    },
    {
      "inherits": "Spatial",
      "name": "Skeleton"
    },
    {
      "inherits": "Node2D",
      "name": "Skeleton2D"
    },
    {
      "inherits": "Node",
      "name": "SkeletonIK"
    },
    {
      "inherits": "Resource",
      "name": "Skin"
    },
    {
      "inherits": "Reference",
      "name": "SkinReference"
    },
    {
      "inherits": "Resource",
      "name": "Sky"
    },
    {
      "inherits": "Range",
      "name": "Slider"
    },
    {
      "inherits": "Joint",
      "name": "SliderJoint"
    },
    {
      "inherits": "MeshInstance",
      "name": "SoftBody"
    },
    {
      "inherits": "Node",
      "name": "Spatial"
    },
    {
      "inherits": "Reference",
      "name": "SpatialGizmo"
    },
    {
      "inherits": "Material",
      "name": "SpatialMaterial"
    },
    {
      "inherits": "Reference",
      "name": "SpatialVelocityTracker"
    },
    {
      "inherits": "PrimitiveMesh",
      "name": "SphereMesh"
    },
    {
      "inherits": "Shape",
      "name": "SphereShape"
    },
    {
      "inherits": "Range",
      "name": "SpinBox"
    },
    {
      "inherits": "Container",
      "name": "SplitContainer"
    },
    {
      "inherits": "Light",
      "name": "SpotLight"
    },
    {
      "inherits": "Spatial",
      "name": "SpringArm"
    },
    {
      "inherits": "Node2D",
      "name": "Sprite"
    },
    {
      "inherits": "SpriteBase3D",
      "name": "Sprite3D"
    },
    {
      "inherits": "GeometryInstance",
      "name": "SpriteBase3D"
    },
    {
      "inherits": "Resource",
      "name": "SpriteFrames"
    },
    {
      "inherits": "PhysicsBody",
      "name": "StaticBody"
    },
    {
      "inherits": "PhysicsBody2D",
      "name": "StaticBody2D"
    },
    {
      "inherits": "Reference",
      "name": "StreamPeer"
    },
    {
      "inherits": "StreamPeer",
      "name": "StreamPeerBuffer"
    },
    {
      "inherits": "StreamPeer",
      "name": "StreamPeerGDNative"
    },
    {
      "inherits": "StreamPeer",
      "name": "StreamPeerSSL"
    },
    {
      "inherits": "StreamPeer",
      "name": "StreamPeerTCP"
    },
    {
      "inherits": "Texture",
      "name": "StreamTexture"
    },
    {
      "inherits": "",
      "name": "String"
    },
    {
      "inherits": "Resource",
      "name": "StyleBox"
    },
    {
      "inherits": "StyleBox",
      "name": "StyleBoxEmpty"
    },
    {
      "inherits": "StyleBox",
      "name": "StyleBoxFlat"
    },
    {
      "inherits": "StyleBox",
      "name": "StyleBoxLine"
    },
    {
      "inherits": "StyleBox",
      "name": "StyleBoxTexture"
    },
    {
      "inherits": "Reference",
      "name": "SurfaceTool"
    },
    {
      "inherits": "Reference",
      "name": "TCP_Server"
    },
    {
      "inherits": "Container",
      "name": "TabContainer"
    },
    {
      "inherits": "Control",
      "name": "Tabs"
    },
    {
      "inherits": "Control",
      "name": "TextEdit"
    },
    {
      "inherits": "Resource",
      "name": "TextFile"
    },
    {
      "inherits": "Resource",
      "name": "Texture"
    },
    {
      "inherits": "TextureLayered",
      "name": "Texture3D"
    },
    {
      "inherits": "TextureLayered",
      "name": "TextureArray"
    },
    {
      "inherits": "BaseButton",
      "name": "TextureButton"
    },
    {
      "inherits": "Resource",
      "name": "TextureLayered"
    },
    {
      "inherits": "Range",
      "name": "TextureProgress"
    },
    {
      "inherits": "Control",
      "name": "TextureRect"
    },
    {
      "inherits": "Resource",
      "name": "Theme"
    },
    {
      "inherits": "Reference",
      "name": "Thread"
    },
    {
      "inherits": "Node2D",
      "name": "TileMap"
    },
    {
      "inherits": "Resource",
      "name": "TileSet"
    },
    {
      "inherits": "Node",
      "name": "Timer"
    },
    {
      "inherits": "Button",
      "name": "ToolButton"
    },
    {
      "inherits": "Node2D",
      "name": "TouchScreenButton"
    },
    {
      "inherits": "",
      "name": "Transform"
    },
    {
      "inherits": "",
      "name": "Transform2D"
    },
    {
      "inherits": "Resource",
      "name": "Translation"
    },
    {
      "inherits": "Object",
      "name": "TranslationServer"
    },
    {
      "inherits": "Control",
      "name": "Tree"
    },
    {
      "inherits": "Object",
      "name": "TreeItem"
    },
    {
      "inherits": "Reference",
      "name": "TriangleMesh"
    },
    {
      "inherits": "Node",
      "name": "Tween"
    },
    {
      "inherits": "Reference",
      "name": "UDPServer"
    },
    {
      "inherits": "Reference",
      "name": "UPNP"
    },
    {
      "inherits": "Reference",
      "name": "UPNPDevice"
    },
    {
      "inherits": "Object",
      "name": "UndoRedo"
    },
    {
      "inherits": "BoxContainer",
      "name": "VBoxContainer"
    },
    {
      "inherits": "ScrollBar",
      "name": "VScrollBar"
    },
    {
      "inherits": "Separator",
      "name": "VSeparator"
    },
    {
      "inherits": "Slider",
      "name": "VSlider"
    },
    {
      "inherits": "SplitContainer",
      "name": "VSplitContainer"
    },
    {
      "inherits": "",
      "name": "Variant"
    },
    {
      "inherits": "",
      "name": "Vector2"
    },
    {
      "inherits": "",
      "name": "Vector3"
    },
    {
      "inherits": "RigidBody",
      "name": "VehicleBody"
    },
    {
      "inherits": "Spatial",
      "name": "VehicleWheel"
    },
    {
      "inherits": "Control",
      "name": "VideoPlayer"
    },
    {
      "inherits": "Resource",
      "name": "VideoStream"
    },
    {
      "inherits": "VideoStream",
      "name": "VideoStreamGDNative"
    },
    {
      "inherits": "VideoStream",
      "name": "VideoStreamTheora"
    },
    {
      "inherits": "VideoStream",
      "name": "VideoStreamWebm"
    },
    {
      "inherits": "Node",
      "name": "Viewport"
    },
    {
      "inherits": "Container",
      "name": "ViewportContainer"
    },
    {
      "inherits": "Texture",
      "name": "ViewportTexture"
    },
    {
      "inherits": "VisibilityNotifier",
      "name": "VisibilityEnabler"
    },
    {
      "inherits": "VisibilityNotifier2D",
      "name": "VisibilityEnabler2D"
    },
    {
      "inherits": "Spatial",
      "name": "VisibilityNotifier"
    },
    {
      "inherits": "Node2D",
      "name": "VisibilityNotifier2D"
    },
    {
      "inherits": "Spatial",
      "name": "VisualInstance"
    },
    {
      "inherits": "Script",
      "name": "VisualScript"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptBasicTypeConstant"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptBuiltinFunc"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptClassConstant"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptComment"
    },
    {
      "inherits": "VisualScriptLists",
      "name": "VisualScriptComposeArray"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptCondition"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptConstant"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptConstructor"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptCustomNode"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptDeconstruct"
    },
    {
      "inherits": "Object",
      "name": "VisualScriptEditor"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptEmitSignal"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptEngineSingleton"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptExpression"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptFunction"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptFunctionCall"
    },
    {
      "inherits": "Reference",
      "name": "VisualScriptFunctionState"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptGlobalConstant"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptIndexGet"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptIndexSet"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptInputAction"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptIterator"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptLists"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptLocalVar"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptLocalVarSet"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptMathConstant"
    },
    {
      "inherits": "Resource",
      "name": "VisualScriptNode"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptOperator"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptPreload"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptPropertyGet"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptPropertySet"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptResourcePath"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptReturn"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptSceneNode"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptSceneTree"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptSelect"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptSelf"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptSequence"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptSubCall"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptSwitch"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptTypeCast"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptVariableGet"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptVariableSet"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptWhile"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptYield"
    },
    {
      "inherits": "VisualScriptNode",
      "name": "VisualScriptYieldSignal"
    },
    {
      "inherits": "Object",
      "name": "VisualServer"
    },
    {
      "inherits": "Shader",
      "name": "VisualShader"
    },
    {
      "inherits": "Resource",
      "name": "VisualShaderNode"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeBooleanConstant"
    },
    {
      "inherits": "VisualShaderNodeUniform",
      "name": "VisualShaderNodeBooleanUniform"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeColorConstant"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeColorFunc"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeColorOp"
    },
    {
      "inherits": "VisualShaderNodeUniform",
      "name": "VisualShaderNodeColorUniform"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeCompare"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeCubeMap"
    },
    {
      "inherits": "VisualShaderNodeTextureUniform",
      "name": "VisualShaderNodeCubeMapUniform"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeCustom"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeDeterminant"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeDotProduct"
    },
    {
      "inherits": "VisualShaderNodeGroupBase",
      "name": "VisualShaderNodeExpression"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeFaceForward"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeFresnel"
    },
    {
      "inherits": "VisualShaderNodeExpression",
      "name": "VisualShaderNodeGlobalExpression"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeGroupBase"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeIf"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeInput"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeIs"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeOuterProduct"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeOutput"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeScalarClamp"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeScalarConstant"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeScalarDerivativeFunc"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeScalarFunc"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeScalarInterp"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeScalarOp"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeScalarSmoothStep"
    },
    {
      "inherits": "VisualShaderNodeSwitch",
      "name": "VisualShaderNodeScalarSwitch"
    },
    {
      "inherits": "VisualShaderNodeUniform",
      "name": "VisualShaderNodeScalarUniform"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeSwitch"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeTexture"
    },
    {
      "inherits": "VisualShaderNodeUniform",
      "name": "VisualShaderNodeTextureUniform"
    },
    {
      "inherits": "VisualShaderNodeTextureUniform",
      "name": "VisualShaderNodeTextureUniformTriplanar"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeTransformCompose"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeTransformConstant"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeTransformDecompose"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeTransformFunc"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeTransformMult"
    },
    {
      "inherits": "VisualShaderNodeUniform",
      "name": "VisualShaderNodeTransformUniform"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeTransformVecMult"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeUniform"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeUniformRef"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeVec3Constant"
    },
    {
      "inherits": "VisualShaderNodeUniform",
      "name": "VisualShaderNodeVec3Uniform"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeVectorClamp"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeVectorCompose"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeVectorDecompose"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeVectorDerivativeFunc"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeVectorDistance"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeVectorFunc"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeVectorInterp"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeVectorLen"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeVectorOp"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeVectorRefract"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeVectorScalarMix"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeVectorScalarSmoothStep"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeVectorScalarStep"
    },
    {
      "inherits": "VisualShaderNode",
      "name": "VisualShaderNodeVectorSmoothStep"
    },
    {
      "inherits": "Reference",
      "name": "WeakRef"
    },
    {
      "inherits": "PacketPeer",
      "name": "WebRTCDataChannel"
    },
    {
      "inherits": "WebRTCDataChannel",
      "name": "WebRTCDataChannelGDNative"
    },
    {
      "inherits": "NetworkedMultiplayerPeer",
      "name": "WebRTCMultiplayer"
    },
    {
      "inherits": "Reference",
      "name": "WebRTCPeerConnection"
    },
    {
      "inherits": "WebRTCPeerConnection",
      "name": "WebRTCPeerConnectionGDNative"
    },
    {
      "inherits": "WebSocketMultiplayerPeer",
      "name": "WebSocketClient"
    },
    {
      "inherits": "NetworkedMultiplayerPeer",
      "name": "WebSocketMultiplayerPeer"
    },
    {
      "inherits": "PacketPeer",
      "name": "WebSocketPeer"
    },
    {
      "inherits": "WebSocketMultiplayerPeer",
      "name": "WebSocketServer"
    },
    {
      "inherits": "ARVRInterface",
      "name": "WebXRInterface"
    },
    {
      "inherits": "Popup",
      "name": "WindowDialog"
    },
    {
      "inherits": "Resource",
      "name": "World"
    },
    {
      "inherits": "Resource",
      "name": "World2D"
    },
    {
      "inherits": "Node",
      "name": "WorldEnvironment"
    },
    {
      "inherits": "Resource",
      "name": "X509Certificate"
    },
    {
      "inherits": "Reference",
      "name": "XMLParser"
    },
    {
      "inherits": "Node2D",
      "name": "YSort"
    },
    {
      "inherits": "",
      "name": "bool"
    },
    {
      "inherits": "",
      "name": "float"
    },
    {
      "inherits": "",
      "name": "int"
    }
  ]
}


[Trace - 09:19:09 p.m.] Received notification 'textDocument/publishDiagnostics'.
Params: {
  "diagnostics": [
    {
      "code": 5,
      "message": "(UNUSED_ARGUMENT): The argument 'delta' is never used in the function 'move'. If this is intended, prefix it with an underscore: '_delta'",
      "range": {
        "end": {
          "character": 17,
          "line": 29
        },
        "start": {
          "character": 0,
          "line": 29
        }
      },
      "severity": 2,
      "source": "gdscript"
    },
    {
      "code": 16,
      "message": "(RETURN_VALUE_DISCARDED): The function 'move_and_collide()' returns a value, but this value is never used.",
      "range": {
        "end": {
          "character": 27,
          "line": 35
        },
        "start": {
          "character": 1,
          "line": 35
        }
      },
      "severity": 2,
      "source": "gdscript"
    }
  ],
  "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
}


[Trace - 09:19:09 p.m.] Received response 'textDocument/documentLink - (2)' in 51ms.
Result: []


[Trace - 09:19:10 p.m.] Sending request 'textDocument/documentLink - (3)'.
Params: {
  "textDocument": {
    "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
  }
}


[Trace - 09:19:10 p.m.] Received response 'textDocument/documentLink - (3)' in 35ms.
Result: []


[Trace - 09:19:12 p.m.] Sending request 'textDocument/documentLink - (4)'.
Params: {
  "textDocument": {
    "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
  }
}


[Trace - 09:19:12 p.m.] Sending notification 'textDocument/didChange'.
Params: {
  "textDocument": {
    "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd",
    "version": 2
  },
  "contentChanges": [
    {
      "text": "extends KinematicBody\n\nexport (float) var speed = 1.5\nexport (float) var rotation_speed = 0.25\nexport (float) var ACCELERATION = 2\nexport (float) var DECELERATION = 4\nvar rotation_lerp = 0.0\nvar target_rotation: Basis\n\nvar velocity = Vector3()\n\nfunc get_vision_triangle(height: int, angle: float):\n\tvar base = self.global_transform.origin\n\tvar C = height / cos(deg2rad(angle / 2)) * base\n\tvar Cm = height / cos(deg2rad(-1 * angle / 2)) * base\n\t\n\t\n\treturn [base, C, Cm]\n\nfunc look_towards(target: Vector3):\n\ttarget_rotation = transform.looking_at(target, Vector3.UP).basis\n\nfunc rotate_character(delta):\n\tif rotation_lerp < 1:\n\t\trotation_lerp += delta * rotation_speed\n\telif rotation_lerp > 1:\n\t\trotation_lerp = 1\n\t$Cuerpo.transform.basis = $Cuerpo.transform.basis.slerp(target_rotation, rotation_lerp).orthonormalized()\n\n\nfunc move(delta):\n\tpass\n\nfunc _physics_process(delta):\n\tmove(delta)\n\trotate_character(delta)\n\tmove_and_collide(velocity)\n"
    }
  ]
}


[Trace - 09:19:12 p.m.] Received notification 'textDocument/publishDiagnostics'.
Params: {
  "diagnostics": [
    {
      "code": 5,
      "message": "(UNUSED_ARGUMENT): The argument 'delta' is never used in the function 'move'. If this is intended, prefix it with an underscore: '_delta'",
      "range": {
        "end": {
          "character": 17,
          "line": 30
        },
        "start": {
          "character": 0,
          "line": 30
        }
      },
      "severity": 2,
      "source": "gdscript"
    },
    {
      "code": 16,
      "message": "(RETURN_VALUE_DISCARDED): The function 'move_and_collide()' returns a value, but this value is never used.",
      "range": {
        "end": {
          "character": 27,
          "line": 36
        },
        "start": {
          "character": 1,
          "line": 36
        }
      },
      "severity": 2,
      "source": "gdscript"
    }
  ],
  "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
}


[Trace - 09:19:12 p.m.] Sending request 'textDocument/documentLink - (5)'.
Params: {
  "textDocument": {
    "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
  }
}


[Trace - 09:19:12 p.m.] Received response 'textDocument/documentLink - (4)' in 51ms.
Result: []


[Trace - 09:19:12 p.m.] Received response 'textDocument/documentLink - (5)' in 94ms.
Result: []


[Trace - 09:19:13 p.m.] Sending request 'textDocument/completion - (6)'.
Params: {
  "textDocument": {
    "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
  },
  "position": {
    "line": 15,
    "character": 4
  },
  "context": {
    "triggerKind": 2,
    "triggerCharacter": "."
  }
}


[Trace - 09:19:13 p.m.] Sending notification 'textDocument/didChange'.
Params: {
  "textDocument": {
    "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd",
    "version": 5
  },
  "contentChanges": [
    {
      "text": "extends KinematicBody\n\nexport (float) var speed = 1.5\nexport (float) var rotation_speed = 0.25\nexport (float) var ACCELERATION = 2\nexport (float) var DECELERATION = 4\nvar rotation_lerp = 0.0\nvar target_rotation: Basis\n\nvar velocity = Vector3()\n\nfunc get_vision_triangle(height: int, angle: float):\n\tvar base = self.global_transform.origin\n\tvar C = height / cos(deg2rad(angle / 2)) * base\n\tvar Cm = height / cos(deg2rad(-1 * angle / 2)) * base\n\tCm.\n\t\n\treturn [base, C, Cm]\n\nfunc look_towards(target: Vector3):\n\ttarget_rotation = transform.looking_at(target, Vector3.UP).basis\n\nfunc rotate_character(delta):\n\tif rotation_lerp < 1:\n\t\trotation_lerp += delta * rotation_speed\n\telif rotation_lerp > 1:\n\t\trotation_lerp = 1\n\t$Cuerpo.transform.basis = $Cuerpo.transform.basis.slerp(target_rotation, rotation_lerp).orthonormalized()\n\n\nfunc move(delta):\n\tpass\n\nfunc _physics_process(delta):\n\tmove(delta)\n\trotate_character(delta)\n\tmove_and_collide(velocity)\n"
    }
  ]
}


[Trace - 09:19:13 p.m.] Received notification 'textDocument/publishDiagnostics'.
Params: {
  "diagnostics": [
    {
      "code": -1,
      "message": "Expected identifier as member",
      "range": {
        "end": {
          "character": 4,
          "line": 15
        },
        "start": {
          "character": 1,
          "line": 15
        }
      },
      "severity": 1,
      "source": "gdscript"
    }
  ],
  "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
}


[Trace - 09:19:13 p.m.] Received response 'textDocument/completion - (6)' in 55ms.
Result: [
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "abs"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "angle_to"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "bounce"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "ceil"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "cross"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "cubic_interpolate"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "direction_to"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "distance_squared_to"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "distance_to"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "dot"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "floor"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "inverse"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "is_equal_approx"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "is_normalized"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "length"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "length_squared"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "linear_interpolate"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "max_axis"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "min_axis"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "move_toward"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "normalized"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "outer"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "posmod"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "posmodv"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "project"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "reflect"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "rotated"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "round"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "sign"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "slerp"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "slide"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "snapped"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 2,
    "label": "to_diagonal_matrix"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 10,
    "label": "x"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 10,
    "label": "y"
  },
  {
    "data": {
      "position": {
        "character": 4,
        "line": 15
      },
      "textDocument": {
        "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
      }
    },
    "kind": 10,
    "label": "z"
  }
]


[Trace - 09:19:15 p.m.] Sending request 'completionItem/resolve - (7)'.
Params: {
  "data": {
    "position": {
      "character": 4,
      "line": 15
    },
    "textDocument": {
      "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
    }
  },
  "kind": 2,
  "label": "angle_to",
  "_emacsStartPoint": 448
}


[Trace - 09:19:15 p.m.] Received response 'completionItem/resolve - (7)' in 22ms.
Result: {
  "command": {
    "command": "",
    "title": ""
  },
  "data": {
    "context": null,
    "position": {
      "character": 4,
      "line": 15
    },
    "textDocument": {
      "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
    }
  },
  "deprecated": null,
  "detail": "",
  "documentation": {
    "kind": "markdown",
    "value": "\tfunc Vector3.angle_to(to: Vector3) -> float\n\nReturns the minimum angle to the given vector, in radians.\n\n"
  },
  "filterText": "",
  "insertText": "angle_to(",
  "kind": 2,
  "label": "angle_to",
  "preselect": null,
  "sortText": ""
}


[Trace - 09:19:15 p.m.] Sending request 'completionItem/resolve - (8)'.
Params: {
  "data": {
    "position": {
      "character": 4,
      "line": 15
    },
    "textDocument": {
      "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
    }
  },
  "kind": 2,
  "label": "abs",
  "_emacsStartPoint": 448
}


[Trace - 09:19:15 p.m.] Sending notification 'textDocument/didChange'.
Params: {
  "textDocument": {
    "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd",
    "version": 8
  },
  "contentChanges": [
    {
      "text": "extends KinematicBody\n\nexport (float) var speed = 1.5\nexport (float) var rotation_speed = 0.25\nexport (float) var ACCELERATION = 2\nexport (float) var DECELERATION = 4\nvar rotation_lerp = 0.0\nvar target_rotation: Basis\n\nvar velocity = Vector3()\n\nfunc get_vision_triangle(height: int, angle: float):\n\tvar base = self.global_transform.origin\n\tvar C = height / cos(deg2rad(angle / 2)) * base\n\tvar Cm = height / cos(deg2rad(-1 * angle / 2)) * base\n\tCm.abs\n\t\n\treturn [base, C, Cm]\n\nfunc look_towards(target: Vector3):\n\ttarget_rotation = transform.looking_at(target, Vector3.UP).basis\n\nfunc rotate_character(delta):\n\tif rotation_lerp < 1:\n\t\trotation_lerp += delta * rotation_speed\n\telif rotation_lerp > 1:\n\t\trotation_lerp = 1\n\t$Cuerpo.transform.basis = $Cuerpo.transform.basis.slerp(target_rotation, rotation_lerp).orthonormalized()\n\n\nfunc move(delta):\n\tpass\n\nfunc _physics_process(delta):\n\tmove(delta)\n\trotate_character(delta)\n\tmove_and_collide(velocity)\n"
    }
  ]
}


[Trace - 09:19:15 p.m.] Sending request 'completionItem/resolve - (9)'.
Params: {
  "data": {
    "position": {
      "character": 4,
      "line": 15
    },
    "textDocument": {
      "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
    }
  },
  "kind": 2,
  "label": "abs",
  "_emacsStartPoint": 448
}


[Trace - 09:19:15 p.m.] Received notification 'textDocument/publishDiagnostics'.
Params: {
  "diagnostics": [
    {
      "code": 7,
      "message": "(STANDALONE_EXPRESSION): Standalone expression (the line has no effect).",
      "range": {
        "end": {
          "character": 7,
          "line": 15
        },
        "start": {
          "character": 1,
          "line": 15
        }
      },
      "severity": 2,
      "source": "gdscript"
    },
    {
      "code": 5,
      "message": "(UNUSED_ARGUMENT): The argument 'delta' is never used in the function 'move'. If this is intended, prefix it with an underscore: '_delta'",
      "range": {
        "end": {
          "character": 17,
          "line": 30
        },
        "start": {
          "character": 0,
          "line": 30
        }
      },
      "severity": 2,
      "source": "gdscript"
    },
    {
      "code": 16,
      "message": "(RETURN_VALUE_DISCARDED): The function 'move_and_collide()' returns a value, but this value is never used.",
      "range": {
        "end": {
          "character": 27,
          "line": 36
        },
        "start": {
          "character": 1,
          "line": 36
        }
      },
      "severity": 2,
      "source": "gdscript"
    }
  ],
  "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
}


[Trace - 09:19:15 p.m.] Received response 'completionItem/resolve - (8)' in 54ms.
Result: {
  "command": {
    "command": "",
    "title": ""
  },
  "data": {
    "context": null,
    "position": {
      "character": 4,
      "line": 15
    },
    "textDocument": {
      "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
    }
  },
  "deprecated": null,
  "detail": "",
  "documentation": {
    "kind": "markdown",
    "value": "\tfunc Vector3.abs() -> Vector3\n\nReturns a new vector with all components in absolute values (i.e. positive).\n\n"
  },
  "filterText": "",
  "insertText": "abs()",
  "kind": 2,
  "label": "abs",
  "preselect": null,
  "sortText": ""
}


[Trace - 09:19:15 p.m.] Received response 'completionItem/resolve - (9)' in 103ms.
Result: {
  "command": {
    "command": "",
    "title": ""
  },
  "data": {
    "context": null,
    "position": {
      "character": 4,
      "line": 15
    },
    "textDocument": {
      "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
    }
  },
  "deprecated": null,
  "detail": "",
  "documentation": {
    "kind": "markdown",
    "value": "\tfunc Vector3.abs() -> Vector3\n\nReturns a new vector with all components in absolute values (i.e. positive).\n\n"
  },
  "filterText": "",
  "insertText": "abs()",
  "kind": 2,
  "label": "abs",
  "preselect": null,
  "sortText": ""
}


[Trace - 09:19:15 p.m.] Sending request 'workspace/executeCommand - (10)'.
Params: {
  "command": ""
}


[Trace - 09:19:15 p.m.] Received response 'workspace/executeCommand - (10)' in 49ms.
Result: {
  "code": -32601,
  "message": "Method not found: executeCommand"
}


[Trace - 09:19:15 p.m.] Sending request 'textDocument/documentLink - (11)'.
Params: {
  "textDocument": {
    "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
  }
}


[Trace - 09:19:15 p.m.] Received response 'textDocument/documentLink - (11)' in 45ms.
Result: []


[Trace - 09:19:19 p.m.] Sending request 'textDocument/documentLink - (12)'.
Params: {
  "textDocument": {
    "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
  }
}


[Trace - 09:19:19 p.m.] Sending notification 'textDocument/didChange'.
Params: {
  "textDocument": {
    "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd",
    "version": 11
  },
  "contentChanges": [
    {
      "text": "extends KinematicBody\n\nexport (float) var speed = 1.5\nexport (float) var rotation_speed = 0.25\nexport (float) var ACCELERATION = 2\nexport (float) var DECELERATION = 4\nvar rotation_lerp = 0.0\nvar target_rotation: Basis\n\nvar velocity = Vector3()\n\nfunc get_vision_triangle(height: int, angle: float):\n\tvar base = self.global_transform.origin\n\tvar C = height / cos(deg2rad(angle / 2)) * base\n\tvar Cm = height / cos(deg2rad(-1 * angle / 2)) * base\n\t\n\treturn [base, C, Cm]\n\nfunc look_towards(target: Vector3):\n\ttarget_rotation = transform.looking_at(target, Vector3.UP).basis\n\nfunc rotate_character(delta):\n\tif rotation_lerp < 1:\n\t\trotation_lerp += delta * rotation_speed\n\telif rotation_lerp > 1:\n\t\trotation_lerp = 1\n\t$Cuerpo.transform.basis = $Cuerpo.transform.basis.slerp(target_rotation, rotation_lerp).orthonormalized()\n\n\nfunc move(delta):\n\tpass\n\nfunc _physics_process(delta):\n\tmove(delta)\n\trotate_character(delta)\n\tmove_and_collide(velocity)\n"
    }
  ]
}


[Trace - 09:19:19 p.m.] Received notification 'textDocument/publishDiagnostics'.
Params: {
  "diagnostics": [
    {
      "code": 5,
      "message": "(UNUSED_ARGUMENT): The argument 'delta' is never used in the function 'move'. If this is intended, prefix it with an underscore: '_delta'",
      "range": {
        "end": {
          "character": 17,
          "line": 29
        },
        "start": {
          "character": 0,
          "line": 29
        }
      },
      "severity": 2,
      "source": "gdscript"
    },
    {
      "code": 16,
      "message": "(RETURN_VALUE_DISCARDED): The function 'move_and_collide()' returns a value, but this value is never used.",
      "range": {
        "end": {
          "character": 27,
          "line": 35
        },
        "start": {
          "character": 1,
          "line": 35
        }
      },
      "severity": 2,
      "source": "gdscript"
    }
  ],
  "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
}


[Trace - 09:19:19 p.m.] Sending request 'textDocument/documentLink - (13)'.
Params: {
  "textDocument": {
    "uri": "file:///home/jorge/sotsfgs/proyectos/zombox/characters/character.gd"
  }
}


[Trace - 09:19:19 p.m.] Received response 'textDocument/documentLink - (12)' in 74ms.
Result: []


[Trace - 09:19:19 p.m.] Received response 'textDocument/documentLink - (13)' in 96ms.
Result: []
```
</details>

### Minimal reproduction project

_No response_