ale icon indicating copy to clipboard operation
ale copied to clipboard

Support connecting to multiple LSP servers for a single buffer

Open w0rp opened this issue 7 years ago • 3 comments

For features other than getting diagnostics, ALE just looks for the first LSP linter it can find that's enabled, and sends messages to that server. Some considerations should be made for either sending messages to multiple servers and combining the results in some way, or selecting which servers to use.

w0rp avatar Jul 03 '18 07:07 w0rp

Go to definition currently sends messages to everything available, but probably jumps many times. It should probably be modified to send all of the messages, but jump once.

Find references send messages to everything available, but probably sets the menu many times. The results could be combined.

Hover sends messages to everything, and will try different results. Perhaps this should take the first non-empty one?

Completion sends messages to everything, and will probably replace the results. The items should probably be combined instead.

I think some options should be added for selecting which server will be used for each feature, so you can use one for completion, and another for finding references. You can already ignore diagnostics for given servers.

w0rp avatar Jul 03 '18 07:07 w0rp

Now completion requests are only sent to the first server that supports them.

w0rp avatar Jul 22 '18 20:07 w0rp

This is still open. What's the current state? c4eca7c417945a684949342da8d0ab30e6c82b3a limited LSP connections per project to one, and I don't see anything else changing that since then (grepping around for request_id, s:connections, and conn_id).

Are different approaches still being considered?

bb010g avatar Nov 08 '19 22:11 bb010g