> 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:

https://github.com/geany/geany/pull/3571#issuecomment-1820900404

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 or view it on GitHub:
https://github.com/geany/geany/pull/3849#issuecomment-2151098883
You are receiving this because you are subscribed to this thread.

Message ID: <geany/geany/pull/3849/c2151098...@github.com>

Reply via email to