The caboli
branch of the CodeSnip repo is where it is intended to:
- convert CodeSnip to compile with Delphi 11 Alexandria
- give the UI a major overhaul and polish.
ℹ️ "Caboli" is a Welsh language word that translates into English as to "polish" or to "buff".
Their have been several attempts, spanning 9 years, to create a radically different CodeSnip version 5. These plans all required a significant rewriting of the code base. All the attempts have failed because they were too ambitious. (See the pagoda
, pavilion
& belvedere
branches.)
The planned change of compiler & the UI overhaul were both to be included in the the v5 release. This left CodeSnip 4 looking more and more dated and being stuck with using Delphi XE as its compiler.
In the light of the failure of the ambitious attempts to rewrite the program, it seems prudent to take a more evolutionary approach to overhauling CodeSnip.
Looking at the wishlist of changes that CodeSnip 5 was supposed to include, it seems that the one change that is required before anything else can be implemented is the switch to a modern version of Delphi.
For various historical reasons, CodeSnip 4 can only be compiled successfully with Delphi XE. With a few changes it will compile with Delphi 11 Alexandria, but the UI is broken in the resulting executable.
Consequently the UI needs to be heavily revised so that it will work after compiling with Delphi 11. Therefore it makes sense to overhaul & modernise the UI at the same time as switching compilers.
All development will take place in the caboli
branch.
caboli
was branched from master
as of release v4.20.2. As new releases are made to master
, the changes will be merged into caboli
.
At present, any contributions should be made to the main develop
branch, not to caboli
.
After series of failures, its hard to say. However I think there's more chance of success this time, because this project, although requiring some significant changes, is nowhere near as ambitious as the CodeSnip 5 attempts. However, there's a problem getting font scaling to work - see Progress below.
As of 2023-04-03 I'm focussing on:
-
Getting the program to compile with Delphi 11.x and building as a 64 bit Windows target. So far so good. There are still some warning and hints to get rid of though.
-
Getting the main UI to work. The main form has been rebuilt from scratch, with the main UI components being in place. There are problems in styling the web browser control to play nicely with dark mode. Not done much about that yet.
-
Getting font scaling to work in the main UI and dialogue boxes for high DPI displays. All dialogue boxes have been recreated using a new folder class heirachy and label fonts have been sorted out. BUT font scaling is proving to be a major problem and that's where most of the effort is being spent. This is definitely the issue that may break this project.