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).
Right. 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,
Thomas
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