58 lines
2.5 KiB
EmacsLisp
58 lines
2.5 KiB
EmacsLisp
;;; lang/gdscript/config.el -*- lexical-binding: t; -*-
|
|
|
|
;; 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))
|
|
|
|
(after! dtrt-indent
|
|
(add-to-list 'dtrt-indent-hook-mapping-list '(gdscript-mode default gdscript-indent-offset)))
|
|
|
|
(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)))
|