During the past few days, I worked on a long requested feature. It’s still rough and needs some more time but they are coming: per project(folder) installations, instead of globally.
One thing I really wanted to get done for this feature, was a list of packages installed on a project directly visisble in the ProjectManager. Similar to what Visual Studio does. This took me some time but I’m happy to say: it works!
With Delphinus installed, projects have this node automatically. If unused, nothing is added to your projects. If used, the list of packages is saved/loaded. If Delphinus is not installed, nothing happens, but the data remains in the project for IDEs with Delphinus installed. This uses the documented ToolsApi interfaces to add project-properties, without causing conflicts.
From the tree, you’ll have control over the packages. You can remove/change installed ones directly or manage packages to open the Delphinus-Dialog.
Opening the dialog through this menu will run it within the context of the selected project. The title will show this accordingly.
So what can you expect from this feature?
In a first release, BPL (Designtime definetly, Runtime maybe) and experts are disabled, and will not install with the package. The reason for designers is a potential conflicting situation, where multiple loaded projects with the same packages but different versions have a designer. That’s not something the IDE was build for, therefore I’ll skipp this for now. Experts on the other hand are something which aren’t even designed to unload. The same expert in different versions is not something you want, when the only way to get rid of them is to quit the ide. Theoretically, exceptions apply to experts marked as hotreload in Delphinus, as i implemented reloading. But that’s not the norm.
Regarding runtime-packages, it’s more a matter of tooling than technical difficulties. Your project will compile and link using the dcp, however when your project starts, it’ll refuse to work because it can’t find the needed bpl, as project installed bpls will not land in the global bpl-directory for Delphi. To get this work, i’ll need to add some copy-operations to move the required bpls, when used, to your outputdirectory. Depending on the situation and time constraints, i MIGHT add this to the initial release, but it’s equally likely I’ll push that back for a later release.
Therefore, packages will most likely install as a source-only version, and compile along your project when you hit F9.
So, where do the installed packages get stored? By default, Delphinus will create the storage-repository in the same directory as your project. This will allow you to move it as one unit. The plan is to have multiple projects within the same directory reuse the storage so only one actual installation is on disk. My plan is to give you the option to change this, so you can define a global folder somewhere else, for all projects to share.
Thats it for today. Stay safe, stay healthy and STAY AT HOME!