]> git.eshelyaron.com Git - emacs.git/commitdiff
Eglot: declare eglot-lsp-context bound to non-nil
authorJoão Távora <joaotavora@gmail.com>
Fri, 22 Dec 2023 23:53:23 +0000 (17:53 -0600)
committerJoão Távora <joaotavora@gmail.com>
Fri, 22 Dec 2023 23:53:23 +0000 (17:53 -0600)
Otherwise, it'll be really hard to use it in the recommended fashion:

  (defun my/project-find-function (dir)
    (when-let ((match
                (and (bound-and-true-p eglot-lsp-context)
                     (locate-dominating-file dir "some-marker-file"))))
      `(transient . ,match)))

  (add-hook 'project-find-functions #'my/project-find-function)

because 'bound-and-true-p' will never return t even when the hook is called
from eglot--current-project.

Github-reference: https://github.com/joaotavora/eglot/discussions/1336
Github-reference: https://github.com/joaotavora/eglot/discussions/1337

* lisp/progmodes/eglot.el (eglot-lsp-context): Declare normally.

lisp/progmodes/eglot.el

index c849ff5c37e2f4fc21f5ef285757c86a7d86ea61..fc26e8fabbf57fa6fc718ae54e734da0d1fbaa24 100644 (file)
@@ -1289,9 +1289,8 @@ be guessed."
             guess)))
     (list managed-modes (eglot--current-project) class contact language-ids)))
 
-(defvar eglot-lsp-context)
-(put 'eglot-lsp-context 'variable-documentation
-     "Dynamically non-nil when searching for projects in LSP context.")
+(defvar eglot-lsp-context nil
+  "Dynamically non-nil when searching for projects in LSP context.")
 
 (defun eglot--current-project ()
   "Return a project object for Eglot's LSP purposes.