feat(core): use general.el for keybind definitions nearly everywhere

Primarily this replaces :bind with :general in all use-package calls.
This commit is contained in:
2022-03-14 20:58:06 +00:00
parent 3fc0d2d77d
commit a8618938bf
91 changed files with 665 additions and 632 deletions

View File

@@ -9,35 +9,43 @@
(require 'siren-lisp)
(require 'siren-string-inflection)
(defun siren-recompile-elc-on-save ()
"Recompile your elc when saving an elisp file."
(add-hook 'after-save-hook
(lambda ()
(when (and
(string-prefix-p siren-dir (file-truename buffer-file-name))
(file-exists-p (byte-compile-dest-file buffer-file-name)))
(emacs-lisp-byte-compile)))
nil t))
(use-package emacs-lisp-mode
:straight (:type built-in)
:mode "Cask\\'"
(defun siren-conditional-emacs-lisp-checker ()
"Don't check doc style in Emacs Lisp test files."
(let ((file-name (buffer-file-name)))
(when (and file-name (string-match-p ".*-tests?\\.el\\'" file-name))
(setq-local flycheck-checkers '(emacs-lisp)))))
:hook
(emacs-lisp-mode . siren-emacs-lisp-mode-setup)
(defun siren-emacs-lisp-mode-setup ()
"Sensible defaults for `emacs-lisp-mode'."
;; (run-hooks 'siren-lisp-coding-hook)
;; (eldoc-mode +1)
;; (siren-recompile-elc-on-save)
;; (rainbow-mode +1)
;; (setq mode-name "EL")
;; (siren-conditional-emacs-lisp-checker)
)
:general
(:keymaps 'emacs-lisp-mode-map
"C-c C-u" 'string-inflection-all-cycle)
(add-hook 'emacs-lisp-mode-hook #'siren-emacs-lisp-mode-setup)
(add-to-list 'auto-mode-alist '("Cask\\'" . emacs-lisp-mode))
(define-key emacs-lisp-mode-map (kbd "C-c C-u") 'string-inflection-all-cycle)
:preface
(defun siren-emacs-lisp-mode-setup ()
"Sensible defaults for `emacs-lisp-mode'."
;; (run-hooks 'siren-lisp-coding-hook)
;; (eldoc-mode +1)
;; (siren-recompile-elc-on-save)
;; (rainbow-mode +1)
;; (setq mode-name "EL")
;; (siren-conditional-emacs-lisp-checker)
)
(defun siren-recompile-elc-on-save ()
"Recompile your elc when saving an elisp file."
(add-hook 'after-save-hook
(lambda ()
(when (and
(string-prefix-p siren-dir (file-truename buffer-file-name))
(file-exists-p (byte-compile-dest-file buffer-file-name)))
(emacs-lisp-byte-compile)))
nil t))
(defun siren-conditional-emacs-lisp-checker ()
"Don't check doc style in Emacs Lisp test files."
(let ((file-name (buffer-file-name)))
(when (and file-name (string-match-p ".*-tests?\\.el\\'" file-name))
(setq-local flycheck-checkers '(emacs-lisp))))))
(provide 'siren-emacs-lisp)
;;; siren-emacs-lisp.el ends here

View File

@@ -10,8 +10,9 @@
(use-package flutter
:after dart-mode
:bind (:map dart-mode-map
("C-M-x" . #'flutter-run-or-hot-reload)))
:general
(:keymaps 'dart-mode-map
"C-M-x" 'flutter-run-or-hot-reload))
(provide 'siren-flutter)
;;; siren-flutter.el ends here

View File

@@ -19,9 +19,10 @@
:mode "\\.go\\'"
:interpreter "go"
:commands go-mode
:bind (:map go-mode-map
("RET" . newline-and-indent)
("C-h f" . godoc-at-point))
:general
(:keymaps 'go-mode-map
"RET" 'newline-and-indent
"C-h f" 'godoc-at-point)
:hook
(go-mode . siren-go-mode-setup)
@@ -118,15 +119,16 @@
:hook
(go-mode . siren-gotest-setup)
:bind (:map go-mode-map
("C-c , a" . go-test-current-project)
("C-c , v" . go-test-current-file)
("C-c , s" . go-test-current-test)
("C-c , c" . go-test-current-coverage)
("C-c , b" . go-test-current-benchmark)
("C-c , B" . go-test-current-project-benchmarks)
("C-c , r" . go-run)
("C-c , t" . ff-find-other-file))
:general
(:keymaps 'go-mode-map
"C-c , a" 'go-test-current-project
"C-c , v" 'go-test-current-file
"C-c , s" 'go-test-current-test
"C-c , c" 'go-test-current-coverage
"C-c , b" 'go-test-current-benchmark
"C-c , B" 'go-test-current-project-benchmarks
"C-c , r" 'go-run
"C-c , t" 'ff-find-other-file)
:custom
(go-test-verbose t)
@@ -156,9 +158,10 @@ For example, if the current buffer is `foo.go', the buffer for
(use-package dap-go
:straight dap-mode
:after (go-mode)
:bind (:map dap-mode-map
("C-c , d" . siren-dap-go-debug-current-test))
:after go-mode
:general
(:keymaps 'dap-mode-map
"C-c , d" 'siren-dap-go-debug-current-test)
:init
(defun siren-dap-go-debug-current-test ()
@@ -178,9 +181,10 @@ For example, if the current buffer is `foo.go', the buffer for
(use-package go-gen-test
:defer t
:after (go-mode)
:bind (:map go-mode-map
("C-c , g" . go-gen-test-dwim)
("C-c , G" . go-gen-test-exported)))
:general
(:keymaps 'go-mode-map
"C-c , g" 'go-gen-test-dwim
"C-c , G" 'go-gen-test-exported))
(use-package go-projectile
:defer t

View File

@@ -9,8 +9,9 @@
(require 'siren-folding)
(use-package haskell-mode
:bind (:map haskell-mode-map
("RET" . newline-and-indent))
:general
(:keymaps 'haskell-mode-map
"RET" 'newline-and-indent)
:hook
(haskell-mode . siren-haskell-mode-setup)

View File

@@ -15,9 +15,10 @@
"\\.js\\'"
"\\.pac\\'"
:bind (:map js-mode-map
("C-j" . newline-and-indent)
("C-c C-h" . siren-toggle-hiding))
:general
(:keymaps 'js-mode-map
"C-j" 'newline-and-indent
"C-c C-h" 'siren-toggle-hiding)
:hook
(js-mode . siren-js-mode-setup)

View File

@@ -13,9 +13,10 @@
(use-package json-mode
:mode "\\.json\\'"
:bind (:map json-mode-map
("C-j" . newline-and-indent)
("C-c C-h" . siren-folding-toggle))
:general
(:keymaps 'json-mode-map
"C-j" 'newline-and-indent
"C-c C-h" 'siren-folding-toggle)
:hook
(json-mode . siren-json-mode-setup)

View File

@@ -7,10 +7,11 @@
;;; Code:
(use-package jsonnet-mode
:bind (:map jsonnet-mode-map
("C-c C-c" . jsonnet-eval-buffer)
("C-c C-f" . jsonnet-reformat-buffer)
("C-c C-j" . jsonnet-jump))
:general
(:keymaps 'jsonnet-mode-map
"C-c C-c" 'jsonnet-eval-buffer
"C-c C-f" 'jsonnet-reformat-buffer
"C-c C-j" 'jsonnet-jump)
:hook
(jsonnet-mode . siren-jsonnet-mode-setup)

View File

@@ -14,9 +14,9 @@
:hook
(makefile-mode . siren-makefile-mode-setup)
:bind
(:map makefile-mode-map
("C-c C-m" . makefile-executor-execute-project-target))
:general
(:keymaps 'makefile-mode-map
"C-c C-m" 'makefile-executor-execute-project-target)
:init
(add-to-list 'siren-indent-sensitive-modes 'makefile-mode)

View File

@@ -22,13 +22,13 @@
"\\.mdown"
"\\.markdown"
:bind
(:map markdown-mode-map
("C-c p" . markdown-preview)
("M-p" . md-move-lines-up)
("M-n" . md-move-lines-down)
("M-P" . markdown-previous-link)
("M-N" . markdown-next-link))
:general
(:keymaps 'markdown-mode-map
"C-c p" 'markdown-preview
"M-p" 'md-move-lines-up
"M-n" 'md-move-lines-down
"M-P" 'markdown-previous-link
"M-N" 'markdown-next-link)
:hook
(markdown-mode . siren-markdown-mode-setup)

View File

@@ -38,14 +38,15 @@
"\\.thor\\'"
"\\.rb\\'"
:bind (:map ruby-mode-map
("C-j" . newline-and-indent)
("RET" . newline-and-indent)
("M-'" . ruby-toggle-string-quotes)
("C-c C-l" . goto-line)
("C-M-f" . sp-ruby-forward-sexp)
("C-M-b" . sp-ruby-backward-sexp)
("C-c C-u" . string-inflection-ruby-style-cycle))
:general
(:keymaps 'ruby-mode-map
"C-j" 'newline-and-indent
"RET" 'newline-and-indent
"M-'" 'ruby-toggle-string-quotes
"C-c C-l" 'goto-line
"C-M-f" 'sp-ruby-forward-sexp
"C-M-b" 'sp-ruby-backward-sexp
"C-c C-u" 'string-inflection-ruby-style-cycle)
:hook
(ruby-mode . siren-ruby-mode-setup)
@@ -152,20 +153,22 @@
(use-package rubocop
:defer t
:after ruby-mode
:bind (:map ruby-mode-map
("C-c . f" . rubocop-check-current-file)
("C-c . p" . rubocop-check-project)
("C-c . d" . rubocop-check-directory)
("C-c . F" . rubocop-autocorrect-current-file)
("C-c . P" . rubocop-autocorrect-project)
("C-c . D" . rubocop-autocorrect-directory)))
:general
(:keymaps 'ruby-mode-map
"C-c . f" 'rubocop-check-current-file
"C-c . p" 'rubocop-check-project
"C-c . d" 'rubocop-check-directory
"C-c . F" 'rubocop-autocorrect-current-file
"C-c . P" 'rubocop-autocorrect-project
"C-c . D" 'rubocop-autocorrect-directory))
(use-package rubocopfmt
:hook
(ruby-mode . rubocopfmt-mode)
:bind (:map ruby-mode-map
("C-c C-f" . rubocopfmt))
:general
(:keymaps 'ruby-mode-map
"C-c C-f" 'rubocopfmt)
:custom
(rubocopfmt-include-unsafe-cops t)
@@ -194,8 +197,9 @@
(use-package ruby-tools
:defer t
:diminish ruby-tools-mode
:bind (:map ruby-tools-mode-map
("C-'" . toggle-quotes))
:general
(:keymaps 'ruby-tools-mode-map
"C-'" 'toggle-quotes)
:hook
(ruby-mode . ruby-tools-mode)
@@ -209,8 +213,9 @@
(use-package yari
:defer t
:init
(define-key 'help-command (kbd "R") 'yari))
:general
(:keymaps 'help-command
"R" 'yari))
(provide 'siren-ruby)
;;; siren-ruby.el ends here

View File

@@ -13,8 +13,9 @@
:mode "\\.rs\\'"
:interpreter "rust"
:commands rust-mode
:bind (:map rust-mode-map
("RET" . newline-and-indent))
:general
(:keymaps 'rust-mode-map
"RET" 'newline-and-indent)
:hook
(rust-mode . siren-rust-mode-setup)

View File

@@ -19,9 +19,9 @@
("\\.tmuxsh\\'" . sh-mode)
("\\.tmuxtheme\\'" . sh-mode)
:bind
(:map sh-mode-map
("RET" . newline-and-indent))
:general
(:keymaps 'sh-mode-map
"RET" 'newline-and-indent)
:hook
(sh-mode . siren-sh-mode-setup)

View File

@@ -18,9 +18,10 @@
:hook
(typescript-mode . siren-typescript-mode-setup)
:bind (:map typescript-mode-map
("C-j" . newline-and-indent)
("C-c C-h" . siren-folding-toggle))
:general
(:keymaps 'typescript-mode-map
"C-j" 'newline-and-indent
"C-c C-h" 'siren-folding-toggle)
:init
(defun siren-typescript-mode-setup ()

View File

@@ -15,9 +15,10 @@
"\\.html.erb\\'"
"\\.tpl\\'"
:bind (:map web-mode-map
("C-j" . newline-and-indent)
("C-c C-h" . siren-folding-toggle))
:general
(:keymaps 'web-mode-map
"C-j" 'newline-and-indent
"C-c C-h" 'siren-folding-toggle)
:hook
(web-mode . siren-web-mode-setup)

View File

@@ -11,8 +11,9 @@
(use-package yaml-mode
:mode "\\.yml\\'" "\\.yaml\\'"
:bind (:map yaml-mode-map
("RET" . newline-and-indent))
:general
(:keyamps 'yaml-mode-map
"RET" 'newline-and-indent)
:hook
(yaml-mode . siren-yaml-mode-setup)