From a1fb92543ccd21375f21143939a29445016d56ee Mon Sep 17 00:00:00 2001 From: Augusto Stoffel Date: Wed, 28 Apr 2021 11:41:19 +0100 Subject: [PATCH] Add a completion-category-defaults entry Setting completion-styles buffer-locally is harder to customize and can break some completion UIs. Emacs bughttps://github.com/joaotavora/eglot/issues/48073 * eglot.el: Add a completion-category-defaults entry, if applicable. (eglot--managed-mode): Don't set `completion-styles' (eglot-completion-at-point): Add style metadata to completion table. --- lisp/progmodes/eglot.el | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el index 3348054264b..122a76b0359 100644 --- a/lisp/progmodes/eglot.el +++ b/lisp/progmodes/eglot.el @@ -222,6 +222,10 @@ let the buffer grow forever." :type '(choice (const :tag "Don't show confirmation prompt" nil) (symbol :tag "Show confirmation prompt" 'confirm))) +;; Customizable via `completion-category-overrides'. +(when (assoc 'flex completion-styles-alist) + (add-to-list 'completion-category-defaults '(eglot (styles flex basic)))) + ;;; Constants ;;; @@ -1421,8 +1425,6 @@ Use `eglot-managed-p' to determine if current buffer is managed.") (eglot--setq-saving flymake-diagnostic-functions '(eglot-flymake-backend)) (eglot--setq-saving company-backends '(company-capf)) (eglot--setq-saving company-tooltip-align-annotations t) - (when (assoc 'flex completion-styles-alist) - (eglot--setq-saving completion-styles '(flex basic))) (unless (eglot--stay-out-of-p 'imenu) (add-function :before-until (local 'imenu-create-index-function) #'eglot-imenu)) @@ -2166,7 +2168,8 @@ is not active." (get-text-property 0 'eglot--lsp-item c) :sortText) ""))))) - (metadata `(metadata . ((display-sort-function . ,sort-completions)))) + (metadata `(metadata (category . eglot) + (display-sort-function . ,sort-completions))) resp items (cached-proxies :none) (proxies (lambda () -- 2.39.2