# Changelog
This document lists new features, improvements, changes, and bug fixes in each release of the package.
## GDScript mode 1.5.0
- 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.
## GDScript mode 1.4.1
Thanks to @clangdo for the contribution!
- Fixed indent functions preventing double hanging indent in parentheses or after a `\`.
## GDScript mode 1.4.0
Big thanks to @VlachJosef and @rileyrg for their work on this release.
### New features
- Debugger support with breakpoints, code stepping, stack frames, remote scene tree, and more. See the [README](https://github.com/godotengine/emacs-gdscript-mode/blob/master/README.md) for more information.
### Bug fixes
- Fix scene and script selection not aborting when pressing C-g.
## GDScript mode 1.3.0
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.
### Features
- Support for running the project and scenes with [hydra](https://github.com/abo-abo/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` and `gdscript-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, using `compilation-*` 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.
### Improvements
- 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 use `projectile` by default if available, otherwise `ivy` or `ido`.
- 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.
### Changes
- Removed guessing indentation size, which could guess indent sizes wrong.
- Removed the customizable variables `gdscript-indent-guess-indent-offset` and `gdscript-indent-guess-indent-offset-verbose`.
### Bug fixes
- 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 of `gdscript-mode` buffers.
- Removed call to nonexisting function `f-executable-p`.
## GDScript mode 1.2.0
### Features
- 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` if `projectile` is available, otherwise with `find-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` and `remotesync` keywords.
### Changes
- 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`
### Bug fixes
- Fixed loading the `gdscript-godot` module at initialization.
- Fixed function calls in the mode map.
## GDScript mode 1.1.0
Emacs GDScript mode is now available on the [MELPA](https://melpa.org/) package archive!
### Features
- Added commands to run files or open the project in Godot. Type `M-x gdscript-godot` to find and try them.
### Bug fixes
- 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
### Documentation
- Added instructions to install with use-package.
- Updated install instructions for MELPA.
- Added documentation on using `gdscript-godot-*` commands.
## GDScript mode 1.0.2
### Changes
- Addressed linting and checkdoc errors for a release on the [MELPA](https://melpa.org/) package archive.
- Split some more of the code to make the code easier to read and to maintain.
### Bug fixes
- 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.
## GDScript mode 1.0.1
This minor release fixes a bug with the GDScript keywords.
### Improvements
- Compile keywords for faster auto-completion and syntax highlighting.
### Bug fixes
- Fixed missing language keywords and constants lists.
## GDScript mode 1.0.0
This is the initial release of gdscript-mode, which adds support for the [Godot engine](https://godotengine.org/)'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](https://github.com/scony/godot-gdscript-toolkit/).
- 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.