OK, TM is still active, but that means I may get different results when using 
LSP vs TM. I.e. the list of symbols on the GUI may be different to what a 
plugin gets from quering TM. This potential inconsistency makes me nervous.

This is especially true since LSP may have more build system insights and 
perhaps knows which ifdefs are active and which are not, leading to some 
symbols being hidden or different locations for definitions.

>>  Instead I think we should use LSP to augment tagmanager so that we have all 
>> the needed bits within our problem space when "goto definition" is 
>> triggered. Then we can reason about the result. If TM data store is not 
>> suitable we should make the necessary modifications there to make LSP 
>> realistic.

> I have absolutely no idea what you mean by this. What do you mean by "reason 
> about the result"? The LSP server just returns the file name and line number 
> and I don't know what "reasoning" you want to do about it.

I mean with TM we have all data required to implement the features locally 
available. We can do smart things before the user triggers things or after 
based on that. With your LSP proposal we ask the external entity only when the 
user triggers the action and we have to hope for the best.

I would rather see that we mix-in LSP data (even if that overrides TM) 
beforehand/in the background. AFAIK you can get all symbols in a document 
through LSP. Then we can import that to our local data storage and implement 
goto-definition on-top of that (and here LSP may replace TM's document parsing 
or we invent some smart combination). 

That way other plugins can use LSP data the same way as TM data right now and 
there's no room for inconsistency.

Basically I'm saying:  TM can use LSP data, either exclusively (instead of 
parsing the file itself) or as an extra data source. Rest of Geany and plugins 
still interface with TM (may require changes here and there if LSP provides 
less data and someone was depending on that missing pieces, but I hope not).

-- 
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/3571#issuecomment-1793228746
You are receiving this because you are subscribed to this thread.

Message ID: <geany/geany/pull/3571/[email protected]>

Reply via email to