Sorry, a little busy with the LSP plugin :-).

> I believe the behavior is still the same. I just moved the code around a bit, 
> so only difference should be in timing. It parses each file separately, 
> storing the result in data->source_files and 
> tm_workspace_add_source_files(data->source_files) is called only once, after 
> all files are processed.

I think you misunderstand how it works - `tm_workspace_add_source_files()` is 
the function that performs the parsing, `tm_source_file_new()` just creates a 
kind of handle representing the file. So if you wanted to keep the UI kind of 
responsive while the project is parsed, you'd have to add the files one by one 
using `tm_workspace_add_source_file()` but this would lead to the performance 
problem I mentioned.

And, in addition, each this addition would have to happen in a separate idle 
call (with priority LOW) so you'd give GTK chance to process other events if 
you wanted to have the UI partially responsive. Now my preference in this 
respect is to rather have the UI stuck for a while and fully working afterwards 
than semi-working for a longer time.

> The problem is that I'm used to work on remote sources over sshfs, which adds 
> more overhead.

Ah, OK, that's the problem then.

> Anyway, I'm quite okay if you say neither of those two PRs is worth the 
> trouble. It was a nice exercise in C and I learned bit more about geany 
> internals and plugins, so I've gained something if the code is not merged in 
> the end.

It's just a matter of the UI but to me the "stuck while nothing is loaded" 
looks better than "stuck while everything seems to be loaded and ready". I 
agree it's a bit stupid to parse the files twice but I'd prefer the UI to 
behave the way it works now.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany-plugins/issues/1289#issuecomment-1807935349
You are receiving this because you are subscribed to this thread.

Message ID: <geany/geany-plugins/issues/1289/[email protected]>

Reply via email to