> 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
