[beta, updated Oct 15] A whole lot of things
GMEdit » Devlog
Additions:
- /*#gml <code> */ and /*//#gml <code>*/ can be used for syntax highlighting inside comment blocks.
- There are now two more auto-completion modes - GMS2-style "containing" and section start matching.
(the later can be ridiculously fast if you can get used to it) - There is now error checking (called "linter")!
It's pretty smart and can even resolve macros (unlike the current GMS2 error checker). - Projects now have properties (open via main menu)!
This has settings for code conventions, lambdas, and linter. - Added an option to store lambdas as scripts in GMS2 projects
This is good if not everyone on your team use GMEdit [...yet] and don't want to switch. - Hovering the mouse over an opening/closing bracket now shows a tooltip about the matching bracket.
- You can now edit variable definitions in GMS2 objects.
- You may use "#macro let var" and/or "#macro const var" for ES6 style block scoped variables
(checked for by linter; "const" also prevents reassignment) - There are now C-style macro functions! Very powerful.
- Themes can now use accent colors on Windows!
Also there are now two sample themes with this feature that you can pick apart. - There is now support for custom GML dialects!
Primarily intended for making it easier to make mods for games with GML-like scripting languages in GMEdit.
Improvements:
- #import rule processing is now faster for extension files containing large numbers of scripts.
- JSDoc now supports {type} syntax.
- Combined view now supports most of the syntax extensions (except for coroutines).
- Combined room creation code editor now supports #lambda and #import.
- Argument auto-detection now distinguishes optional arguments (and is generally even smarter).
- GMEdit now shows most GMS2 resource types and lets you pick what to do if it can't open them.
- #lambda now allows linebreak(s) before {} and also allows #lambda() {...}.
- You can now use Ctrl+T in recent projects list.
- Smart completion now sorts results by relevance.
- Combined room creation code now partakes in global search (thanks to nommiin)
- Preferences are now a tab rather than a floating window.
- When reopening the project, GMEdit will now focus the previously active tab.
- Argument help in status bar can now scroll if needed.
- Multi-line macros are now indexed correctly,
- GMEdit now prefers to show macro tooltips for the current configuration.
- aceEditor.debugShowToken now shows JSON dump of token (for theme/plugin making).
- GMEdit now detects and notifies about GMS2 project resource ID collisions on load (goes into console).
- GMEdit now considers GMS2 room inheritance for most purposes.
- Original event order is now maintained when using "sorted" GMS2 event order option.
- JSON format now matches that of GMS2 identically in most cases
(field order, formatting, non-standard behaviours like escaping forward slashes) - "Show API" option for extensions is now a little smarter, grouping entries by their visibility and noting if exposed name doesn't match auto-completion name.
- You can now create/rename/delete file-based resource tree items.
- You can now "open externally" file-based resource tree directories.
- #import directory is now shown inside resource tree.
- Directory-based projects now have lookup, global search (inside GML files), and optional indexing.
- [Oct 04] You can now fold case-labels
- [Oct 04] There is now a linter option to consider case-labels blocks (lasting until the next case / closing bracket / default-case)
- [Oct 08] There is now a preference for displaying tooltips when navigating via keyboard (shown below the cursor)
- [Oct 08] Color previews are now shown in tooltips for hex literals (0xABCDEF, $ABCDEF)
- [Oct 15] Global lookup (Ctrl+T) now shows types of items
- [Oct 15] It is now possible to filter global lookup results via "name fragment:type fragment" syntax
- [Oct 15] Added "Reload GMEdit" to command palette (Ctrl+Shift+T) for quick access
Fixes:
- Fixed OSX version detecting -psn auto-argument as a path to open (thanks to nommiin).
- Fixed local var syntax highlighting breaking if you Ctrl+S&switch tab really fast.
- Fixed GMS1 extension API viewer thinking that all functions are hidden.
- Fixed enum highlighting inside Markdown.
- Fixed roomCCs not supporting import/lambda, add a generic "#target" scope.
- Status bar can no longer extend the width of main area if the contents don't fit.
- Fixed treeview forgetting to lazy-load thumbnails when using "show in treeview" menu option.
- Fixed it taking more than one save to get imports to work if the file didn't use them before.
- Fixed extern files opened via "open here" reopening normally when reopening the project.
- Fixed argument names sometimes not being auto-detected from variables.
- Fixed search results sometimes declining to save if there was >1 result per line.
- Fixed a caret bug with Vim keybind mode.
- Fixed enum highlighthing in search results overtaking subsequent results.
- Fixed typed arguments not working in lambdas.
- Fixed a Preferences.load error if you had no saved preferences before.
- Fixed `var q; q.hspeed` not highlighting in built-in color.
- Fixed some namespace highlighting oddities inside deeply nested lambdas.
- Fixed GMS2 objects denying to load if YY points at missing event files.
- Fixed outline-view breaking if your code closes unopened regions.
- Fixed argument auto-completion not showing for freshly created scripts (before Ctrl+R)
- Fixed "No idea what to do with this YY resource" dialog defaulting to "open here [as JSON]" instead of "do nothing"
- Fixed Ctrl+D removing lines (Ace style) instead of duplicating them (GMS2/VS style)
- Fixed GMEdit doing its best to remove unrecognized GMS2 resources when requested (and usually leaving behind files that were not referenced in YYP), despite showing a "no idea how to remove this" message box prior.
- Fixed some GM API entries being parsed incorrectly due to inconsistent formatting.
- [Oct 08] Fixed it being possible to break the linter with specific uses of #import.
CSS changes and additions (for custom themes):
- Markdown code-block tags now have individual styles for default tokens instead of inheriting one from markdown
- Merged some styles for consistency (e.g. keyboard events no longer have a custom comment-note class)
- Empty treeview directories are now indicated via .is-empty class
- Treeview directories now have a data-filter attribute that indicates what's supposed to be inside
Get GMEdit
Download NowName your own price
GMEdit
A high-end code editor for all things GameMaker
Status | Released |
Category | Tool |
Author | YellowAfterlife |
Tags | GameMaker |
More posts
- [stable] Compatibility tweaks and fixes9 days ago
- [beta, stable] Small things and fixes61 days ago
- [stable, beta] Some fixesMay 25, 2024
- [stable, beta] "Navigate to method" and various tweaksMay 10, 2024
- [stable, beta] A few things and GM updatesFeb 26, 2024
- [stable, beta] Small fixes and Return Of CoroutinesSep 06, 2023
- [stable, beta] GM2023.4 and multi-level tabsJun 08, 2023
- [stable, beta] GM2023.1 support and small thingsMar 12, 2023
- [stable, beta] GM updatesDec 24, 2022
- [stable, beta] Arrow functions and various improvementsOct 19, 2022
Comments
Log in with itch.io to leave a comment.
The #mfunc is useful, and i can do this with it:
#mfunc foreach(i, ins, ary) \
for (var i##__ = array_length_1d(ary), i = 0; i < i##__; i++) { var ins = ary[@ i];
var array = [100, 101, 102];
foreach (i, ins, array)
show_debug_message(i);
show_debug_message(ins);
}
It's cool, but missing a left brace.
I wonder if i can write it with the left brace just like this in some way:
#mfunc foreach(i, ins, ary){ \
for (var i##__ = array_length_1d(ary), i = 0; i < i##__; i++) { var ins = ary[@ i];
var array = [100, 101, 102];
foreach (i, ins, array) {
show_debug_message(i);
show_debug_message(ins);
}
You can use for-loops to "chain" declarations and statements,
(note: if you want "break" to work, you'll need a bit of extra logic)
Or write them out like you would in higher-end programming languages [with actual AST processing in macros],
Get it, thanks for the answer.
And two days after I decided to compile the Git repo myself with Haxe! Huge update and great job as always, very thankful for GMEdit!