Diamond is cross platform. It runs on Linux and other platforms supported by CopperSpice. There are some things I would like to try adding and donating back to the community.
- Themes – Right now you can just set individual colors but I would like to enhance that part to add the ability to save named sets of colors. I intend to try setting up a few from the world of Emacs that I like so there should be half a dozen default themes if I’m successful.
- A decent default font – The one thing they seem to have kept is defaulting to Courier New for the font. On Linux this looks horrible. I have done a bit of work on this subject with my XpnsQt project. You can even find other posts on this blog talking about such things. Choosing a decent monospaced font for the default should be easy. I just have to dig into that first load code.
- EDT keypad emulation – One of the things that compelled me to write my Gui Emacs book was the fact I was working on a GnuCOBOL book and that was the “best” IDE for it. What made me really start to like Emacs was both the GUI and EDT keypad emulation. The downside in Emacs is they inexplicably cannot map the NumLock key to GOLD. I had to map ScrollLock. Annoying. It became a real issue when I started logging into an actual OpenVMS computer using correct keypad emulation. Switching between the two was brutal.
- Compiling – There is support for a Tools menu and I think a command line type compile prompt would be nice. It would be especially nice if I can catch the output in another tab/window/dialog and get double click type support to take one to the offending line of the offending file.
- COBOL syntax – I don’t know about providing Area-A, Area-B and indicator column support, but adding basic COBOL syntax support should be doable.
That would kind of round out the editor for general editing. After that I’m a bit torn. There are things I would like to see, but honestly, after getting Diamond to that base, I think I would have to take a stab at a fork to create CsCreator much like QtCreator exists for the Qt project.
- Project file support – Maybe, just maybe, adding a project navigator window driven my CMake files since that is what CopperSpice uses.
- Debugging support inspired by Gede. I tried that debugger with GnuCOBOL the other day and kind of like it. Not the same license so cannot be merged in, but I can be inspired by the functionality and create my own. I suck at GDB command line debugging anyway so this would be a skill builder for me.
- A forms designer – Assuming CopperSpice has any support for .ui files. Probably not as involved a one as QtCreator as there is tons of stuff I just don’t use in there. Much of it seems to cause problems. If you can’t map all of your signals and slots in there you shouldn’t be able to map any of them.
- If I have full project file support I can look into those helpful typing suggestions and clang type nagging letting one know they typed something wrong/not-yet-defined.
- Function key to toggle from header definition to source implementation would be nice as well.
- Source control support – Yeah, that would be nice, but I have GitKraken.