in a perfect world it sounds (to me) like a LSP server should be able to give a "better" TOC-style symbols tree; but I get that in reality it's not what we get, and what we get is not better than TM -- if not undoubtedly worse.

It's not that - in general at least the better LSPs have better symbol information. But what you get from the LSP API is "symbol as it should be displayed in the symbol tree" and not "symbol information you can further process". So for instance what you get for Go symbols is this:

#3571 (comment)

where symbol name is for instance (*Mutex).Lock - it's completely alright for the symbol tree (and actually nice) but this isn't the symbol name. The TM-style symbol name is just Lock and Mutex is the scope (with Go it's a little more complicated as Lock isn't syntactically nested under Mutex, it just operates on the Mutex pointer type, so I'm not sure what ctags would return here). But the point is that you cannot process the result from the server in any way as you don't know in what format it is - you can just display it as it is and that's all. Also results can vary depending on the version of the language server and how its developers decide to present the symbols.


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <geany/geany/pull/3849/c2151098883@github.com>