Recommended

July 15, 2026 · View on GitHub

Features

List of implemented features
Please report any issues you encounter - this is still yet to be battle tested

Auto-completion

Standard completions of Variables, Constants, Methods, Signals, Enums, Classes, Annotations, ...
Methods directly insert whole method
 
Resulting in:
Nodes
Inputs, Groups, Meta fields, Resources

Usages

Go to declaration / usages
Refactoring
Go to file resource (Ctrl+Click)

File templates

Predefined from Godot's source
Custom templates

Hide private fields

Hides _underscore prefixed variables and methods from completions
 
While showing them within the class itself
Setting for turning it it off

Built-in documentation (Ctrl+Q)

Generated documentation from comments

Scene preview

Scene tree view

Gutter markers

Parent(super) methods
On click redirects to given method
Run current scene (disabled in Rider)
Resource usages
Connected signals
Inherited scene
Color picker

Parameter hints

Param hints (Ctrl+P)
Inlay hints

Run configuration - start game from Editor (disabled in Rider)

Add Godot's path

Formatter

Code formatter
Before
After
Code style settings

Type analysis

Provided by annotators (not configurable in the settings).

Type checks

is/has conditioned type
is/has correct return
Typed Array/Dictionary indexing checks
Array[T] requires an int index. Dictionary[K, V] requires a key of type K.
Untyped Dictionary accepts any key type.
On type mismatch, only the index expression is highlighted.
Element type inference for indexing
arr[index] returns T for Array[T].
dict[key] returns V for Dictionary[K, V].

Typed collections: Array[T], Dictionary[K, V]

  • The plugin understands Godot 4 typed collections and performs:
    • Index type checks (T for Array[T], K for Dictionary[K, V]).

Inspections

Each inspection below notes its default severity. Inspections set to Information are essentially hidden in the editor by default (no highlighting). Their quick fixes stay available. This was done for inspections available with Godot LSP.

Method correctness

default severity: Information (hidden by default).

unreachable code
all paths return

Type hints

Type mismatch & missing type hint — Warning
Flags variable/constant declarations whose declared type doesn't match the assigned value, and suggests adding an inferred type hint where one is missing (see Actions → Add/change return Type for the quick fixes).

Match statements

Enum match does not cover all cases — Warning
When a match is performed over an enum value and no _ (wildcard) branch is present, flags the statement if some enum members aren't handled, with a quick fix to add the missing branches.

Naming

Class name matches filename — Warning
Warns when a class_name doesn't match its file name (PascalCase of the snake_case filename) and offers a quick fix to rename it.

Unused symbols

Unused methods, parameters, local variables, signals & classes — Information (hidden by default)
Detects declarations with no references. Hidden by default (Information level) because the Godot LSP reports these more accurately; the inspections' quick fixes to remove the unused symbol remain available.

Code style

Whitespace style (tabs vs spaces) — Warning
Detects and highlights leading indentation that doesn't match your code style settings (tabs vs spaces) in GDScript files. Offers a quick fix to convert indentation.

Legacy API usage

Legacy string-based API usage — Warning Detects legacy string-based calls and offers quick fixes to convert them to Callable- or signal-reference-based syntax.
Supported quick fixes include:
  • connect("signal_name", callable)signal_name.connect(callable)
  • disconnect("signal_name", callable)signal_name.disconnect(callable)
  • emit_signal("signal_name", ...)signal_name.emit(...)
  • get_signal_connection_list("signal_name")signal_name.get_connections()
  • is_connected("signal_name", callable)signal_name.is_connected(callable)
  • rpc("method_name", ...)method_name.rpc(...)
  • call("method_name", ...)method_name.call(...)
  • call_deferred("method_name", ...)method_name.call_deferred(...)
  • callv("method_name", arg_array)method_name.callv(arg_array)
# Less efficient
call_deferred("my_method", 123)
# Recommended
my_method.call_deferred(123)

Scene files (.tscn)

Section order — Error
In .tscn scene files, flags sections that appear out of the order Godot expects.

Actions

Add/change return Type
Offers two quick fixes for inferred variable types: Specify variable type (explicit, e.g. var t: bool = true) and Auto-infer type (:=) (e.g. var t := true). The preferred order follows the Short typed declarations project setting.
Generate get_set methods
Remove annotation
Change class_name to match filename
Remove getter & setter
Too many arguments
Change function type

"Trait" like feature

Known limitations

get_node, get_parent
get_node, get_parent and so on atm do not parse actual Node, but only as a generic Node type (will be supported later on)
get_window method
get_window (and maybe few other methods) return different class based on context (SubViewport, Window, ...)
Plugin specify it as base Viewport class, so to get completion/check for inherited ones available you have to manually specify the type
Dynamic nodes
Dynamic nodes and such added at runtime cannot be predicted and thus no autocompletion is available