On 13 August 2011 12:13, Martin wrote: > Lazarus defers the scan for highlight+folding (one and the same) as well as > finding the longest line (required for horiz scrollbar). Both of them are > done once lazarus is fully operational, within idle, or if the tab is > selected.
Would multi-threading help here - instead of idle timer process (which probably limits all the work to a single processor? Especially on today's multi-core CPU's? eg: create a thread pool of say 4 or 8 threads. Then hand each task required per tab (highlighting, folding, codetools processing etc) to a thread as they become available in the pool. Maximize the usage of available processors/cores, that is what they are there for. Just a thought. > tabs / MSEide does not use the widgetset, hence it doesn't need to allocate > handles for each tab (I guess) I'm not sure how MSEide handles or allocates tabs, but I do know (from speaking to Martin) that MSEide only has one editor component instance. As you swap tabs, the buffer content of the editor component changes to that file. I have no idea how Lazarus handles this. Would you mind explaining, I'm just curious. > actually look decent. And I don't even know if geany has something like > codetools... I hear a lot of talk about CodeTools. What exactly does it do? I'm just asking, because if it's about generating code etc, MSEide seems to be doing a great job too. Code-Completion, code templates, syntax highlighting, code navigation etc are all possible and working well in MSEide. So I guess my question is, what does CodeTools do, and what does SynEdit (the editor component in Lararus) do? -- Regards, - Graeme - _______________________________________________ fpGUI - a cross-platform Free Pascal GUI toolkit http://fpgui.sourceforge.net -- _______________________________________________ Lazarus mailing list [email protected] http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
