On Tue, 20 Jan 2009 17:23:42 +1100, "Lex Trotman" elextr@gmail.com wrote:
Hey Lex,
Sorry for the long silence, I had a family health problem which had me away from home and with only access to email, no upload or download.
Hope things will get better soon.
The C++ work I have done in the meantime has re-inforced my desire to be able to at least compile C++ headers by themselves to get out the syntax typos because they tend to cause a lot of "flow on" errors in the .cpp file and C++ generates such enormous error messages (see http://www.parashift.com/c++-faq-lite/templates.html#faq-35.17 for an example). Also I have noticed that Geany 0.15 is very slow when there are lots of errors, maybe the regex parse is a bit slow, anyway that
Unless you set custom regexps in filetypes.cpp yourself, Geany won't use them by default (for C/C++), instead it parses the output by cutting the error message string using C/Glib string functions. Anyway, I think the snowiness comes more from adding the error message string to the compiler messages window. Though I don't think this is a big issue, we could maybe execute the build command (g_spawn_async_with_pipes()) in another thread including the parsing, and then write the result into a temporary buffer which is read by the main thread and fills the compiler messages window. This could work in theory thus needs a lot work and code re-organising plus carefully writing the separate thread as there can't be any GTK code. Additionally, single core machines probably won't benefit from this separation. So, if we want to do this, we should do this afterwards.
The question seems to be how we handle having different commands for the header files (different to the .cpp files that is) without creating new filetypes for them.
I still don't know why compiling header files can't be done using with one of the configurable filetype commands you are about to implement. Users who want compile headers simply add a third command for it (or we add it by default, doesn't matter).
My last proposal was for a "variant" of the filetype which allowed different commands. The variant was identified by a subset of the filetypes extensions. This is a slightly general solution configurable in the filetypes or preferences files, or another option is something hard coded specifically for header files, not my favourite :(.
IIRC we decided to not go this way, but I might be wrong. And currently, I don't have the time to deeply get into this discussion again since there are so many other problems and discussions around here at the moment plus we are heavily going to the next release (mid February maybe).
Regards, Enrico