This document lists new features, improvements, changes, and bug fixes in each release of the package.
- Added the ability to toggle breakpoint on the current line instead of either adding or removing them.
- Added keybindings matching Godot to run the project (f5), current scene (f6), continue execution (f7), and toggle breakpoints F9.
Thanks to @clangdo for the contribution!
- Fixed indent functions preventing double hanging indent in parentheses or after a
\
.
Big thanks to @VlachJosef and @rileyrg for their work on this release.
- Debugger support with breakpoints, code stepping, stack frames, remote scene tree, and more. See the README for more information.
- Fix scene and script selection not aborting when pressing C-g.
This release brings many quality-of-life improvements to work more productively with Godot and Emacs.
Big thanks to @VlachJosef and @rileyrg for contributing to this release.
- Support for running the project and scenes with hydra with
gdscript-hydra-show
. - Command interpreter (
comint
support) for Godot processes: get and navigate errors within Emacs, and jump to files and GDScript code causing errors.- The command buffer pops up automatically when you run a scene or the project in the editor.
- Added command
gdscript-format-all
to format all gdscript buffers. - Added commands
gdscript-format-all
andgdscript-format-buffer
to gdscript-mode's hydra window (gdscript-hydra-show
). - Added command interpreter support for
gdscript-format-*
commands - Add the ability to open a local copy of the Godot docs with
gdscript-docs-*
commands. - Multiple projects support. Every project's
godot
process runs in its own buffer. - Godot's standard output and standard error are fed to a
comint
buffer. This allows you to navigate errors and jump to the corresponding source files, usingcompilation-*
commands. - Hydra provides a history of commands for quick re-execution of godot commands. It also provides a quick way to rerun the last command.
- The
gdscript-godot-run-current-scene
command now offers to run any scene file if the current buffer is not a scene file. - The
gdscript-godot-run-current-script
command now offers to run any script file if the current buffer is not a script file. - Syntax highlighting for the
$
operator.
- Added unit tests (see
gdscript-tests.el
). - Added check for missing
godot
executable and a corresponding error message. - You can force selecting a scene when calling
gdscript-godot-run-current-scene
by using the universal argument (C-u). gdscript-godot-run-current-scene
will useprojectile
by default if available, otherwiseivy
orido
.- You can now customize the URL for the Godot API reference:
gdscript-docs-online-search-api-url
.- Also, use the universal argument (C-u) before calling
gdscript-docs-browse-api
to force it to use the online docs, even if a local build of the docs is available.
- Also, use the universal argument (C-u) before calling
- Removed guessing indentation size, which could guess indent sizes wrong.
- Removed the customizable variables
gdscript-indent-guess-indent-offset
andgdscript-indent-guess-indent-offset-verbose
.
- Fixed auto-indentation not working with match blocks.
- Fixed auto-indentation of new blocks sometimes over-indenting.
- Fixed
eww-after-render-hook
always calling gdscript docs formatter, even outside ofgdscript-mode
buffers. - Removed call to nonexisting function
f-executable-p
.
- Added commands to open the API reference in
eww
. - Added debug options when running
gdscript-godot-run-project-debug
. - Added a command to insert a path to a project file, either using
project-find-file
ifprojectile
is available, otherwise withfind-file
. - Added a command to format a selected region with
gdformat
. - Added syntax highlighting for function calls.
- Added missing built in functions.
- Added missing
puppet
andremotesync
keywords.
- Changed keyboard shortcuts:
- C-c i
gdscript-completion-insert-file-path-at-point
- C-c C-f r
gdscript-format-region
- C-c C-f b
gdscript-format-buffer
- C-c C-r p
gdscript-godot-open-project-in-editor
- C-c C-r r
gdscript-godot-run-project
- C-c C-r d
gdscript-godot-run-project-debug
- C-c C-r s
gdscript-godot-run-current-scene
- C-c C-r q
gdscript-godot-run-current-scene-debug
- C-c C-r e
gdscript-godot-edit-current-scene
- C-c C-r x
gdscript-godot-run-current-script
- C-c C-b a
gdscript-docs-browse-api
- C-c C-b o
gdscript-docs-browse-symbol-at-point
- C-c i
- Fixed loading the
gdscript-godot
module at initialization. - Fixed function calls in the mode map.
Emacs GDScript mode is now available on the MELPA package archive!
- Added commands to run files or open the project in Godot. Type
M-x gdscript-godot
to find and try them.
- Fixed incorrect match block indentation.
- Fixed error with code folding.
- Added syntax highlighting for more built-in keywords .
- Fixed error at startup on Emacs 26.3
- Added instructions to install with use-package.
- Updated install instructions for MELPA.
- Added documentation on using
gdscript-godot-*
commands.
- Addressed linting and checkdoc errors for a release on the MELPA package archive.
- Split some more of the code to make the code easier to read and to maintain.
- Fixed
function-definition-void
errors in some cases due to a missing file import. - Fixed package loading error in some configurations.
- Added syntax highlighting and completion for the following keywords:
in
,and
,or
,not
,true
,false
. - Fixed incorrect auto-indentation in
match
blocks.
This minor release fixes a bug with the GDScript keywords.
- Compile keywords for faster auto-completion and syntax highlighting.
- Fixed missing language keywords and constants lists.
This is the initial release of gdscript-mode, which adds support for the Godot engine's GDScript programming language in Emacs.
Features:
- Syntax highlighting.
- Code folding.
- Imenu.
- Indentation and auto-indentation: tab-based (default) and space-based.
- GDScript code formatting using gdformat.
- Automatic pairing of parentheses, brackets, etc.
- Comment wrapping when using fill-paragraph.
- Support for scenes (.tscn), resources (.tres) and GDScript (.gd) files.
- Basic code completion.