[Geany-Devel] GEANY - New behaviour of "close" document action to close only tabs

Thomas Young thomasyoung at free.fr
Tue Jan 22 08:15:46 UTC 2013

Hi all,

 > One thing that's different from Geany from other IDEs I've used is that
 > it doesn't have "files in the project" but rather just stores "where are
 > the project's files" (ie. base path).

Speaking for myself, and the build setup I'm working with right now, 
this actually suits me very well.

Essentially, the set of files for a 'project' for me is defined as 'all 
the source files under a specified root directory'.
And this then fits in well with the way Geany works, because I can add 
new source files just by creating files, or copying and renaming 
existing files, and so on, without any additional 'add to project' 
action required.

(And from various posts I've seen, I have a feeling that quite a lot of 
people have some kind of similar project setup now.)

One thing that _doesn't_ fit in so well with the geany (core) paradigm 
is the 'go to tag definition' feature (which is included in Geany core).

I have a build setup on Windows, also, with MSVC, and for comparison in 
that case I actually need to run a script to update visual studio 
project files after adding a new object, and depend on visual studio 
detecting this and offering to reload the project.

But then, after it reloads the project file, it then knows about all of 
the relevant source code and can do this properly (if you give it a bit 
of time to update it's source code indexing in the background).

In Geany, however, in order for the 'go to tag definition' feature to 
work you actually need to make sure you have the source code file that 
defines the tag loaded.
So, for this to actually be useful in the general case, you _do_ 
actually need to have your whole set of project files loaded.

So, this is actually completely inconsistent with the whole simple 'list 
of open files is a session and there is no list of files in project' 
paradigm being discussed, I think, and is then also confusing and 
misleading for people starting to use Geany, as well as complicating the 
core source code and dependencies.
So, I suggest that this whole 'tag' based code analysis thing should 
actually be _removed_ from Geany core (and perhaps moved into one of the 
project management plugins)!

(As an aside, for myself, I'm managed to hack something up that uses 
libClang to lookup references, that doesn't need know about the whole 
set of project files in order to work. It actually just executes the 
corresponding compile command within libClang each time you click 
'lookup reference', and so fits in quite nicely with the 'no list of 
files in project' paradigm..)

Best regards,


On 22/01/13 02:58, Matthew Brush wrote:
> On 13-01-21 04:19 PM, vadim kochan wrote:
>> May be the missunderstanding comes from
>> different terms which we use:
>> - I use the term "project" and by this I mean that files which I
>> loaded into
>> sidebar will stay here (most of them) for a some long time.
>> - You use the term "session", and probably it means you want use loaded
>> files
>> for some short time?
>> Actually this "tab" behaviour is standart for most of the IDE I has been
>> used.
> One thing that's different from Geany from other IDEs I've used is that
> it doesn't have "files in the project" but rather just stores "where are
> the project's files" (ie. base path). For example in XCode or VS, you
> have to "add files to the project" because they do all kinds of nice
> stuff like compiling everything together for release/debug/etc,
> precompiled headers, on-the-fly "smart" completion, debugging, semantic
> highlighting, inter-project/solution dependencies, refactorings, etc.
> Most of this kind of fancy stuff needs to actually know all of the files
> because it needs to be able to always build the project's target(s).
> Geany's core is not this advanced (on purpose), so it's just basically
> when you set a project path, you tell Geany the default location of the
> file chooser dialog box for opening files and stuff, and as a bonus, it
> remembers which files you had open separately from those you had open
> without a project loaded.
> As mentioned by others, it sounds like you're wanting the Tree Browser
> plugin since it can show all your project's files and allow you to
> rapidly access them without keeping their tabs open, somewhat similar to
> like you'd have in XCode, VS or Eclipse.
> Cheers,
> Matthew Brush

More information about the Devel mailing list