Replace projectile with project.el and counsel with vertico

This commit is contained in:
Maciej 2024-10-21 20:48:45 +03:00
parent 00fe42ad44
commit ebdea386c3
Signed by: maciej
GPG key ID: 41D62D42D3B0D765
11 changed files with 100 additions and 103 deletions

View file

@ -33,23 +33,35 @@
(global-company-mode t)
(defun just-one-face (fn &rest args)
(let ((orderless-match-faces [completions-common-part]))
(apply fn args)))
(advice-add 'company-capf--candidates :around #'just-one-face)
(defun company-completion-styles (capf-fn &rest args)
(let ((completion-styles '(basic partial-match)))
(apply capf-fn args)))
(advice-add 'company-capf :around #'company-completion-styles)
(setq-default
company-minimum-prefix-length 3 ;; minimum prefix character number for auto complete.
company-minimum-prefix-length 3 ;; minimum prefix character number for auto complete.
company-idle-delay 0.1
company-require-match nil
company-echo-delay 0 ;;;; company-show-numbers t
company-tooltip-align-annotations t ;; align annotations to the right tooltip border.
company-tooltip-flip-when-above t
company-tooltip-limit 10 ;; tooltip candidates max limit.
company-tooltip-minimum 2 ;; minimum candidates limit.
company-tooltip-minimum-width 10 ;; The minimum width of the tooltip's inner area.
;; This doesn't include the margins and the scroll bar.
company-tooltip-margin 2 ;; width of margin columns to show around the tooltip
company-tooltip-limit 10 ;; tooltip candidates max limit.
company-tooltip-minimum 2 ;; minimum candidates limit.
company-tooltip-minimum-width 10 ;; The minimum width of the tooltip's inner area.
;; This doesn't include the margins and the scroll bar.
company-tooltip-margin 2 ;; width of margin columns to show around the tooltip
company-tooltip-offset-display 'lines ;; 'lines - how to show tooltip unshown candidates number.
company-show-numbers nil ;; t: show quick-access numbers for the first ten candidates.
company-selection-wrap-around t ;; loop over candidates
company-dabbrev-other-buffers t ;; Only offer dabbrev from the same major mode
company-dabbrev-downcase nil ;; Preserve case of candidates
company-dabbrev-downcase nil ;; Preserve case of candidates
company-format-margin-function nil
;; company-async-wait 0.03
;; company-async-timeout 2

View file

@ -0,0 +1,63 @@
;;; icejam-completing-read -- Functions related to completing-read -*- lexical-binding: t; -*-
;;; Commentary:
;;;
;;; Code:
(require 'icejam-keys-mode)
(use-package vertico :straight t :defer t
:init
(vertico-mode)
:custom
(vertico-scroll-margin 0) ;; Different scroll margin
(vertico-count 15) ;; Show more candidates
(vertico-resize t) ;; Grow and shrink the Vertico minibuffer
(vertico-cycle t) ;; Enable cycling for `vertico-next/previous')
)
;; A few more useful configurations...
(use-package emacs
:custom
;; Support opening new minibuffers from inside existing minibuffers.
(enable-recursive-minibuffers t)
;; Hide commands in M-x which do not work in the current mode. Vertico
;; commands are hidden in normal buffers. This setting is useful beyond
;; Vertico.
(read-extended-command-predicate #'command-completion-default-include-p)
:init
;; Add prompt indicator to `completing-read-multiple'.
;; We display [CRM<separator>], e.g., [CRM,] if the separator is a comma.
(defun crm-indicator (args)
(cons (format "[CRM%s] %s"
(replace-regexp-in-string
"\\`\\[.*?]\\*\\|\\[.*?]\\*\\'" ""
crm-separator)
(car args))
(cdr args)))
(advice-add #'completing-read-multiple :filter-args #'crm-indicator)
;; Do not allow the cursor in the minibuffer prompt
(setq minibuffer-prompt-properties
'(read-only t cursor-intangible t face minibuffer-prompt))
(add-hook 'minibuffer-setup-hook #'cursor-intangible-mode))
;; Optionally use the `orderless' completion style.
(use-package orderless :straight t :defer t
:custom
;; Configure a custom style dispatcher (see the Consult wiki)
;; (orderless-style-dispatchers '(+orderless-consult-dispatch orderless-affix-dispatch))
;; (orderless-component-separator #'orderless-escapable-split-on-space)
(completion-styles '(orderless basic))
(completion-category-defaults nil)
(completion-category-overrides '((file (styles partial-completion)))))
(use-package marginalia :straight t :defer t :init (marginalia-mode))
(use-package consult :straight t :defer t)
(use-package helpful :straight t :defer t)
(with-eval-after-load 'consult
(define-key icejam-keys-mode-map (kbd "C-c a") 'consult-ripgrep)
(define-key icejam-keys-mode-map (kbd "C-c t") 'find-file))
(provide 'icejam-completing-read)
;;; icejam-completing-read.el ends here

View file

@ -42,13 +42,12 @@
(require 'icejam-base)
(require 'icejam-sys-specific)
(require 'icejam-tree-sitter)
(require 'icejam-ivy)
(require 'icejam-completing-read)
(require 'icejam-avy)
(require 'icejam-transient)
(require 'icejam-prog-mode)
(require 'icejam-company-yasnippet)
(require 'icejam-flycheck)
(require 'icejam-projectile)
(require 'icejam-ispell)
(require 'icejam-deft)
(require 'icejam-lsp)

View file

@ -19,7 +19,6 @@
'("Happy coding!" "I showed you my source code, pls respond"))
(setq dashboard-startup-banner 'logo)
(setq dashboard-projects-backend 'projectile)
(setq dashboard-items '((recents . 5)
;; (bookmarks . 5)

View file

@ -12,7 +12,6 @@
(use-package diminish :straight t)
(eval-after-load 'flyspell '(diminish 'flyspell-mode))
(eval-after-load 'projectile '(diminish 'projectile-mode))
(eval-after-load 'flycheck '(diminish 'flycheck-mode))
(eval-after-load 'rainbow-mode '(diminish 'rainbow-mode))
(eval-after-load 'undo-tree '(diminish 'undo-tree-mode))

View file

@ -1,47 +0,0 @@
;;; icejam-ivy -- Counsel, Swiper and Ivy. -*- lexical-binding: t; -*-
;;; Commentary:
;;;
;;; Code:
(require 'icejam-keys-mode)
(use-package helpful :straight t :defer t)
(use-package ivy :straight t :defer t
:config (setq ivy-use-virtual-buffers t ;; Display recent files in ivy-switch-buffer
ivy-count-format "(%d of %d) " ;; Current candidate count style
ivy-wrap t ;; Wrap around completions
ivy-display-style 'fancy) ;; Formatting style
(ivy-mode 1))
(use-package swiper :straight t)
(use-package counsel :straight t :requires (helpful ivy swiper))
(with-eval-after-load 'counsel
(define-key icejam-keys-mode-map (kbd "C-c a") 'counsel-rg)
(define-key icejam-keys-mode-map (kbd "C-c t") 'counsel-find-file)
(define-key icejam-keys-mode-map (kbd "C-c C-s") 'swiper) ;; Find things by regexp
(define-key icejam-keys-mode-map (kbd "M-x") 'counsel-M-x) ;; M-x on steroids
;; Help bindings
(define-key icejam-keys-mode-map (kbd "<f1> f") 'counsel-describe-function)
(define-key icejam-keys-mode-map (kbd "<f1> v") 'counsel-describe-variable)
(define-key icejam-keys-mode-map (kbd "<f1> b") 'counsel-descbinds)
(define-key icejam-keys-mode-map (kbd "<f1> x") 'helpful-command)
(define-key icejam-keys-mode-map (kbd "<f1> l") 'counsel-find-library)
(define-key icejam-keys-mode-map (kbd "C-h f") 'counsel-describe-function)
(define-key icejam-keys-mode-map (kbd "C-h v") 'counsel-describe-variable)
(define-key icejam-keys-mode-map (kbd "C-h b") 'counsel-descbinds)
(define-key icejam-keys-mode-map (kbd "C-h x") 'helpful-command)
(define-key icejam-keys-mode-map (kbd "C-h l") 'counsel-find-library)
(setq counsel-describe-function-function 'helpful-callable)
(setq counsel-describe-variable-function 'helpful-variable)
;; Other stuff
(define-key icejam-keys-mode-map (kbd "<f2> i") 'counsel-info-lookup-symbol)
(define-key icejam-keys-mode-map (kbd "<f2> u") 'counsel-unicode-char))
(provide 'icejam-ivy)
;;; icejam-ivy.el ends here

View file

@ -1,26 +0,0 @@
;;; icejam-projectile.el -- summary -*- lexical-binding: t; -*-
;;; Commentary:
;;; Project management based on git repos
;;; Code:
(use-package counsel-projectile :straight t :defer t)
(use-package projectile
:straight t
:requires (counsel counsel-projectile)
:ensure t
:init
(projectile-mode)
(remove-hook 'buffer-list-update-hook #'projectile-track-known-projects-find-file-hook)
:config
(setq-default projectile-completion-system 'ivy ;; Use ivy as completion system
projectile-enable-caching t ;; Cache project files
projectile-file-exists-local-cache-expire (* 3 60) ;; keep cache for 3 minutes
projectile-sort-order (quote recently-active) ;; Order by recently active projects
projectile-globally-ignored-directories
(append '("node_modules" ".svn" "_build" "tmp" "log") projectile-globally-ignored-directories)
;; Add certain folders to ignored
))
(provide 'icejam-projectile)
;;; icejam-projectile.el ends here

View file

@ -15,16 +15,14 @@
(transient-define-prefix icejam/project-menu ()
"Project Commands."
[""
["Projectile"
("s" "Switch project" counsel-projectile-switch-project)
("f" "Find file in project" counsel-projectile-find-file)
("g" "Grep in project" counsel-projectile-rg)
("c" "invalidate cache" projectile-invalidate-cache)
("n" "New project" projectile-add-known-project)]
["Project"
("s" "Switch project" project-switch-project)
("f" "Find file in project" project-find-file)
("g" "Grep in project" consult-ripgrep)]
["Ivy"
("a" "Grep in buffer" counsel-rg)
("a" "Grep in buffer" consult-ripgrep)
("b" "Buffer list" ibuffer)
("t" "Find file" counsel-find-file)]
("t" "Find file" find-file)]
["Magit"
("m" "Git status" magit-status)
("C" "Git checkout" magit-checkout)

View file

@ -4,7 +4,6 @@
(require 'icejam-prog-mode)
(require 'icejam-lsp)
(require 'icejam-projectile)
(declare-function lsp "lsp-mode" nil)
(declare-function column-enforce-n "column-enforce-mode" (number))
@ -90,15 +89,15 @@
;; Add include path so that Erlang does not complain about
;; missing header files.
(setq-local flycheck-erlang-include-path
(list (format "%sdeps" (projectile-project-root))
(format "%s_build/default/lib" (projectile-project-root))
(format "%sinclude" (projectile-project-root))
(format "%sapps" (projectile-project-root))))
(list (format "%sdeps" (project-root (project-current)))
(format "%s_build/default/lib" (project-root (project-current)))
(format "%sinclude" (project-root (project-current)))
(format "%sapps" (project-root (project-current)))))
(setq-local flycheck-erlang-library-path
(list (format "%sdeps" (projectile-project-root))
(format "%s_build/default/lib" (projectile-project-root))
(format "%sapps" (projectile-project-root))))
(list (format "%sdeps" (project-root (project-current)))
(format "%s_build/default/lib" (project-root (project-current)))
(format "%sapps" (project-root (project-current)))))
;; Company list override
(add-to-list (make-local-variable 'company-backends)

View file

@ -3,7 +3,6 @@
;;; Code:
(require 'icejam-prog-mode)
(require 'icejam-projectile)
(use-package rspec-mode :straight t :defer t)
(use-package ruby-end :straight t :defer t)

View file

@ -16,8 +16,8 @@
("company-box" . "c4f2e243fba03c11e46b1600b124e036f2be7691")
("company-mode" . "9c273fc7c1a9dd69ccf508589211c4f8bd0e0765")
("compat" . "c1f94ac75d6ea7f93c8da51e3f78ab3f39dbc2a2")
("consult" . "afda4c68a4ebcc9104bf2a645848d7e92269f054")
("copilot.el" . "b5878d6a8c741138b5efbf4fe1c594f3fd69dbdd")
("counsel-projectile" . "40d1e1d4bb70acb00fddd6f4df9778bf2c52734b")
("cyberpunk-theme.el" . "1fd5350ddfc53c30e6eef82af77c62d7c825df3c")
("dap-mode" . "496dd3a60f71a396df7e9a5ff6c500127d00ec03")
("dart-mode" . "02e919c1cf200b4938139c18068577faff1fb364")
@ -92,6 +92,7 @@
("macrostep" . "4939d88779761e8b5461b4cf73f86600172987db")
("magit" . "7c842b8ac0a904049fc68b321b47e42d642e5c51")
("map" . "cc174d5d2b3f9dacc31e9c55da1c80eb5f49c112")
("marginalia" . "be2e57efff640880251c082ac93bd365b7202e6a")
("markdown-mode" . "6102ac5b7301b4c4fc0262d9c6516693d5a33f2b")
("melpa" . "04fdd633207a28b91f0a6e64aa25d114ab229a13")
("merlin" . "0821c50b5b0bea8e3b4cb2878004466a9a993178")
@ -100,6 +101,7 @@
("nginx-mode" . "c4ac5de975d65c84893a130a470af32a48b0b66c")
("nongnu-elpa" . "4b8b3633c7e29412c89f1c9d6ad7a951772be758")
("opam-switch-mode" . "1069e56a662f23ea09d4e05611bdedeb99257012")
("orderless" . "96b74d2450ab4ab1a175d0e86c62f6695c4709b5")
("otp" . "12fa6666fa14debc0b63b2976d1db7c170150701")
("paredit" . "037b9b8acbca75151f133b6c0f7f3ff97d9042e5")
("parseclj" . "6af22372e0fe14df882dd300b22b12ba2d7e00b0")
@ -109,7 +111,6 @@
("php-mode" . "e3087db57e6b1682eb80af2916f106ac19472ce3")
("posframe" . "570273bcf6c21641f02ccfcc9478607728f0a2a2")
("powerline" . "c35c35bdf5ce2d992882c1f06f0f078058870d4a")
("projectile" . "41f8a8e7bdc50467256af632108989b5c980cd56")
("purescript-mode" . "d187b3d4bbb4d9cb36a4c6c55f35d63d159a26e8")
("queue" . "8df1334d54d4735d2f821790422a850dfaaa08ef")
("rainbow-delimiters" . "f40ece58df8b2f0fb6c8576b527755a552a5e763")
@ -136,6 +137,7 @@
("tuareg" . "1d53723e39f22ab4ab76d31f2b188a2879305092")
("typescript.el" . "fc3a4f3b275e8cf6cf41aa0c9ef42e25ef908feb")
("use-package" . "a6e856418d2ebd053b34e0ab2fda328abeba731c")
("vertico" . "e826dfcb14af5e2cfd88ed110d0208ddc2d37788")
("visual-regexp-steroids.el" . "a6420b25ec0fbba43bf57875827092e1196d8a9e")
("visual-regexp.el" . "48457d42a5e0fe10fa3a9c15854f1f127ade09b5")
("vundo" . "5374125dc0aaf1769bb0965344befb90f809ccfc")