48 lines
1.9 KiB
EmacsLisp
48 lines
1.9 KiB
EmacsLisp
;;; Directory Local Variables -*- no-byte-compile: t -*-
|
|
|
|
((clojure-mode
|
|
. ((cider-clojure-cli-parameters . "-M:common:dev")
|
|
(cider-inject-dependencies-at-jack-in . nil)))
|
|
(nil
|
|
. ((eval
|
|
. (progn
|
|
(let ((root (locate-dominating-file default-directory ".dir-locals.el")))
|
|
(unless (fboundp 'clj-watch)
|
|
(load (expand-file-name "watch.el" root)))
|
|
(unless (fboundp 'clj-game-throw-last-error)
|
|
(load (expand-file-name "cider-error.el" root))))
|
|
|
|
(defun clj-game-run-main ()
|
|
"Send (future (-main)) to the REPL."
|
|
(interactive)
|
|
(cider-interactive-eval "(future (-main))"))
|
|
|
|
(defun clj-game-clear-error ()
|
|
"Resume the game loop after an error froze it."
|
|
(interactive)
|
|
(cider-interactive-eval "(engine/clear-error!)"))
|
|
|
|
(defun clj-game-reload-config ()
|
|
"Re-read config-path and re-init the running game's state from it."
|
|
(interactive)
|
|
(cider-interactive-eval "(engine/reload-config!)"))
|
|
|
|
(unless (boundp 'clj-game-mode-map)
|
|
(defvar clj-game-mode-map
|
|
(let ((m (make-sparse-keymap)))
|
|
(define-key m (kbd "C-c g w") #'clj-watch)
|
|
(define-key m (kbd "C-c g r") #'clj-game-run-main)
|
|
(define-key m (kbd "C-c g e") #'clj-game-clear-error)
|
|
(define-key m (kbd "C-c g c") #'clj-game-reload-config)
|
|
;; (define-key m (kbd "C-c g s") #'clj-game-reload-config)
|
|
(define-key m (kbd "C-c g x") #'clj-game-throw-last-error)
|
|
m)))
|
|
|
|
(unless (fboundp 'clj-game-mode)
|
|
(define-minor-mode clj-game-mode
|
|
"Project keybindings for a clojure/raylib game."
|
|
:lighter " Game"
|
|
:keymap clj-game-mode-map))
|
|
|
|
(clj-game-mode 1)))))))
|