Multiline tabs and a whole lot of types!


Additions

  • I added a whole lot of options for tabs!
    You can now have tabs split across multiple lines, have them match the label width, and more - check Preferences ➜ Navigation ➜ Tabs for new settings.
    You can also pin/unpin tabs by Ctrl+clicking them - this prevents them from being closed via “close all but this” shortcut and will put them at the beginning of tab list.
  • Outline View now has more display options
    Among other things, this allows using it as a vertical tab list.

Improvements

  • Object editor now displays overridden properties.
  • aceEditor.debugShowToken() now toggles debug display if called again, shows more information, and looks better than before.
  • When navigating to a function name that matches its script name, GMEdit won’t try to scroll down to the function declaration inside.
    (base IDE shows separate lookup items for functions/scripts, which is a little nasty)
  • You can now include a note after the type in /// @is and this will be shown in auto-completion.
  • You can now create Notes in 2.3 projects, which is also good because Script and Shader creation menu items were too close together.
  • You can now cancel resource creation by pressing Esc when entering the name.

Types

  • Added @typedef JSDoc comment!
    This allows to specify project-wide type aliases.
  • Added support for tuples!
    This means that if you are turning an array with different-typed values, you can specify what each cell holds.
  • Added support for specified_map, a ds_map with known key-value pair types.
    This also means that GMEdit can now check access to async_load
  • Added an option to disable implicit int<->bool casts.
  • Doing arr[i,k] now reasonably implies that arr is a Type[][] rather than just Type[].
  • Index-based built-in types (surfaces, data structures, etc.) now accept -1 very specifically as an allowed value.
  • Object/constructor type inference will now auto-type variables when assigned assets (spr = spr_some types as sprite) and also supports spr = -1 as sprite (or spr = func() as sprite) for convenience.
  • Added an option to warn about redundant casts (like doing 4 as int).
  • @param types now auto-apply to 2.3 named arguments and argument#/argument[] so that you don’t have specify types in both places.
  • Added an option to index non-top-level variables in Create events.
    This can be handy for configuration-specific logic that’s usually in if-blocks.

Fixes

  • Fixed status bar being able to make the code editor view wider than intended.
    I think this is the third time I’m fixing this specific bug since styling is complex.
  • Fixed a few built-in functions having incorrect return values as far as linter is concerned.
  • Lone $ no longer highlights in numeric value color.
  • Fixed tabs continuing to show the “changes” marker when saving in Show Aside view.
  • Fixed multi-select object properties denying to save.
  • Fixed #import not working for importing items into “built-in” (int, array, etc.) types.
  • Fixed multiple code editors having blinking cursors if focusing-unfocusing the editor in specific ways.
  • Fixed 2.3 timeline moments being saved in 2.2 format.
  • Fixed nested with recovering self type incorrectly.
  • Fixed a few timing-specific issues with GMLive.js

Files

GMEdit-Beta-Windows.zip 90 MB
Version Aug 23, 2021 Aug 23, 2021
GMEdit-Beta-Mac.zip 84 MB
Version Aug 23, 2021 Aug 23, 2021
GMEdit-Beta-Linux.zip 84 MB
Version Aug 23, 2021 Aug 23, 2021
GMEdit-Beta-App-Only.zip 3 MB
Version Aug 23, 2021 Aug 23, 2021

Get GMEdit

Download NowName your own price

Comments

Log in with itch.io to leave a comment.

The new tab system is amazing! Thank you :)