Hi Stephen,

Look in the bug tracker: there's someone implementing a better
progress indicator with an implementation that looks very good
from what I've seen so far and uses LSP interfaces.

Here it is: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=59149

We can/should try to coalesce the "eglot--spinner" with that.

Thanks,
João


On Fri, Nov 18, 2022 at 8:27 AM Stephen Leake <stephen_leake@stephe-leake.org> wrote:
The only uses of eglot--spinner in eglot.el are:

eglot--mode-line-format, where it is added to the mode line.

eglot--signal-textDocument/didChange, where it is set to (list nil
:textDocument/didChange t), meaning didChange is done. Because this is
set to done, it is not actually displayed in the modeline.

For ada-mode, I'd like to use eglot--spinner to show "indexing"
progress; the server is parsing all the files in the project, collecting
cross reference information, which takes a while. The user needs to know
when it is done; then they can use cross reference commands.

So I'd like to delete setting eglot--spinner in
eglot--signal-textDocument/didChange; otherwise that will overwrite the
indexing progress when a buffer is edited.

This would also imply making eglot--spinner public.

That then raises the issue of future conflicting uses of eglot-spinner.
So perhaps it would be better for ada-mode to add another item to the
mode line? To do that requires a hook in eglot--mode-line-format, so it
is grouped with the other eglot-derived mode line items.

--
-- Stephe


--
João Távora