The sidebar symbols both offer goto-implementation (click on a function) and calltips (mouse-over tooltip). But in the sidebar you don't have a cursor position. I do not see how you can possibly implement the two functionalities using the LSP interfaces designed for that purposes, but using the intended interfaces - and only those - is @techee entire argument.

So to my understanding both sidebar features have to be implemented using the fallback.

I think you misunderstand the purpose of the goto-implementation, signature and documentSymbol calls:

Now documentSymbol:

But the fallback, as proposed in this PR, relies entirely on TM backed by ctags parsing.

No, this PR uses documentSymbol symbols for the sidebar (shows symbol name in the tree, shows "detail" as the calltip, generates tree based on children and assigns icon based on kind). I was just suggesting that if this PR is considered too big, I could sacrifice this LSP feature and could live with the TM implementation.

I can believe that you or @techee don't care about goto-implementation and calltips enough on the sidebar but I do.

But this works, I really don't know what you are talking about. Have you actually tried the bloody plugin? It's a few minutes of your time to install and test it - would really save hours of pointless discussions.

Hopefully it won't do nothing if I accidentally call a private function that is not available from the call site in question. I still want to jump to the implementation in that case.

Try it and see how clangd behaves. I would expect it to be reasonably fuzzy. When we mention "accurate", we mean that when you have hundreds of methods called get() in your C++ project, the goto will jump to the right one instead of showing a list of 100 gets.


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/3571/c1793807970@github.com>