diff --git a/.dir-locals.el b/.dir-locals.el index 33d9e59..5481334 100644 --- a/.dir-locals.el +++ b/.dir-locals.el @@ -2,9 +2,6 @@ ((clojure-mode . ((cider-clojure-cli-parameters . "-M:common:dev") - ;; Otherwise cider-jack-in appends its own -Sdeps '{...}' blob with - ;; nrepl/cider-nrepl regardless of cli-parameters above -- deps.edn's - ;; :dev alias already provides those, so skip the duplicate injection. (cider-inject-dependencies-at-jack-in . nil) (eval . (progn @@ -13,22 +10,28 @@ "watch.el" (locate-dominating-file default-directory ".dir-locals.el")))) - (defun siam-farmer-run-main () + (defun clj-game-run-main () "Send (future (-main)) to the REPL." (interactive) (cider-interactive-eval "(future (-main))")) - (unless (boundp 'siam-farmer-mode-map) - (defvar siam-farmer-mode-map + (defun clj-game-clear-error () + "Resume the game loop after an error froze it." + (interactive) + (cider-interactive-eval "(engine/clear-error!)")) + + (unless (boundp 'clj-game-mode-map) + (defvar clj-game-mode-map (let ((m (make-sparse-keymap))) (define-key m (kbd "C-c C-w") #'clj-watch) - (define-key m (kbd "C-c C-M-r") #'siam-farmer-run-main) + (define-key m (kbd "C-c C-M-r") #'clj-game-run-main) + (define-key m (kbd "C-c C-M-e") #'clj-game-clear-error) m))) - (unless (fboundp 'siam-farmer-mode) - (define-minor-mode siam-farmer-mode - "Project keybindings for siam-farmer." - :lighter " SF" - :keymap siam-farmer-mode-map)) + (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)) - (siam-farmer-mode 1)))))) + (clj-game-mode 1)))))) diff --git a/watch.el b/watch.el index 7fb4124..523fa24 100644 --- a/watch.el +++ b/watch.el @@ -8,7 +8,7 @@ ;; ;; Usage: M-x clj-watch / M-x clj-watch-stop ;; -;; Load with: (load "/home/joe/Development/siam-farmer/watch.el") +;; Load with: (load "/path/to/project/watch.el") ;;; Code: