On 29 March 2011 07:37, Colomban Wendling lists.ban@herbesfolles.org wrote:
Hi,
Le 28/03/2011 05:10, Lex Trotman a écrit :
On 28 March 2011 12:35, Thomas Martitz thomas.martitz@student.htw-berlin.de wrote:
On 27.03.2011 05:15, Lex Trotman wrote:
The question is can problems be introduced by not reparsing things, eg if we are editing a .h file, can that affect the symbols of the .c files that include it ... probably possible AFAICT.
AFAICT it is possible but unlikely since the only thing that would have this kind of "side effects" is the C/C++ (and probably D) preprocessor (e.g. if a constant changing conditional code changes). Not 100% sure though.
Actually the tag manager parses all options since it doesn't know how to evaluate the conditions and then gets confused when something gets defined twice :-)
But on further thought I don't think real-time parsing of only one file makes the problem in any way worse than non-real-time parsing so its ok.
Is there some easy way of triggering re-parsing of dependencies when the sidebar is about to swap to a different file? That way real-time update only needs to do the one file being edited, but no artifacts are introduced due to inconsistencies between when tags were parsed.
I don't know (without further search), but I'm not sure it'd resolve the "issue", since while editing file 1 you wouldn't get the changes from file 2. But again, not sure it's a real issue.
As above I don't think its a problem any more.
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.
Probably better to leave it as is rather than potentially use up memory, if its only done at save time.
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).
Ok, oh well, as above, I'm not sure it has any consequences, lets test it and see.
Cheers Lex
Hope this fixes the issue, feedback welcome. And guys, thanks a lot for tracking this down!
Cheers, Colomban _______________________________________________ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel