Yes, Indigo creates a new type of DBPro Project file, and at a guess I'd assume that it's only compatible with the Indigo editor. If only using Indigo, it certainly doesn't mess up projects, but adds lots of cool functionality, such as relative directories. I know that some features are donate unlocked though, so perhaps what I'm talking about doesn't come in the free version.
Back on topic,
Here's a screenshot which shows how I structure my DBPro projects;
When I was new to creating projects, I used to try to develop "libraries" where I'd have, for example, my Mouse.DBA file being accessed by multiple projects, but eventually, as I became more advanced in my coding technique and I would update Mouse.DBA, my older projects would stop working with my newer library mouse code.
So to get around this problem I changed my workflow. I now date stamp my .DBA file names, and if I get bored of what I'm working on and wanna start up a new different project, I just have to duplicate the entire previous project, rename the duplicated files, and off I go. I found this much easier than trawling through old code and figuring out why it doesn't work with my new code.
So now if I add a new feature to my mouse code, that I think other older projects could eventually use, usually it's a simple case of copy & paste the new feature from the new Mouse.DBA into the old Mouse.DBA. The old project will continue to work as per the last time I worked on it, and thus adding a new feature is WAY more easier, fun & stimulating, than trying to bandaid old code to only then kick off your new feature... and further to this, if you're wasting time on fixing old code, well, chances are you'll burn out before even having a crack at your new idea/feature.
Also note that in my project example that I've never once called the #INCLUDE command, as it's simply not needed. All that's required, is for me to think;
"Hey, I need XBOX 360 controller commands in my new DBPro project... and I know I've coded this in a .DBA file before... ah, here it is! Now to copy the XBOX_old.DBA file, name the copy to today's date, and then add the new Xbox_new.DBA file to my project using the DBPro IDE "add" button."
Then, a quick check that there's no double up on variables or functions etc, usually it'll integrate without any problems. An example of my .DBA layout;
As you can see, nothing but Sub Routines & Functions, with the guts tucked away within.
Sub Routines;
`Usually a one off process, but not limited to being called only once. Not too worried about optimisation.
Setting up #Constants
Creating Globals
Declaring User Defined Types
Dim Arrays
Preparing DLL files
Pre-filling data into variables & arrays.
Functions;
`I like to think of my functions as something that my program will run lots of times. I always re-work functions to make them quicker, faster, better.
Defined #local variables
Manipulating & updating Arrays
Calling of DLL files
Parsing & processing data
It's important to also note that I'm an amateur at this stuff! But, what I've been doing here works. Some will argue for & against, I'm actually hoping someone here will chime in and say "oi, BFM, you're doing it wrong, do it this way instead!", as that's the only way I tend to learn.