Skip to content

GATE v1.1.0 - Types first, and the editor no longer lies

Choose a tag to compare

@Blade67 Blade67 released this 18 Sep 15:24
· 6 commits to main since this release

The first feature release. Most of it is types: unions, tuples, typed callables, aliases
and typed scenes, plus flow typing that makes is narrow and as honest. The rest is the
editor finally treating .gate as a language rather than an unknown file.

Valid GDScript is still valid GATE. Rename a .gd to .gate and it compiles with no
errors, loads, and behaves identically.

New types

  • Unions <int | str> and tuples <int, str>, checked at compile time, emitted as
    a plain Variant and Array
  • Typed callables func(int) -> bool, checked on assignment and on .call()
  • Type aliases type Hp = int, pure substitution with nothing emitted
  • Typed scenes PackedScene<Enemy>, so instantiate() has a type
  • match type patterns, Circle c: and Rect r when r.w == r.h:
  • is narrows, and as is no longer trusted inside GATE's own declarations

In the editor

  • .gate files appear in the FileSystem dock with their own icon, open in the real script
    editor with GATE's colours, and can be created from the UI
  • Autocompletion, Ctrl-click and F1, and breakpoints that stop the running game and show
    the stop in the .gate rather than the generated .gd
  • Godot's own warnings, unused variable, unused parameter, shadowed name and the rest,
    reported against the .gate in Godot's own words, honouring your warning settings
  • Generated output is indented the way your project is

Also

  • Swizzling, object initialisers, @required, @export_if, and signal emit and connect
    checks
  • Struct value semantics fixed throughout: copies where they are received, defaults that
    run once, field-wise ==
  • A build now does only what your edit changed, and an unchanged project builds nothing
  • Eighteen superset violations fixed, one of them a wrong value in 1.0.x

Requires Godot 4.7. Full detail in CHANGELOG.md, and what comes next is in
ROADMAP.md.