config

Personal configuration.
git clone git://code.dwrz.net/config
Log | Files | Refs

commit bdbdebd39a4a185bb990e799c23936c0d1f64976
parent 2941a7b712e9bc6c5a26730858c040b3a69790a3
Author: dwrz <dwrz@dwrz.net>
Date:   Tue, 12 Dec 2023 02:39:04 +0000

Update Emacs init

Diffstat:
Memacs/init.el | 104+++++++++++++++++++++++++++++--------------------------------------------------
1 file changed, 38 insertions(+), 66 deletions(-)

diff --git a/emacs/init.el b/emacs/init.el @@ -48,6 +48,11 @@ (when filename (kill-new filename) (message "Copied buffer name '%s' to the clipboard." filename))))) +(defun dwrz-highlight-keywords () + "Highlight keywords." + (font-lock-add-keywords + nil '(("\\<\\(FIX\\|TODO\\|NB\\)" 1 font-lock-warning-face t)))) + (defun dwrz-transpose-line-up () "Move the current line up." (interactive) @@ -147,8 +152,6 @@ (add-to-list 'completion-at-point-functions #'cape-history) (add-to-list 'completion-at-point-functions #'cape-sgml) (add-to-list 'completion-at-point-functions #'cape-rfc1345) - (add-to-list 'completion-at-point-functions #'cape-elisp-block) - (add-to-list 'completion-at-point-functions #'cape-elisp-symbol) :ensure t) (use-package cc-vars :config (setq-default c-basic-offset 8) :ensure nil) @@ -167,51 +170,15 @@ ("C-x b" . consult-buffer) ("C-x p b" . consult-project-buffer) ("C-x r b" . consult-bookmark) - ("C-h i" . consult-info)) - - ;; :bind (;; C-c bindings in `mode-specific-map' - ;; ("C-c M-x" . consult-mode-command) - ;; ("C-c h" . consult-history) - ;; ("C-c k" . consult-kmacro) - ;; ("C-c m" . consult-man) - ;; ("C-c i" . consult-info) - ;; ([remap Info-search] . consult-info) - ;; ;; C-x bindings in `ctl-x-map' - ;; ("C-x M-:" . consult-complex-command) ;; orig. repeat-complex-command - ;; ;; Custom M-# bindings for fast register access - ;; ("M-#" . consult-register-load) - ;; ("M-'" . consult-register-store) ;; orig. abbrev-prefix-mark (unrelated) - ;; ("C-M-#" . consult-register) - ;; ("M-y" . consult-yank-pop) ;; orig. yank-pop - ;; ;; M-g bindings in `goto-map' - ;; ("M-g e" . consult-compile-error) - ;; ("M-g f" . consult-flymake) ;; Alternative: consult-flycheck - ;; ("M-g g" . consult-goto-line) ;; orig. goto-line - ;; ("M-g M-g" . consult-goto-line) ;; orig. goto-line - ;; ("M-g o" . consult-outline) ;; Alternative: consult-org-heading - ;; ("M-g m" . consult-mark) - ;; ("M-g k" . consult-global-mark) - ;; ("M-g i" . consult-imenu) - ;; ("M-g I" . consult-imenu-multi) - ;; ;; M-s bindings in `search-map' - ;; ("M-s d" . consult-find) ;; Alternative: consult-fd - ;; ("M-s g" . consult-grep) - ;; ("M-s G" . consult-git-grep) - ;; ("M-s r" . consult-ripgrep) - ;; ("M-s L" . consult-line-multi) - ;; ("M-s k" . consult-keep-lines) - ;; ("M-s u" . consult-focus-lines) - ;; ;; Isearch integration - ;; ("M-s e" . consult-isearch-history) - ;; :map isearch-mode-map - ;; ("M-e" . consult-isearch-history) ;; orig. isearch-edit-string - ;; ("M-s e" . consult-isearch-history) ;; orig. isearch-edit-string - ;; ("M-s l" . consult-line) ;; needed by consult-line to detect isearch - ;; ("M-s L" . consult-line-multi) ;; needed by consult-line to detect isearch - ;; ;; Minibuffer history - ;; :map minibuffer-local-map - ;; ("M-s" . consult-history) ;; orig. next-matching-history-element - ;; ("M-r" . consult-history)) ;; orig. previous-matching-history-element + ("C-h i" . consult-info) + ("M-y" . consult-yank-pop) + ("M-g i" . consult-imenu) + ("M-g I" . consult-imenu-multi) + ("M-g g" . consult-goto-line) + ("M-g M-g" . consult-goto-line) + :map minibuffer-local-map + ("M-s" . consult-history) + ("M-r" . consult-history)) :hook (completion-list-mode . consult-preview-at-point-mode) :init (setq register-preview-delay 0 @@ -220,10 +187,6 @@ (setq xref-show-xrefs-function #'consult-xref xref-show-definitions-function #'consult-xref) :config - ;; Optionally configure preview. The default value - ;; is 'any, such that any key triggers the preview. - ;; For some commands and buffer sources it is useful to configure the - ;; :preview-key on a per-command basis using the `consult-customize' macro. (consult-customize consult-theme :preview-key '(:debounce 0.2 any) consult-ripgrep consult-git-grep consult-grep @@ -231,14 +194,9 @@ consult--source-bookmark consult--source-file-register consult--source-recent-file consult--source-project-recent-file :preview-key '(:debounce 0.4 any)) - - ;; Optionally configure the narrowing key. - ;; Both < and C-+ work reasonably well. - (setq consult-narrow-key "<") ;; "C-+" - - ;; Optionally make narrowing help available in the minibuffer. - ;; You may want to use `embark-prefix-help-command' or which-key instead. - ;; (define-key consult-narrow-map (vconcat consult-narrow-key "?") #'consult-narrow-help) + (setq consult-narrow-key "<") + (define-key consult-narrow-map (vconcat consult-narrow-key "?") + #'consult-narrow-help) :ensure t) (use-package consult-lsp :ensure t) @@ -254,7 +212,7 @@ (corfu-cycle t) (corfu-scroll-margin 0) :ensure t - :hook (corfu-mode-hook . corfu-popupinfo-mode) + :hook (corfu-mode . corfu-popupinfo-mode) :init (global-corfu-mode) (setq tab-always-indent 'complete)) @@ -391,9 +349,9 @@ (use-package js :config (setq js-indent-level 2) - (setq-local indent-tabs-mode nil) :defines js-indent-level - :hook (js-mode . lsp) + :hook ((js-mode . lsp) + (js-mode . (lambda () (setq indent-tabs-mode nil)))) :ensure nil) (use-package ledger-mode :defer t :ensure t) @@ -417,6 +375,7 @@ message-kill-buffer-on-exit t message-sendmail-envelope-from 'header message-sendmail-f-is-evil nil) + :hook (message-mode . (lambda () (corfu-mode -1))) :defer t :ensure nil) @@ -657,12 +616,10 @@ :ensure t) (use-package prog-mode - :config (font-lock-add-keywords 'emacs-lisp-mode - '(("\\<\\(FIX\\|TODO\\|NB\\)" 1 - font-lock-warning-face t))) :hook ((prog-mode . flycheck-mode) (prog-mode . flyspell-prog-mode) - (prog-mode . visual-line-mode)) + (prog-mode . visual-line-mode) + (prog-mode . dwrz-hightlight-keywords)) :ensure nil) (use-package rainbow-mode @@ -793,6 +750,20 @@ ("r" cape-rfc1345 "RFC 1345" :column "cape") ("w" cape-dict "dict" :column "cape")) +(defhydra hydra-consult (:color blue) + ("q" nil "quit" :column "quit") + ("a" (lambda () (interactive) (consult-notmuch-address t nil)) + "notmuch" :column "consult") + ("c" consult-mark "mark" :column "consult") + ("f" consult-find "find" :column "consult") + ("g" consult-grep "grep" :column "consult") + ("k" consult-global-mark "mark" :column "consult") + ("m" consult-line-multi "line-multi" :column "consult") + ("n" consult-notmuch "notmuch" :column "consult") + ("o" consult-org-heading "org" :column "consult") + ("r" consult-ripgrep "ripgrep" :column "consult") + ("v" consult-git-grep "git-grep" :column "consult")) + (defhydra hydra-highlight (:color blue) ("q" nil "quit" :column "highlight") ("s" highlight-symbol-at-point "symbol" :color blue :column "do") @@ -845,6 +816,7 @@ ("o" hydra-org/body "org" :column "hydras") ("p" hydra-point/body "point" :column "hydras") ("r" hydra-region/body "region" :column "hydras") + ("s" hydra-consult/body "consult" :column "hydras") ("w" hydra-windows/body "windows" :column "hydras")) ;; KEYBINDINGS