summary refs log tree commit diff
diff options
context:
space:
mode:
authorFranck Cuny <franck@fcuny.net>2023-11-10 17:55:59 -0800
committerFranck Cuny <franck@fcuny.net>2023-11-10 17:55:59 -0800
commitbd9f04552209267bc4c2d160fcfc3e7d55f88720 (patch)
treefbecf07d1ebdcfbe91ba68d31bd309d48ed0eae9
parentremove extra configuration (diff)
downloademacs.d-bd9f04552209267bc4c2d160fcfc3e7d55f88720.tar.gz
simplify a number of things in the configuration
The configuration for the completion system is a bit complex and I
don't understand what I use, what I need, what are the defaults, etc.
Let's reset the configuration to a bare minimum I understand and then
build from there.
-rw-r--r--init.org178
1 files changed, 11 insertions, 167 deletions
diff --git a/init.org b/init.org
index 78cd4b1..80a717a 100644
--- a/init.org
+++ b/init.org
@@ -319,54 +319,7 @@ The =consult= package provides search and navigation commands based on Emacs com
 	 ("M-g g"   . consult-goto-line)
 	 ("M-g M-g" . consult-goto-line)
 	 ("M-g m"   . consult-mark)
-	 ("M-g k"   . consult-global-mark))
-
-  ;; Enable automatic preview at point in the *Completions* buffer. This is
-  ;; relevant when you use the default completion UI.
-  :hook (completion-list-mode . consult-preview-at-point-mode)
-
-  :custom
-  (consult-narrow-key "<")
-
-  :functions
-  (consult-register-format
-   consult-register-window
-   consult-xref)
-
-  :init
-  ;; Optionally configure the register formatting. This improves the register
-  ;; preview for `consult-register', `consult-register-load',
-  ;; `consult-register-store' and the Emacs built-ins.
-  (setq register-preview-delay 0.5
-	register-preview-function #'consult-register-format)
-
-  ;; Optionally tweak the register preview window.
-  ;; This adds thin lines, sorting and hides the mode line of the window.
-  (advice-add #'register-preview :override #'consult-register-window)
-
-  ;; Use Consult to select xref locations with preview
-  (setq xref-show-xrefs-function #'consult-xref
-	xref-show-definitions-function #'consult-xref)
-
-  ;; Configure other variables and modes in the :config section,
-  ;; after lazily loading the package.
-  :config
-  (use-package consult-xref)
-
-  (consult-customize
-   consult-theme
-   :preview-key '(:debounce 0.2 any)
-   consult-ripgrep
-   consult-git-grep
-   consult-grep
-   consult-bookmark
-   consult-recent-file
-   consult-xref
-   consult--source-bookmark
-   consult--source-file-register
-   consult--source-recent-file
-   consult--source-project-recent-file
-   :preview-key '(:debounce 0.4 any)))
+	 ("M-g k"   . consult-global-mark)))
 #+end_src
 
 *** corfu
@@ -380,7 +333,6 @@ Corfu enhances in-buffer completion with a small completion popup.
 	 :map corfu-map
 	 ("C-n"      . corfu-next)
 	 ("C-p"      . corfu-previous)
-	 ("<escape>" . corfu-quit)
 	 ("<return>" . corfu-insert)
 	 ("M-d"      . corfu-info-documentation)
 	 ("M-l"      . corfu-info-location)
@@ -397,8 +349,6 @@ Corfu enhances in-buffer completion with a small completion popup.
 
   (corfu-min-width 80)
   (corfu-max-width corfu-min-width)     ; Always have the same width
-  (corfu-count 14)
-  (corfu-scroll-margin 4)
   (corfu-cycle t)
 
   ;; `nil' means to ignore `corfu-separator' behavior, that is, use the older
@@ -446,7 +396,6 @@ Corfu enhances in-buffer completion with a small completion popup.
   ;; the `corfu-popupinfo' popup.
   (corfu-echo-documentation nil))
 #+end_src
-
 *** cape
 
 #+begin_src emacs-lisp
@@ -454,80 +403,31 @@ Corfu enhances in-buffer completion with a small completion popup.
   :demand t
   :ensure t
   :bind (("C-c . p" . completion-at-point)
-	 ("C-c . t" . complete-tag)
 	 ("C-c . h" . cape-history)
 	 ("C-c . f" . cape-file)
-	 ("C-c . k" . cape-keyword)
-	 ("C-c . s" . cape-symbol)
 	 ("C-c . a" . cape-abbrev)
 	 ("C-c . l" . cape-line)
 	 ("C-c . w" . cape-dict)
-	 ("C-c . \\" . cape-tex)
-	 ("C-c . _" . cape-tex)
-	 ("C-c . ^" . cape-tex)
-	 ("C-c . &" . cape-sgml)
 	 ("C-c . r" . cape-rfc1345))
   :init
   ;; Add `completion-at-point-functions', used by `completion-at-point'.
   (add-to-list 'completion-at-point-functions #'cape-file)
   (add-to-list 'completion-at-point-functions #'cape-abbrev))
 #+end_src
-
-*** embark
-
-#+begin_src emacs-lisp
-  (use-package embark
-    :ensure t
-    :bind (("M-."   . embark-act)
-	   ("C-h b" . embark-bindings) ;; alternative for `describe-bindings'
-
-	   :map embark-collect-mode-map
-	   ("C-c C-a" . embark-collect-direct-action-minor-mode))
-    :init
-    ;; Optionally replace the key help with a completing-read interface
-    (setq prefix-help-command #'embark-prefix-help-command)
-
-    ;; Show the Embark target at point via Eldoc.  You may adjust the Eldoc
-    ;; strategy, if you want to see the documentation from multiple providers.
-    (add-hook 'eldoc-documentation-functions #'embark-eldoc-first-target)
-
-    :config
-    ;; Hide the mode line of the Embark live/completions buffers
-    (add-to-list 'display-buffer-alist
-		 '("\\`\\*Embark Collect \\(Live\\|Completions\\)\\*"
-		   nil
-		   (window-parameters (mode-line-format . none)))))
-#+end_src
-
-**** embark-consult
-
-#+begin_src emacs-lisp
-  (use-package embark-consult
-    :ensure t
-    :hook
-    (embark-collect-mode . consult-preview-at-point-mode))
-#+end_src
-
 *** marginalia
-
-
 #+begin_src emacs-lisp
   (use-package marginalia
     :ensure t
     ;; Either bind `marginalia-cycle' globally or only in the minibuffer
-    :bind (("M-A" . marginalia-cycle)
-	   :map minibuffer-local-map
-	   ("M-A" . marginalia-cycle))
+    :bind (:map minibuffer-local-map
+         ("M-A" . marginalia-cycle))
 
-    ;; The :init configuration is always executed (Not lazy!)
-    :config
+    :init
     ;; Must be in the :init section of use-package such that the mode gets
     ;; enabled right away. Note that this forces loading the package.
     (marginalia-mode))
 #+end_src
-
 *** orderless
-
 #+begin_src emacs-lisp
   (use-package orderless
     :demand t
@@ -536,80 +436,25 @@ Corfu enhances in-buffer completion with a small completion popup.
     (completion-styles '(orderless basic))
     (completion-category-defaults nil))
 #+end_src
-
 *** vertico
-
-
 #+begin_src emacs-lisp
   (use-package vertico
-    :demand t
     :ensure t
-    :bind (("C-c . ." . vertico-repeat)
-	   :map vertico-map
-	   ("C-j"   . vertico-exit-input)
-	   ("C-M-n" . vertico-next-group)
-	   ("C-M-p" . vertico-previous-group))
-    :hook
-    (minibuffer-setup . vertico-repeat-save)
-    (rfn-eshadow-update-overlay . vertico-directory-tidy)
-    :custom
-    (vertico-count 10)
-    (vertico-resize nil)
-    (vertico-cycle t)
-    :preface
-    (defun crm-indicator (args)
-      (cons (format "[CRM%s] %s"
-		    (replace-regexp-in-string
-		     "\\`\\[.*?]\\*\\|\\[.*?]\\*\\'" ""
-		     crm-separator)
-		    (car args))
-	    (cdr args)))
     :config
-    (vertico-mode)
-
-    ;; Add prompt indicator to `completing-read-multiple'.
-    ;; We display [CRM<separator>], e.g., [CRM,] if the separator is a comma.
-    (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)
-
-    ;; Hide commands in M-x which do not work in the current mode. Vertico
-    ;; commands are hidden in normal buffers.
-    (setq read-extended-command-predicate
-	  #'command-completion-default-include-p))
+    (vertico-mode))
 #+end_src
-
 *** yasnippet
-
 #+begin_src emacs-lisp
 (use-package yasnippet
   :ensure t
   :diminish
-  :commands yas-minor-mode-on
-  :bind (("C-c y d" . yas-load-directory)
-         ("C-c y i" . yas-insert-snippet)
-         ("C-c y f" . yas-visit-snippet-file)
-         ("C-c y n" . yas-new-snippet)
-         ("C-c y l" . yas-describe-tables)
-         ("C-c y g" . yas-global-mode)
-         ("C-c y m" . yas-minor-mode)
-         ("C-c y r" . yas-reload-all)
-         ("C-c y x" . yas-expand)
-         :map yas-keymap
-         ("C-i" . yas-next-field-or-maybe-expand))
   :mode ("/emacs\\.d/snippets/" . snippet-mode)
-  :hook (prog-mode . yas-minor-mode-on)
-  :custom
-  (yas-prompt-functions '(yas-completing-prompt yas-no-prompt))
-  (yas-snippet-dirs (list (emacs-path "snippets")))
-  (yas-triggers-in-field t)
-  (yas-wrap-around-region t)
+
   :config
-  (yas-load-directory (emacs-path "snippets")))
+  (yas-load-directory (emacs-path "snippets"))
+
+  :init
+  (yas-global-mode 1))
 #+end_src
 
 ** dired
@@ -1000,7 +845,6 @@ A convenient package to create link to a code location in GitHub, or other forge
 ** js2-mode
 ** languages
 *** eglot
-
 After experimenting with [[https://emacs-lsp.github.io/lsp-mode/][lsp-mode]] and [[https://github.com/joaotavora/eglot][eglot]] I decided to go with eglot for LSP integration.
 
 For languages where I want to use LSP, I need to add ~:hook (nix-mode . englot-ensure)~ in the ~use-package~ definition for the language.
@@ -1008,11 +852,11 @@ For languages where I want to use LSP, I need to add ~:hook (nix-mode . englot-e
 #+begin_src emacs-lisp
 (use-package eglot
   :ensure t
+  :after yasnippet
   :bind (:map eglot-mode-map
               ("C-c l a" . eglot-code-actions)
               ("C-c l r" . eglot-rename)))
 #+end_src
-
 *** tree-sitter
 
 #+begin_src emacs-lisp