[Github-comments] [geany/geany] Load only necessary tags on demand (#2546)

elextr notifications at xxxxx
Sun Jul 12 22:51:40 UTC 2020


Your three improvements are of course possible with enough programming, but some of the pitfalls are:

1. would require some way of associating `#include <sys/tags.h>` with a specific tag file, tag files do not have the paths of the files they come from in the names, and even if they did Geany does not recognise `include`, `import`, `using` or whatever other instruction the language uses.  Of course if the source (the `sys/tags.h`) was in the tag file contents then the tags files have to be read to find it, so might just as well be loaded anyway, and of course the solution has to work for languages that are not C as well.  Loading all tags associated with a specific language, as used now, is the only way thats common to all languages.

2. showing loading progress would require knowing how many tags are going to be loaded, so the progress can be measured, but the number of tags in a file isn't available until its loaded, which is kind of too late.  It would be possible to count files as a very rough guide, pull requests are welcome.

3. the tagmanager code (in fact all Geany code) is not re-entrant so either it would have to block the front end from accessing symbols while the tags load, which would not be much of an improvement, or finer grained locking would need to be added which would slow down both the front end and the background access and would require a great deal of careful work to not include races or deadlocks.

As I said its just a MMof lotsOP and somebodys got to do it, pull requests are welcome but due to the likely complexity may take considerable time to be accepted.

Or if you only want to do a C specific capability you possibly could make a plugin that read and recognised the `#include`s and loaded specific tags from a directory Geany doesn't know about.  I think all the relevant functionality is in the plugin API, or could be added with suitable pull requests.

-- 
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/issues/2546#issuecomment-657287054
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.geany.org/pipermail/github-comments/attachments/20200712/61a4586b/attachment.htm>


More information about the Github-comments mailing list