Files
doomemacs/modules/lang/gdscript/config.el
Henrik Lissner fbdde6b5f4 module!: add :editor whitespace
BREAKING CHANGE: Moves ws-butler, dtrt-indent, and whitespace defaults
out of Doom's core and into a new module. ws-butler is gated behind
+trim and dtrt-indent behind +guess. Users who depend on/like these
packages will need to enable the new module and their respective
flags (which is the default going forward).

This change is motivated by an ongoing effort to slim down Doom's
core (by (re)moving non-essentials from it).

This also addresses an issue where dtrt-indent would vastly increase
load times for some major-modes (e.g. elixir-mode & elm-mode, see #7537)
by restricting it to non-project files and non-read-only buffers AND
excludign those two major modes from indent guessing.

Fix: #8516
Fix: #7537
2025-09-24 02:23:30 -04:00

59 lines
2.5 KiB
EmacsLisp

;;; lang/gdscript/config.el -*- lexical-binding: t; -*-
(after! project
(add-to-list 'project-vc-extra-root-markers "project.godot"))
;; DEPRECATED: Remove when projectile is replaced with project.el
(after! projectile
(add-to-list 'projectile-project-root-files "project.godot"))
;;
;;; Packages
(use-package! gdscript-mode
:defer t
:config
(set-lookup-handlers! 'gdscript-mode
:documentation '(gdscript-docs-browse-symbol-at-point :async t))
(set-formatter! 'gdformat '("gdformat" "-") :modes '(gdscript-mode))
(set-popup-rule! "^\\*godot " :ttl 0 :quit t)
(defadvice! +gdscript--dont-focus-output-buffer-a (fn &rest args)
"Don't move cursor into gdscript compilation window."
:around #'gdscript-comint--run
(save-selected-window (apply fn args)))
;; eww is clumsy and slow. Best that `gdscript-docs-browse-symbol-at-point'
;; simply use the browser.
;; REVIEW: Maybe it's permissible if `gdscript-docs-local-path' is set?
(setq gdscript-docs-use-eww nil)
;; Some systems append the version number to the executable, so ensure that
;; the path is correct. Note that I avoid setting it to an absolute path to
;; preserve TRAMP support.
(setq gdscript-godot-executable
(cond ((executable-find gdscript-godot-executable) gdscript-godot-executable)
((executable-find "godot") "godot")
((executable-find "godot4") "godot4")))
(when (modulep! +lsp)
(add-hook 'gdscript-mode-local-vars-hook #'lsp! 'append))
(map! :localleader
:map gdscript-mode-map
(:prefix ("r" . "run")
:desc "Open project in Godot" "e" #'gdscript-godot-open-project-in-editor
:desc "Run project" "p" #'gdscript-godot-run-project
:desc "Run debug" "d" #'gdscript-godot-run-project-debug
:desc "Run current scene" "s" #'gdscript-godot-run-current-scene)
(:prefix ("d" . "debug")
:desc "Toggle breakpoint" "d" #'gdscript-debug-toggle-breakpoint
:desc "Display breakpoint buffer" "b" #'gdscript-debug-display-breakpoint-buffer
:desc "Continue execution" "c" #'gdscript-debug-continue
:desc "Next" "n" #'gdscript-debug-next
:desc "Step" "s" #'gdscript-debug-step)
(:prefix ("h" . "help")
:desc "Browse online API" "b" #'gdscript-docs-browse-api
:desc "Browse API at point" "f" #'gdscript-docs-browse-symbol-at-point)))