Le 28/03/2011 22:37, Colomban Wendling a écrit :
[...]
Well its not really dependency aware, in the non-real-time version it does it by reparseing *all* files in the workspace when any one of them is saved, so there can be no inconsistency. It is the fact that its doing all of them on real-time update that is the performance problem, so we want to real-time parse only the file we are editing.
True. Moreover -- as far as I can understand the TagManager code (so, only more or less :D) -- the parent updates will not be done in-memory, so it's definitely a problem we should solve.
This is at least not totally true if I trust strace (no IO during these updates, in facts I had already checked this when I initially wrote the in-memory stuff). At least without geanyprj.
Not being certain what inconsistencies there might be, I'd suggest trying it, only parse the one file real-time and all the others at save time, ie apply Yura's patch (below) and see.
Agreed. However the patch would *always* disable updating parent, what we probably don't want (though, not really sure what it'd change). So I have modified it and committed it to SVN (r5642).
Hope this fixes the issue, feedback welcome. And guys, thanks a lot for tracking this down!
Unfortunately, this change broke calltips (see today's Nick's mail and my answer). I then reverted this, and we have to find a better fix. I'll try to track this further, though I can't promise anything in the next days, nor I know GeanyPRJ, so if anybody beat me in time, it'd be great :D
Regards, Colomban