On Wed, 12 Sep 2012 11:35:48 +1000 Lex Trotman elextr@gmail.com wrote:
[...]
So what should geany.conf contain? If the interface preferences remain there, we still must "rush at quit time" to save it...
Getting buried in specifics far too early, need to get the principles right first, but in general "interface" things that are changed rarely, like window layouts, would be in geany.conf, things like search data is definitely session. I'm sure there is more discussion here :)
Since it's an early discussion, I have a proposition for something I always wanted to have in the other IDE-s: several sessions per project.
For example, currently I have one project for Geany sm, another for regenerating my patches (the ones in sf patch tracker except sm, plus some others), and I usually open another (temporary) project when working on something else. Aside from the session, these projects are, and must be, absolutely identical. So:
The project menu contains a "Sessions" item, which displays a dialog to add/remove/switch to a session.
Each new project starts with a Default session, which can not be deleted.
Whoever prefers a project for each session can simply ignore "Sessions".
Possible storage:
$project.geany contains an UUID.
$confdir/UUID contains a list of names sessions and the interface options, including the current session name.
The larger a project, the more useful several sessions will be.
I'm not sure about several project-less sessions. It will be somewhat confusing - should I use a project, or only a session? - but OTOH, the line between projects and sessions will be drawn once and for all: a project has it's own set of options, while a session is simply a set of files.
RFC.
(Note: the project files currectly contain the settings from Project -> Properties and a session, but no "interface" options. The plugins can only place their own settings in the projects either, except by using the Project -> Properties dialog.)
Plugins access to the project files is another discussion.
They must be discussed at some later point, we have "save-settings" and "project-save".