This commit is contained in:
Andrea Ciceri 2025-05-21 21:03:54 +02:00
parent 9b907264c2
commit 7e92d09299
No known key found for this signature in database

View file

@ -163,8 +163,8 @@
:after marginalia :after marginalia
:config (nerd-icons-completion-mode +1) :config (nerd-icons-completion-mode +1)
:hook ( :hook (
(marginalia-mode . nerd-icons-completion-marginalia-setup) (marginalia-mode . nerd-icons-completion-marginalia-setup)
(ibuffer-mode . nerd-icons-completion-marginalia-setup))) (ibuffer-mode . nerd-icons-completion-marginalia-setup)))
(use-package nerd-icons-ibuffer (use-package nerd-icons-ibuffer
:hook (ibuffer-mode . nerd-icons-ibuffer-mode)) :hook (ibuffer-mode . nerd-icons-ibuffer-mode))
@ -208,7 +208,7 @@
(treemacs-display-current-project-exclusively t) (treemacs-display-current-project-exclusively t)
(treemacs-git-mode 'deferred) (treemacs-git-mode 'deferred)
:bind (("C-c w t" . treemacs-select-window) :bind (("C-c w t" . treemacs-select-window)
("C-c o T" . treemacs)) ("C-c o T" . treemacs))
) )
(use-package meow (use-package meow
@ -219,8 +219,8 @@
(require 'meow-tree-sitter) (require 'meow-tree-sitter)
(meow-tree-sitter-register-defaults) (meow-tree-sitter-register-defaults)
(add-hook 'after-make-frame-functions (defun ccr/meow--prepare-face (_) (add-hook 'after-make-frame-functions (defun ccr/meow--prepare-face (_)
(meow--prepare-face) (meow--prepare-face)
(remove-hook 'after-make-frame-functions 'ccr/meow--prepare-face))) (remove-hook 'after-make-frame-functions 'ccr/meow--prepare-face)))
(add-to-list 'meow-mode-state-list '(eshell-mode . insert)) (add-to-list 'meow-mode-state-list '(eshell-mode . insert))
(add-to-list 'meow-mode-state-list '(eat-mode . insert)) (add-to-list 'meow-mode-state-list '(eat-mode . insert))
(add-to-list 'meow-mode-state-list '(notmuch-hello-mode . insert)) (add-to-list 'meow-mode-state-list '(notmuch-hello-mode . insert))
@ -331,44 +331,44 @@
"Interactively vertically resize the window" "Interactively vertically resize the window"
(interactive "cHit >/< to enlarge/shrink") (interactive "cHit >/< to enlarge/shrink")
(cond ((eq key (string-to-char ">")) (cond ((eq key (string-to-char ">"))
(enlarge-window-horizontally ccr/v-resize-amount) (enlarge-window-horizontally ccr/v-resize-amount)
(call-interactively 'ccr/v-resize)) (call-interactively 'ccr/v-resize))
((eq key (string-to-char "<")) ((eq key (string-to-char "<"))
(enlarge-window-horizontally (- ccr/v-resize-amount)) (enlarge-window-horizontally (- ccr/v-resize-amount))
(call-interactively 'ccr/v-resize)) (call-interactively 'ccr/v-resize))
(t (push key unread-command-events)))) (t (push key unread-command-events))))
(defun ccr/h-resize (key) (defun ccr/h-resize (key)
"Interactively horizontally resize the window" "Interactively horizontally resize the window"
(interactive "cHit >/< to enlarge/shrink") (interactive "cHit >/< to enlarge/shrink")
(cond ((eq key (string-to-char ">")) (cond ((eq key (string-to-char ">"))
(enlarge-window ccr/h-resize-amount) (enlarge-window ccr/h-resize-amount)
(call-interactively 'ccr/h-resize)) (call-interactively 'ccr/h-resize))
((eq key (string-to-char "<")) ((eq key (string-to-char "<"))
(enlarge-window (- ccr/h-resize-amount)) (enlarge-window (- ccr/h-resize-amount))
(call-interactively 'ccr/h-resize)) (call-interactively 'ccr/h-resize))
(t (push key unread-command-events)))) (t (push key unread-command-events))))
:bind (("C-c w k" . windmove-up) :bind (("C-c w k" . windmove-up)
("C-c w l" . windmove-right) ("C-c w l" . windmove-right)
("C-c w j" . windmove-down) ("C-c w j" . windmove-down)
("C-c w h" . windmove-left) ("C-c w h" . windmove-left)
("M-k" . windmove-up) ("M-k" . windmove-up)
("M-l" . windmove-right) ("M-l" . windmove-right)
("M-j" . windmove-down) ("M-j" . windmove-down)
("M-h" . windmove-left) ("M-h" . windmove-left)
("C-c w <up>" . windmove-up) ("C-c w <up>" . windmove-up)
("C-c w <right>" . windmove-right) ("C-c w <right>" . windmove-right)
("C-c w <down>" . windmove-down) ("C-c w <down>" . windmove-down)
("C-c w <left>" . windmove-left) ("C-c w <left>" . windmove-left)
("C-c w q" . delete-window) ("C-c w q" . delete-window)
("C-c w K" . windmove-delete-up) ("C-c w K" . windmove-delete-up)
("C-c w L" . windmove-delete-right) ("C-c w L" . windmove-delete-right)
("C-c w J" . windmove-delete-down) ("C-c w J" . windmove-delete-down)
("C-c w H" . windmove-delete-left) ("C-c w H" . windmove-delete-left)
("C-c w x" . kill-buffer-and-window) ("C-c w x" . kill-buffer-and-window)
("C-c w v" . split-window-right) ("C-c w v" . split-window-right)
("C-c w s" . split-window-below) ("C-c w s" . split-window-below)
("C-c w V" . ccr/v-resize) ("C-c w V" . ccr/v-resize)
("C-c w S" . ccr/h-resize))) ("C-c w S" . ccr/h-resize)))
(use-package vertico (use-package vertico
:custom :custom
@ -379,10 +379,10 @@
(vertico-cycle t) (vertico-cycle t)
(vertico-mode t) (vertico-mode t)
:bind (:map vertico-map :bind (:map vertico-map
(("DEL" . vertico-directory-delete-char) (("DEL" . vertico-directory-delete-char)
("C-DEL" . vertico-directory-delete-word) ("C-DEL" . vertico-directory-delete-word)
("M-q" . vertico-quick-insert) ("M-q" . vertico-quick-insert)
("C-q" . vertico-quick-exit)))) ("C-q" . vertico-quick-exit))))
;; (use-package vertico-posframe ;; (use-package vertico-posframe
;; :after vertico ;; :after vertico
@ -417,7 +417,7 @@
("C-c f f" . consult-find) ("C-c f f" . consult-find)
("C-c F" . consult-ripgrep) ("C-c F" . consult-ripgrep)
("C-c f" . consult-find) ("C-c f" . consult-find)
("C-c l" . consult-line) ("C-c l" . consult-line)
("C-c L" . consult-focus-lines) ("C-c L" . consult-focus-lines)
("C-c m" . consult-mark) ("C-c m" . consult-mark)
("C-c o o" . consult-outline) ("C-c o o" . consult-outline)
@ -445,9 +445,9 @@
(tab-always-indent 'complete) (tab-always-indent 'complete)
(kind-icon-default-face 'corfu-default) (kind-icon-default-face 'corfu-default)
:bind (:map corfu-map :bind (:map corfu-map
(("M-d" . corfu-doc-toggle) (("M-d" . corfu-doc-toggle)
("M-l" . corfu-show-location) ("M-l" . corfu-show-location)
("SPC" . corfu-insert-separator))) ("SPC" . corfu-insert-separator)))
:init :init
(global-corfu-mode)) (global-corfu-mode))
@ -458,7 +458,7 @@
(use-package prog-mode (use-package prog-mode
:hook ((prog-mode . hl-line-mode) :hook ((prog-mode . hl-line-mode)
(prog-mode . display-line-numbers-mode))) (prog-mode . display-line-numbers-mode)))
(use-package which-key :delight :config (use-package which-key :delight :config
(which-key-mode) (which-key-mode)
@ -500,28 +500,28 @@
(use-package nix-ts-mode (use-package nix-ts-mode
:hook ( :hook (
(nix-ts-mode . (lambda () (nix-ts-mode . (lambda ()
(require 'eglot) (require 'eglot)
(add-to-list 'eglot-server-programs (add-to-list 'eglot-server-programs
'(nix-ts-mode . ("nixd"))) '(nix-ts-mode . ("nixd")))
(eglot-ensure))) (eglot-ensure)))
(nix-ts-mode . electric-pair-mode) (nix-ts-mode . electric-pair-mode)
(nix-ts-mode . (lambda () (setq-local indent-bars-spacing-override 2) (indent-bars-mode))) (nix-ts-mode . (lambda () (setq-local indent-bars-spacing-override 2) (indent-bars-mode)))
(nix-ts-mode . (lambda () (nix-ts-mode . (lambda ()
(setq-local (setq-local
treesit-font-lock-settings treesit-font-lock-settings
(append treesit-font-lock-settings (append treesit-font-lock-settings
(treesit-font-lock-rules (treesit-font-lock-rules
:language 'nix :language 'nix
:feature 'function :feature 'function
:override t :override t
`((formal) @font-lock-type-face) `((formal) @font-lock-type-face)
:language 'nix :language 'nix
:feature 'function :feature 'function
`((attrpath) @font-lock-function-name-face) `((attrpath) @font-lock-function-name-face)
))))) )))))
) )
:mode "\\.nix\\'" :mode "\\.nix\\'"
) )
@ -533,33 +533,33 @@
(use-package python-ts-mode (use-package python-ts-mode
:hook ((python-ts-mode . (lambda () :hook ((python-ts-mode . (lambda ()
(require 'eglot) (require 'eglot)
(add-to-list 'eglot-server-programs (add-to-list 'eglot-server-programs
'(python-ts-mode . ("jedi-language-server"))) '(python-ts-mode . ("jedi-language-server")))
(eglot-ensure)))) (eglot-ensure))))
:mode "\\.py\\'") :mode "\\.py\\'")
(use-package solidity-mode (use-package solidity-mode
:hook ((solidity-mode . (lambda () :hook ((solidity-mode . (lambda ()
(require 'eglot) (require 'eglot)
(add-to-list 'eglot-server-programs (add-to-list 'eglot-server-programs
'(solidity-mode . ("nomicfoundation-solidity-language-server" "--stdio"))) '(solidity-mode . ("nomicfoundation-solidity-language-server" "--stdio")))
(eglot-ensure)))) (eglot-ensure))))
:mode "\\.sol\\'") :mode "\\.sol\\'")
(use-package typescript-ts-mode (use-package typescript-ts-mode
:hook ((typescript-ts-mode . (lambda () :hook ((typescript-ts-mode . (lambda ()
(require 'eglot) (require 'eglot)
(eglot-ensure)))) (eglot-ensure))))
:mode "\\.ts\\'") :mode "\\.ts\\'")
(use-package rust-mode (use-package rust-mode
:init :init
(setq rust-mode-treesitter-derive t) (setq rust-mode-treesitter-derive t)
:hook ((rust-mode . (lambda () :hook ((rust-mode . (lambda ()
(require 'eglot) (require 'eglot)
(eglot-ensure))))) (eglot-ensure)))))
(use-package haskell-ts-mode (use-package haskell-ts-mode
:hook ((haskell--ts-mode . eglot-ensure)) :hook ((haskell--ts-mode . eglot-ensure))
@ -581,11 +581,11 @@
:after eglot :after eglot
:config :config
(add-to-list 'eglot-server-programs (add-to-list 'eglot-server-programs
'(terraform-mode . ("terraform-lsp"))) '(terraform-mode . ("terraform-lsp")))
:hook ((terraform-mode . eglot-ensure) :hook ((terraform-mode . eglot-ensure)
;; (terraform-mode . tree-sitter-hl-mode) ;; (terraform-mode . tree-sitter-hl-mode)
(terraform-mode . (lambda () (setq indent-bars-spacing-override 2) (indent-bars-mode))) (terraform-mode . (lambda () (setq indent-bars-spacing-override 2) (indent-bars-mode)))
)) ))
(use-package yaml-mode (use-package yaml-mode
:hook (yaml-mode . yaml-ts-mode)) :hook (yaml-mode . yaml-ts-mode))
@ -629,7 +629,7 @@
(use-package aggressive-indent (use-package aggressive-indent
:hook ((lisp-mode . aggressive-indent-mode) :hook ((lisp-mode . aggressive-indent-mode)
(emacs-lisp-mode . aggressive-indent-mode))) (emacs-lisp-mode . aggressive-indent-mode)))
(use-package eldoc (use-package eldoc
:delight) :delight)
@ -679,8 +679,8 @@
(eat-eshell-mode) (eat-eshell-mode)
(eat-eshell-visual-command-mode) (eat-eshell-visual-command-mode)
:custom ((eshell-prefer-lisp-functions t) :custom ((eshell-prefer-lisp-functions t)
(eshell-history-size 10000) (eshell-history-size 10000)
(eshell-banner-message "")) (eshell-banner-message ""))
:config :config
(defun ccr/start-eshell () ;; Used from outside Emacs by emacsclient --eval (defun ccr/start-eshell () ;; Used from outside Emacs by emacsclient --eval
(eshell 'N) (eshell 'N)
@ -694,17 +694,17 @@
;; (add-to-list 'eshell-modules-list 'eshell-smart) ;; plan 9 style ;; (add-to-list 'eshell-modules-list 'eshell-smart) ;; plan 9 style
(setq ccr/eshell-aliases (setq ccr/eshell-aliases
'((g . magit) '((g . magit)
(gl . magit-log) (gl . magit-log)
(d . dired) (d . dired)
(o . find-file) (o . find-file)
(oo . find-file-other-window) (oo . find-file-other-window)
(l . (lambda () (eshell/ls '-la))) (l . (lambda () (eshell/ls '-la)))
(eshell/clear . eshell/clear-scrollback))) (eshell/clear . eshell/clear-scrollback)))
(mapc (lambda (alias) (mapc (lambda (alias)
(defalias (car alias) (cdr alias))) (defalias (car alias) (cdr alias)))
ccr/eshell-aliases) ccr/eshell-aliases)
(defun ccr/eshell-get-current-input () (defun ccr/eshell-get-current-input ()
@ -712,35 +712,35 @@
(when (eq major-mode 'eshell-mode) (when (eq major-mode 'eshell-mode)
(let ((start (save-excursion (eshell-bol) (point))) (let ((start (save-excursion (eshell-bol) (point)))
(end (point-at-eol))) (end (point-at-eol)))
(buffer-substring-no-properties start end)))) (buffer-substring-no-properties start end))))
(defun ccr/eshell-replace-current-input (new-input) (defun ccr/eshell-replace-current-input (new-input)
(when (eq major-mode 'eshell-mode) (when (eq major-mode 'eshell-mode)
(let ((inhibit-read-only t)) (let ((inhibit-read-only t))
(eshell-bol) (eshell-bol)
(delete-region (point) (point-at-eol)) (delete-region (point) (point-at-eol))
(insert new-input) (insert new-input)
(end-of-line)))) (end-of-line))))
(defun ccr/eshell-history () (defun ccr/eshell-history ()
(interactive) (interactive)
(when (eq major-mode 'eshell-mode) (when (eq major-mode 'eshell-mode)
(let* ((current-input (ccr/eshell-get-current-input)) (let* ((current-input (ccr/eshell-get-current-input))
(eshell-history (when (and eshell-history-file-name (eshell-history (when (and eshell-history-file-name
(file-readable-p eshell-history-file-name)) (file-readable-p eshell-history-file-name))
(f-read-text eshell-history-file-name))) (f-read-text eshell-history-file-name)))
(bash-history (when (file-readable-p "~/.bash_history") (bash-history (when (file-readable-p "~/.bash_history")
(f-read-text "~/.bash_history"))) (f-read-text "~/.bash_history")))
(history (split-string (concat (or eshell-history "") "\n" (history (split-string (concat (or eshell-history "") "\n"
(or bash-history "")) "\n" t)) (or bash-history "")) "\n" t))
(selection (completing-read "History: " history nil t current-input))) (selection (completing-read "History: " history nil t current-input)))
(ccr/eshell-replace-current-input selection)))) (ccr/eshell-replace-current-input selection))))
:bind (("C-c o e" . project-eshell) :bind (("C-c o e" . project-eshell)
(:map eshell-mode-map (:map eshell-mode-map
("C-r" . ccr/eshell-history) ("C-r" . ccr/eshell-history)
("C-<return>" . corfu-send) ("C-<return>" . corfu-send)
))) ;; i.e. just C-r in semi-char-mode ))) ;; i.e. just C-r in semi-char-mode
(use-package eshell-command-not-found (use-package eshell-command-not-found
:custom ((eshell-command-not-found-command "command-not-found")) :custom ((eshell-command-not-found-command "command-not-found"))
@ -757,7 +757,7 @@
(use-package eshell-prompt-extras (use-package eshell-prompt-extras
:custom ((eshell-highlight-prompt nil) :custom ((eshell-highlight-prompt nil)
(eshell-prompt-function 'epe-theme-lambda))) (eshell-prompt-function 'epe-theme-lambda)))
(use-package popper (use-package popper
:custom :custom