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

Reply via email to