diff options
author | João Távora <joaotavora@gmail.com> | 2022-12-11 23:16:58 +0000 |
---|---|---|
committer | João Távora <joaotavora@gmail.com> | 2022-12-11 23:21:40 +0000 |
commit | d3669cfe156f43ca17b5d804fc9fd7fa1f8b0e26 (patch) | |
tree | c6428cc940ee7c1daeb1afc4a57af6dda2a17295 | |
parent | 04b7e01885db04e0512f5a5519ad2ac5b3dd2180 (diff) | |
download | emacs-d3669cfe156f43ca17b5d804fc9fd7fa1f8b0e26.tar.gz emacs-d3669cfe156f43ca17b5d804fc9fd7fa1f8b0e26.tar.bz2 emacs-d3669cfe156f43ca17b5d804fc9fd7fa1f8b0e26.zip |
Eglot: allow skipping compile-time warnings about LSP interfaces
* lisp/progmodes/eglot.el (eglot-strict-mode): Add 'no-unknown-interfaces'.
(eglot--check-object): Honour new eglot-strict-mode value.
-rw-r--r-- | lisp/progmodes/eglot.el | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el index 2ef022992e7..2427e7b9d31 100644 --- a/lisp/progmodes/eglot.el +++ b/lisp/progmodes/eglot.el @@ -499,7 +499,7 @@ Here's what an element of this alist might look like: ;; disallow-non-standard-keys ;; enforce-required-keys ;; enforce-optional-keys - ) + no-unknown-interfaces) "How strictly to check LSP interfaces at compile- and run-time. Value is a list of symbols (if the list is empty, no checks are @@ -520,7 +520,10 @@ happens at run-time. At compile-time, a warning is raised if a destructuring spec doesn't use all optional fields. If the symbol `disallow-unknown-methods' is present, Eglot warns -on unknown notifications and errors on unknown requests.")) +on unknown notifications and errors on unknown requests. + +If the symbol `no-unknown-interfaces' is present, Eglot warns at +compile time if an undeclared LSP interface is used.")) (cl-defun eglot--check-object (interface-name object @@ -594,7 +597,7 @@ on unknown notifications and errors on unknown requests.")) (when missing-out (byte-compile-warn "Destructuring for %s is missing out on %s" interface-name missing-out)))) - (t + ((memq 'no-unknown-interfaces eglot-strict-mode) (byte-compile-warn "Unknown LSP interface %s" interface-name)))))) (cl-defmacro eglot--dbind (vars object &body body) |