Hi Guys,
I'm now a little confused, I think we have a terminology problem so let me spell out what I mean below. We can continue to try to sort out the best solution by discussion because I have a sudden family problem and will be away from home and work and unable to code anything for a couple of weeks. I will be able to continue discussion thanks to gmail being accessible anywhere. Perhaps we should slow the discussion down to every couple of days so as to not use too much of your time.
I am confused about what we each mean when we are talking about 'build' here, and looking back I am not sure I have been consistent in my usage either. So I suggest the terminology for this discussion:
1. Filetype commands, menu items labelled:
- compile,
- build which I suggest we call build(link) to distinguish it from other meanings of build and
- execute.
These commands depend on the filetype and and in the new build system will have user configurable menu label and commands stored in the user preferences directory (as is currently done for the commands only).
2. Preference commands, that is the menu items currently labelled 'make something', which I suggest we call make commands to distinguish them from the filetype build command. These commands will have configurable menu label and command stored in the user preference directory. These commands can also contain an override for the execute command.
3. Project commands which override preference commands (make commands) when a project is open. If changed whilst a project is open they will be stored in the project file. These commands can also contain an override for the execute command.
For most of this discussion on headers I have been talking about filetype commands because both preference and project make commands are independant of the type of file that is open. Having language specific commands in command sets that are present for all languages is not a nice solution. And if it is in project files then the user has to configure it again and again for each project.
Although having header compile as an extra filetype command can work, the build(link) menu item can do funny things if invoked on header files. This is probably fine for an expert like Nick but could be an issue for a beginner just trying things out, thats why I don't like having commands that are not useful available to users.
In the time that I'm away lets see if we can find a solution that doesn't have the problems I've listed above or in previous emails but is simple to implement. Thanks for your patience we will get there.
Cheers
Lex
On Mon, 17 Nov 2008 17:14:26 +0000, Nick Treleaven
<nick.treleaven@btinternet.com> wrote:
>Hi,
>
>On Wed, 12 Nov 2008 14:23:47 +1100
>"Lex Trotman" <elextr@gmail.com> wrote:
>
>> 3. Use custom commands, but we still have the two commands problem
>> from the item above and this is something that Geany really should
>> offer its users as standard, not requiring them to configure it.
>>
>> 4. Use project/user preference commands. Now unwanted commands are
>> visible on all languages which is worse, and we have the same problem
>> that it should be standard.
>
>My thoughts are that for a compile header command, this can be an
>_extra_ build command, so not losing compile, build, etc. As I
>originally said, ideally we wouldn't limit how many commands the user
>can run, it's up to them.
>
>So, _if_ compiling a header is a generic command for a filetype, have
>an extra build command configured for the C++ filetype (and C if you
>want).
>
>But more likely, compiling a header requires the include arguments for
>library headers, etc, so it would make more sense as an extra project
>command.
>
>But either of these can work with a simple build system. The only
>disadvantage I can see is that you would have to remember to use a
>different command from the usual compile/build/whatever you use for
>source files. But I think this is reasonable.
I fully agree on this. This is basically what I suggested yesterday
(except for that I thought of using a header compile command as one
of filetype commands and not project commands).
Regards,
Enrico
--
Get my GPG key from http://www.uvena.de/pub.asc
_______________________________________________
Geany-devel mailing list
Geany-devel@uvena.de
http://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel