diff --git a/.gitignore b/.gitignore index dd32a3f..2bd42d9 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ /places /ido.last /history +/recentf diff --git a/.gitmodules b/.gitmodules index fceb92d..5f6cb2b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -28,3 +28,27 @@ [submodule "site-lisp/mwim"] path = site-lisp/mwim url = https://github.com/alezost/mwim.el.git +[submodule "site-lisp/marginalia"] + path = site-lisp/marginalia + url = https://github.com/minad/marginalia.git +[submodule "site-lisp/vertico"] + path = site-lisp/vertico + url = https://github.com/minad/vertico.git +[submodule "site-lisp/consult"] + path = site-lisp/consult + url = https://github.com/minad/consult.git +[submodule "site-lisp/corfu"] + path = site-lisp/corfu + url = https://github.com/minad/corfu.git +[submodule "site-lisp/cape"] + path = site-lisp/cape + url = https://github.com/minad/cape.git +[submodule "site-lisp/orderless"] + path = site-lisp/orderless + url = https://github.com/oantolin/orderless.git +[submodule "site-lisp/embark"] + path = site-lisp/embark + url = https://github.com/oantolin/embark.git +[submodule "site-lisp/corfu-doc"] + path = site-lisp/corfu-doc + url = https://github.com/galeo/corfu-doc.git diff --git a/init.el b/init.el index cec4bf9..6ca9978 100644 --- a/init.el +++ b/init.el @@ -58,6 +58,12 @@ If freezing sometimes, decrease it. If stuttering, increase it.") (expand-file-name ".cache" creature/config-dir) "Cache directory of Creature.") +(defconst creature/prefix-key "M-m" + "Prefix key for custom keybindings.") + +(define-prefix-command 'creature/map) +(global-set-key (kbd creature/prefix-key) 'creature/map) + (defconst creature/pkg-dir (expand-file-name "site-lisp" creature/config-dir) "Package directory.") @@ -102,6 +108,7 @@ If freezing sometimes, decrease it. If stuttering, increase it.") (require 'init-git) (require 'init-edit) (require 'init-theme) +(require 'init-vertico) (require 'which-key) (setq which-key-show-early-on-C-h t) diff --git a/lisp/init-built-in.el b/lisp/init-built-in.el index e9beb6a..ceba303 100644 --- a/lisp/init-built-in.el +++ b/lisp/init-built-in.el @@ -52,6 +52,15 @@ (setq auto-save-file-name-transforms `((".*" ,temporary-file-directory t))) +(with-eval-after-load 'recentf + (setq recentf-max-saved-items 1000) + ;; (add-to-list 'recentf-exclude "bookmarks") + (add-to-list 'recentf-exclude "COMMIT_EDITMSG\\'") + (add-to-list 'recentf-exclude "node_modules") + + (with-eval-after-load 'package + (add-to-list 'recentf-exclude (expand-file-name package-user-dir)))) + ;; Disable bell (setq visible-bell nil ring-bell-function 'ignore) diff --git a/lisp/init-edit.el b/lisp/init-edit.el index c58c873..9a1e236 100644 --- a/lisp/init-edit.el +++ b/lisp/init-edit.el @@ -26,4 +26,8 @@ ("C-e" . mwim-end-of-code-or-line)) "mwim") + +(setq backward-delete-char-untabify-method 'hungry) + + (provide 'init-edit) diff --git a/lisp/init-vertico.el b/lisp/init-vertico.el new file mode 100644 index 0000000..5a3c0eb --- /dev/null +++ b/lisp/init-vertico.el @@ -0,0 +1,44 @@ +;; -*- coding: utf-8; lexical-binding: t; -*- + +(require 'marginalia) +(marginalia-mode 1) + + +(require 'vertico) +(vertico-mode 1) +(require 'vertico-indexed) +(vertico-indexed-mode 1) + + +(require 'corfu) +(global-corfu-mode 'toggle) +(setq corfu-auto t + corfu-auto-delay 0.05 + corfu-auto-prefix 2 + corfu-quit-no-match t) + +(require 'orderless) +(setq completion-styles '(orderless basic partial-completion flex) + completion-category-overrides '((file (styles basic partial-completion)))) + +(require 'corfu-doc) +(add-hook 'corfu-mode-hook #'corfu-doc-mode) + +(lazy-load-local-keys + '(("M-SPC" . corfu-quick-complete)) + corfu-map + "corfu-quick") + +(lazy-load-global-keys + '(("C-'" . cape-file)) + "cape") + + +(lazy-load-global-keys + '(("fr" . consult-recent-file)) + "consult" creature/prefix-key) +(with-eval-after-load 'consult + (recentf-mode 1)) + + +(provide 'init-vertico) diff --git a/site-lisp/cape b/site-lisp/cape new file mode 160000 index 0000000..b98c2ea --- /dev/null +++ b/site-lisp/cape @@ -0,0 +1 @@ +Subproject commit b98c2ea11da135d9c8982ade5328900451bd24f4 diff --git a/site-lisp/consult b/site-lisp/consult new file mode 160000 index 0000000..82a41d3 --- /dev/null +++ b/site-lisp/consult @@ -0,0 +1 @@ +Subproject commit 82a41d35291fe17fe3b89ccc6e2cf2b2589e8eef diff --git a/site-lisp/corfu b/site-lisp/corfu new file mode 160000 index 0000000..3408e41 --- /dev/null +++ b/site-lisp/corfu @@ -0,0 +1 @@ +Subproject commit 3408e41bf0d2264d754a59b0326c622d874d5537 diff --git a/site-lisp/corfu-doc b/site-lisp/corfu-doc new file mode 160000 index 0000000..da93136 --- /dev/null +++ b/site-lisp/corfu-doc @@ -0,0 +1 @@ +Subproject commit da931367802d01e87e1e496ba5b51aa9126a705d diff --git a/site-lisp/embark b/site-lisp/embark new file mode 160000 index 0000000..2422d4e --- /dev/null +++ b/site-lisp/embark @@ -0,0 +1 @@ +Subproject commit 2422d4e86f24b2b4204f2441f953e8407d011a2e diff --git a/site-lisp/marginalia b/site-lisp/marginalia new file mode 160000 index 0000000..cc7a086 --- /dev/null +++ b/site-lisp/marginalia @@ -0,0 +1 @@ +Subproject commit cc7a086cd7816ad41ff004c61c41bdd26ec3ea0b diff --git a/site-lisp/orderless b/site-lisp/orderless new file mode 160000 index 0000000..6b86527 --- /dev/null +++ b/site-lisp/orderless @@ -0,0 +1 @@ +Subproject commit 6b86527b30ef96e047d97e314ac640a410891d1f diff --git a/site-lisp/vertico b/site-lisp/vertico new file mode 160000 index 0000000..3106094 --- /dev/null +++ b/site-lisp/vertico @@ -0,0 +1 @@ +Subproject commit 31060942d65ccd3c1b488d8db497af5eda9ac7fc