mirror of
https://github.com/godotengine/emacs-gdscript-mode.git
synced 2025-12-31 21:48:34 +03:00
147d1bd44478f43036362c77b7f3141f227cce1d
This adds support for imenu and correct indentation size
GDScript mode for Emacs
This package adds support for the GDScript programming language from the Godot game engine in Emacs. It gives syntax highlighting and indentations.
This is currently a work in progress, and my first time creating an Emacs package. Feedback, tips, and contributions are more than welcome!
How to install
As it is in development, the package is not available yet on Emacs package managers.
To install it:
- Clone the repository to your computer.
- In your init.el file, add a call to load and require the package.
(add-to-list 'load-path "/path/to/gdscript-mode.el")
(require 'gdscript-mode)
Installing in Spacemacs
- Clone the repository to the
private/localsubdirectory of your.emacs.ddirectory, where you installed spacemacs. - Add the package to the
dotspacemacs-additional-packagesand mark is as local. That's Spacemacs' feature to make it easy to load locally installed packages.
dotspacemacs-additional-packages '((gdscript-mode :location local))
- In your user-config function, require the package.
(defun dotspacemacs/user-config ()
(require 'gdscript-mode))
Available features
- Syntax highlighting for all built-in functions and classes in Godot 3.2
- Indentation
- Imenu to jump to functions quickly
Planned features
- Fixing the support for indentations.
- Functions to open the project in Godot.
For auto-competition, we should rely on the GDScript language server coming in Godot 3.2. Another developer is working on it.
Customization
Set the following variables to customize gdscript-mode:
(setq gdscript-tabs-mode t) ;; If true, use tabs for indents. Default: t
(setq gdscript-tab-width 4) ;; Controls the width of tab-based indents
Credits
This is based on:
- The gdscript-mode package that is not in active development anymore.
- Python support from Emacs 27. GDScript took inspiration from Python so a lot of the Python package works well for it.
Languages
Emacs Lisp
99.9%
Makefile
0.1%