~theo/elsp

Clean up even more
Working, but cleaner capf

Also, make some functions non-private
Add code lens and clean up things
Introduce dispatching of elsp-request
Reintroduce deferred hack
Start implementing the api
First fork commit
9665359b — Ingo Lohmar 3 years ago
Fix workspace/configuration handling when given scopeUri directory

The path returned by eglot--uri-to-path is mostly used for file paths,
and therefore does not end with a slash.  Such a no-trailing-slash path
violates what default-directory demands (per its docstring), which
causes hack-dir-local-variables-non-file-buffer to not find the
appropriate dir-local vars.
c17bdf6c — João Távora 3 years ago
Fixup last commit

Per #726.

I'm still not entirely convinced using all-completion here is a good
idea.  As usual the completion list we get from the server is
pre-filtered to whatever the server wishes.  Letting the completion
style do its own filtering (most completion styles use
completion-regexp-list and all-completions themselves) is completely
useless here.

Let's hope it's not harmful.

* eglot.el (eglot-completion-at-point): Fix all-completions call
9b63f21e — João Távora 3 years ago
Respect completion-regexp-alist in Eglot's completion table

See GitHub discussion #726

Suggested-by: Felicián Németh <felician.nemeth@gmail.com>
Suggested-by: JD Smith

* eglot (eglot-completion-at-point): use all-completions.
122dbb9d — João Távora 3 years ago
Fix typo in user-visible eglot-ignored-server-capabilities

The name with the typo, eglot-ignored-server-capabilites, is still
supported.

Per #724.

* NEWS.md: Mention change

* eglot.el (eglot-ignored-server-capabilities): New defcustom.
a697084d — João Távora 3 years ago
Fix #719: fall back to prompting user if eglot-alternatives fails

* eglot.el (eglot-alternatives): Don't error in interactive case.
cbb1da42 — João Távora 3 years ago
Let eglot-flymake-backend be in flymake-d-functions even if Eglot off

This is useful when using  eglot-stay-out-of and a pattern like:

   (defun my/js-mode-hook ()
     (add-hook 'flymake-diagnostic-functions 'some-eslint-backend nil t))
     (setq-local eglot-stay-out-of '(flymake))
     (add-hook 'flymake-diagnostic-functions 'eglot-flymake-backend nil t))

   (add-hook 'js-mode-hook 'my/js-mode-hook)

Then, _both_ backends will run unconditionally, but Eglot backend only
actually reports diagnostics if Eglot is on.

* eglot.el (eglot-flymake-backend): If buffer isn't being managed
by Eglot, behave as a noop.
194b178e — Brian Leung 4 years ago
Close #712: Add support for LocationLink

Fix #711.

LocationLink was added in version 3.14 of the protocol and is
sometimes used in lieu of Location for definition- and
reference-related requests.

* eglot.el (eglot--lsp-interface-alist): Update with LocationLink.
(eglot-client-capabilities): Advertise
textDocument.{definition,declaration,implementation,typeDefinition}.linkSupport.
(eglot--lsp-xrefs-for-method): Accept LocationLinks.

Co-authored-by: João Távora <joaotavora@gmail.com
Next
Do not follow this link