> I agree, but I don't think TM is the right API at present for this purpose. 
> I'm just worried we're boxing ourselves in a corner if we expose a lot of the 
> API and then need to make massive sweeping changes to it in order to 
> accommodate useful APIs for plugins to provide these kinds of features.

IMO it's OK to break API if it doesn't happen too often and if there's a good 
reason for it so this wouldn't worry me much. 

I'm just afraid that we won't be able to find a common way to represent both 
ctags symbols (simple list), clang symbols (tree I guess) or whatever else may 
appear for any other language. Moreover I guess clang already provides some 
TM-like API you can use to perform queries so any functionality TM provides 
would be mostly redundant.

I think it will be necessary to keep them separate and provide e.g. some 
callbacks plugins can use to override autocompletion or calltips, provide 
symbols for the sidebar (some common tree-like representation would be 
necessary here but it shouldn't be too hard to find something) etc. It wouldn't 
actually be necessary to disable TM and ctags completely - they could still 
parse the files, you just wouldn't see their tags in the UI.

If it's like this you don't have to worry about what happens in TM - it would 
be just a parallel system that parses symbols independent of your own.

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

Reply via email to