On 03/11/2011 23:46, Lex Trotman wrote:
On 4 November 2011 01:45, Nick Treleaven<nick.trelea...@btinternet.com>  wrote:
My solution:

A foo.geanystub project file goes in version control. It is never written
to. It should be prepared by manually editing a copy of a local project
file.

On opening a foo.geanystub file, Geany creates foo.geany in the same path
then opens it.

When opening foo.geany, if foo.geanystub exists, then override settings with
the stub contents.

This way the VC file can decide which settings are not overridable.

My solution shouldn't require much code to implement. I've only noted the
bare bones of it, there are some things that could be added to make it
better. Even with these I think it's simpler and neater.

Hi Nick,

I like simple, why don't we just add a setting to projects, say "based
on", that allows a project file to import settings from another.  Then
the user project is "based on" the one in the VCS working directory.
Simple and explicit and can adapt to any locations, on opening the
project, settings are taken from the "based on" file if it exists and
the setting exists unless it is overridden by the user project file.
Based on is not recursive.

I see that 'based on' could be useful for making subprojects, and could be added to my proposal.

Note that this requires that projects not write a setting unless it is
set by the user, that is not always the case now IIRC and is an added
complication.

I don't think this is a good requirement. Plugins already can write settings so I think it will be hard to enforce. But also rewriting existing code can be avoided and would be better.

Rewriting code is what made me think supporting VCS project files was not worth it, but if that can be avoided and the new code is fairly minimal I think it's acceptable.

This way the VCS file is still a project file and can be edited using
the Geany UI, albeit at the cost of writing session crap into it, but
as that is overridden by the user session crap on next open so it
doesn't matter.

I know that using Geany to create the VCS project would be easier, but stub creation is something that needs to be done rarely. I don't think it's worth rewriting existing code to support something that gets used rarely - use of projects depending on a stub is something that might be a popular feature (I realized eventually ;-)), but the actual stub creation and modifications is probably rare.

I think having a separate filetype for the VCS file is good design because it shouldn't be written to, so it is different from a normal geany project file.
_______________________________________________
Geany-devel mailing list
Geany-devel@uvena.de
https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel

Reply via email to