On Thu, 22 Oct 2009 20:26:20 +1100, Lex wrote:
Hi,
2009/10/18 Lex Trotman elextr@gmail.com:
Hi all,
I had a email directly from one of my colleagues who has been reading this thread and had a question about the project filetype execute commands.
Here is part of her email (project name obscured to protect the guilty :-)
This looked exactly like what we need for the XXX project where it has to still support Python 2.4.
Since most files are coded with "if __MAIN__ then:" test code for this module, we want to run both the individual file to run the test code and we want to run the overall application.
From what you said if I edited the project file directly we could have both a filetype dependant and a non-filetype dependant command for the project which ran Python2.4, and when that project was closed everything would use Python3 as usual, perfect!!
Unfortunately I can't get project filetype executes to work at all and looking at the code I can't see where they are handled.
This raised two points:
- the project filetypes execute commands code is missing completely,
I have it in an old version in my personal bazaar repository but it never made it into SVN.
- because we have more than one execute command is it possible for
one to be filetype dependent and one to be non-filetype dependent. In fact it is and it works fine when there is no project open, but as discussed previously the dialog won't edit the filetype ones at the moment.
for 1. I will fix it first since it is a pre-requisite for the suggested solution to 2., this may also allow some simplification of the implementation due to better consistency.
Done in SVN. Didn't get any simpler though :-)
for 2. I had never considered having mixed filetype/non-filetype commands, but as my colleague has said it is reasonable, and she has identified a use for it already, and it already works for non-project commands (I tested it with HEAD)
But it did cause me to think about how the dialog should work. After much thought I suggest (I'll keep it as short as possible Enrico so I won't mention any alternatives)
There are four sets of execute commands to edit, project vs non-project which is addressed by having separate dialogs and for all filetypes vs for a specific filetype which is to be addressed by the "unobtrusive" check box selecting which is being edited.
In line with current practice if any command is overridden by a higher priority one then the higher priority one is shown but it will be insensitive. This ensures that the dialogs always show what will appear on the build menu when ok is selected.
If you edit a setting and switch the checkbox, the edit is saved in temporary storage until OK is clicked, so you can flick between all filetypes and filetype specific settings as many time as you want.
I made a prototype of this dialog, its terrible, very confusing, hard to tell what you are editing.
So I have made a temporary change in SVN to make the dialog save to the fieltype execute command for the build menu->set build commands dialog. The project dialog still stores execute commands for all fieltypes. This is how it used to work.
I will now take some time to look at an alternative build-system configuration dialog.
Sorry for so few feedback, real-life is biting, as you know.
I see your colleagues use-case but also please remind that not every user has such special needs. The goal of Geany's build system always was to provide a simple way of quickly compiling/build/running the current file for quick testing, not to fulfil a whole build setting requirement. The current build system just went into another direction and I think more and more if we shouldn't move some parts out either into plugins or something else, just to get it more to the previous way where it was usable without hours of reading...
Don't get me wrong, it's great what you have done but I'm just in doubt whether this is what we want in Geany. But also I realise that I'm kind of late and so probably changing it isn't worth at all. No idea.
Regards, Enrico