Eglot: filter by prefix in narrow-scope eglot-code-actions

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.
This commit is contained in:
João Távora 2024-01-01 15:12:28 -06:00
parent 6e2e34a5ca
commit 24741d2563

View 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)