]> git.eshelyaron.com Git - emacs.git/commitdiff
Eglot: filter by prefix in narrow-scope eglot-code-actions
authorJoão Távora <joaotavora@gmail.com>
Mon, 1 Jan 2024 21:12:28 +0000 (15:12 -0600)
committerEshel Yaron <me@eshelyaron.com>
Tue, 2 Jan 2024 08:00:51 +0000 (09:00 +0100)
Github-reference: https://github.com/joaotavora/eglot/issues/847

Servers like typescript-language-server, when asked for {"only" :
"source.organizeImports"}, return actions with the
"source.organizeImports.ts" kind.  Eglot rejected these actions, but
according to the spec:

  Kinds are a hierarchical list of identifiers separated by `.` [...]
  The set of kinds is open.

So I guess we can use string-prefix-p

* lisp/progmodes/eglot.el (eglot-code-actions): Use string-prefix-p.

(cherry picked from commit 24741d25633084101ab697ba6e28f03e1cdc8b7a)

lisp/progmodes/eglot.el

index 048cf19213c5e9315034f76c5d330b673a272a5d..21f485bd34983f1e0241028f66d7a4d902f05f1f 100644 (file)
@@ -3649,7 +3649,8 @@ at point.  With prefix argument, prompt for ACTION-KIND."
          ;; Redo filtering, in case the `:only' didn't go through.
          (actions (cl-loop for a across actions
                            when (or (not action-kind)
-                                    (equal action-kind (plist-get a :kind)))
+                                    ;; github#847
+                                    (string-prefix-p action-kind (plist-get a :kind)))
                            collect a)))
     (if interactive
         (eglot--read-execute-code-action actions server action-kind)