Skip to content
| Marketplace
Sign in
Visual Studio>Tools>GUITKX
GUITKX

GUITKX

Yaniv Kalfa

|
2 installs
| (0) | Free
Syntax highlighting and language intelligence for .guitkx markup (ReactiveUI for Godot). Markup completion/hover; embedded GDScript is forwarded to Godot's language server.
Download

GUITKX — ReactiveUI for Godot

Editor support for .guitkx, the JSX-like markup of ReactiveUI for Godot — a React-style reactive UI library for Godot 4.x.

Features

  • Syntax highlighting for the JSX-like markup and the embedded GDScript, via a self-contained TextMate grammar.
  • Markup IntelliSense — completion and hover for host-element tags, structural/common attributes, control-flow directives (@if/@elif/@else/@for/@while/@match/@case/@default), and per-element event handlers.
  • Embedded-GDScript IntelliSense — completion and hover inside {expr}, setup, and control-flow conditions, forwarded to Godot's own GDScript language server so you get real V.* / Hooks.* / Godot-API completion.
  • Diagnostics for structural problems.

Requirements

  • Node.js on your PATH (the bundled language server runs on Node).
  • For embedded-GDScript intelligence: the Godot editor running with your project open and its GDScript language server enabled (Editor Settings → Network → Language Server; engine default port 6005).

Changelog

[0.2.4] - 2026-06-22

  • Formatting: an authored blank line at the start or end of a component/hook setup block is now preserved (it was being stripped), and runs of 2+ spaces in embedded GDScript are collapsed to one outside strings/comments (e.g. if x == null becomes if x == null).
  • Diagnostics: an unknown element (GUITKX0105) and an unknown host attribute (GUITKX0107) are now reported as Errors (a red squiggle) instead of a faint hint / a warning.
  • Completion: style-dict keys (bg_color, corner_radius, pad, separation, expand_h, font_size, the theme channels, the per-state slots, …) are offered inside a style={ {…} } (or *_style) dictionary; common built-in constants (Color.WHITE, Vector2.ZERO, …) complete after Type.; and go-to-definition on an embedded GDScript symbol now forwards to Godot's language server (jumping to the library .gd, e.g. use_ref → core/hooks.gd) when the editor is running.

[0.2.3] - 2026-06-22

  • Formatting now always uses tab indentation for .guitkx (the embedded GDScript requires tabs, and the compiler emits tabs), so the markup and the embedded setup no longer mix indentation units — previously, with an editor configured for spaces, a deeper setup line kept its authored tab and produced a "2 spaces + tab" indent. Diagnostics: unknown attributes on a host element are now flagged (e.g. a typo'd te / xt on <Label>) with a did-you-mean suggestion, validated against the bundled Godot ClassDB property + signal data; component tags (which take arbitrary props) are not flagged, and the check is skipped when the ClassDB dump is unavailable so it never false-flags.
  • Formatter configuration: a project guitkx.config.json (Prettier-style walk-up, the analogue of ReactiveUIToolKit's uitkx.config.json) now overrides the formatter — printWidth, indentStyle ("tab" | "space"), indentSize, singleAttributePerLine, insertSpaceBeforeSelfClose. Tab indentation is the default when no config is present.

[0.2.1] - 2026-06-22

  • Renamed the extension to just "GUITKX" (it was "GUITKX (ReactiveUI for Godot)", which truncated to "GUITKX (React..." in the editor UI) and added the Godot logo as the extension / marketplace icon.

[0.2.0] - 2026-06-22

  • Formatter: components whose render is guarded by an early return null (e.g. if not ready: return null before the real markup return) are now formatted instead of being left verbatim, and the multi-attribute wrap path honors the insertSpaceBeforeSelfClose option (it previously always inserted the space).
  • Language server: hover and completion inside a hook body now map to the correct embedded-GDScript offset (the body is no longer mis-mapped after re-indentation); a <>...</> fragment no longer raises a false GUITKX0104 duplicate-key warning across its siblings; and parameter completion is now noncode-aware, so a string default containing a comma or colon (e.g. label: String = "a, b") no longer drops the parameters declared after it.
  • find-references and rename now use the exact jsx-as-value keyword boundaries the compiler uses (return / else / and only), so they never edit a <Name that the compiler reads as a less-than comparison (e.g. after if, in, not, await, yield, or or).
  • Control-flow inside an embedded expression that cannot be lowered to an expression (@while / @match) now reports GUITKX0113 through the compiler-diagnostics sidecar; @if/@elif/@else and @for inside a {expression} or a lambda now compile correctly (inline ternary / .map).

[0.1.0] - 2026-06-21

  • Initial release. Syntax highlighting and language intelligence for .guitkx markup (ReactiveUI for Godot): a self-contained TextMate grammar that colors both the JSX-like markup and the embedded GDScript; markup completion and hover for host-element tags, structural/common attributes, control-flow directives (@if/@elif/@else/@for/@while/@match/@case/@default) and per-element event handlers, served from the bundled schema; and embedded-GDScript completion/hover forwarded to Godot's built-in GDScript language server (TCP, engine port 6005) through a synthetic virtual .gd document with a length-preserving source map. Structural diagnostics (unbalanced braces) ship today; the Godot proxy degrades gracefully when the editor is not running so the markup features always work.
  • Visual Studio 2022 extension registers the TextMate grammar via .pkgdef (VS does not colorize over LSP) and drives the same Node language server through an ILanguageClient. Requires Node.js on PATH.
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft