[Info-vax] OT: Keypad picture wanted
seasoned_geek
roland at logikalsolutions.com
Fri Aug 21 12:41:39 EDT 2020
Since people have asked off-line.
I wanted to do some work with CopperSpice to see how different it is from Qt. (It is a fork of Qt 4.8 with all the icky nasty QML removed)
One of the founders of the project created Diamond as one of her kick the tires programs.
https://www.copperspice.com/documentation-diamond.html
She was trying to create an editor like the old Crimson/Emerald stuff that was Windows only. Back when I was forced to use a virus known as Windows I used to use those editors quite a bit. They filled a niche. Both projects have been long since abandoned.
This has been kind of like a perfect storm.
1) I got waxing nostalgic for COBOL. Started writing a book on GnuCOBOL. Was testing between GnuCOBOL and DEC COBOL on the Decuserve machine. Got really frustrated coming back from EDT/LSE and editing on my Linux desktop.
2) That lead me to find that Emacs could almost-kinda-sorta emulate EDT. You just had to map something other than NumLock for the GOLD key unless you wanted to hack a terminal definition. I don't know why, but it morally offends me when I have to hack a terminal definition to map the GOLD key, especially in the 2020s.I'm not good with Emacs so there was quite a bit of exploration/research which lead to a book on Emacs focusing on the EDT emulation rather than memorizing a shitload of cryptic key combinations. Book has not been out for editing, but is done and ready for first round. I just don't want to incur the expense right now. Three to five rounds of good professional editing by people who live and breathe the Chicago Manual of Style
3) Qt.io (the company behind the commercial version of Qt) has really pissed the (*&)(*&ing world off with their constantly changing licensing. They basically want everyone, including the OpenSource developers to support them in a lifestyle they would like to become accustomed to. Honestly, I think they are going out of business. In the qt-interest mailing list I've compared them to Wang many times. If you are old enough to remember when Wang changed their licensing so the OS license didn't follow the machine? That was right before they went under. They are making decisions much like Wang did.
4) A manager at a client site who has hired me to do Qt work multiple times was chatting with me and looking for alternatives. He wasn't going to pay never ending royalties either. That lead me to stumble into CopperSpice. A fork of Qt that has already ripped out most of the bad shit and is currently ripping out the rest. Since I'm not billable right now and wanted to so some coding I took a look at Diamond and CopperSpice.
I kinda liked what they had done with CopperSpice. It definitely has/had some bugs; but it was a single developer personal project they put up for OpenSource. What better way to really kick the tires on the package than hack a bunch of mods into Diamond. I'm even getting a blog series out of it.
https://www.logikalsolutions.com/wordpress/uncategorized/copperspice-and-diamond/
Blog is way behind though.
Themes took a lot longer to add than I wanted. I had to gut the logic that was tightly coupled with MainWindow. I created an Overlord singleton class to store the data rather than passing around a pointer to MainWindow and casting parent pointers to MainWindow and all other kinds of things. I know _how_ that happened. She got a single pane editor working then modified it to add tabs. If you aren't getting paid for it and it is only for yourself, why not take shortcuts? It was just an experimental project. While many have downloaded it, I'm the only one who said I was going to modify it. I check things in periodically here:
https://github.com/RolandHughes/diamond
Two big things I wanted were Themes and EDT keypad navigation. Themes are because at some points during the day I can deal with a white background and other times I need a darker background. It's an age and eyesight thing. One thing I haven't been able to solve with the Themes is the 3+ second lag when changing Themes and having multiple source files > 1400 lines open.They are using regular expressions for the syntax highlighting and doing the entire file in one chunk without allowing the main event loop time to process other things. If your files are 500 lines or less, it is just as snappy as you like. There is some kind of resource tipping point. The machine I'm using has 24Gig of RAM so I know it isn't starved for memory, just something in the library not doing something as well as it should.
I've started on the EDT keypad navigation now. Little if anything checked in for it. Much of the Themes stuff is complete and checked in. The branch, not the main.
I just thought there should be an editor that did keypad navigation close to right out there. The level of frustration I have after using LSE/EDT on Decuserve machine and coming back to Emacs, forgetting that it is now ScrollLock instead of NumLock really cannot be described.
That COBOL book was started many (possibly 6?) months ago. The reason it isn't done and ready for editing is because I kept getting pissed off switching between machines.
There are many other things I would like to see added to Diamond that hopefully won't turn it from something "light" to a 300 pound block of shit.
Astyle integration. (Artistic Style) http://astyle.sourceforge.net/astyle.html
One thing I __really__ liked about Emacs was being able to enable astyle-on-save. Pretty up the code automatically before saving. I would like it even more if it wouldn't just top working without rhyme or reason.
Either CPPCheck or Clan integration.
http://cppcheck.sourceforge.net/
I'm leaning towards CPPcheck because Clang is used by QtCreator and that IDE is really getting heavy.
Automatically highlight matching brace, paren, etc.
Get rid of the bug where File->New tends to blast the currently open tab. It can't always tell the tab is associated with a file.
Add a persistent option to it so it will save all open tabs not associated with a file in some cache area to reload at startup (if autoload enabled).
Find someone who actually knows regular expressions to fix the numeric constant expression I added to the CPP syntax file. I stole two different expressions from online that supposedly worked for all number formats and neither one did. I suck at regular expressions though so that may well all be my bad. Neither of them were in quotes when I found them and I may have butchered changes needed when appearing inside quotes.
I'm sure there are other oddities I want and can't think of right now. I'm also certain you didn't want a brain dump in email <Grin> I just needed to let my brain process a few things.
If I never touched VMS again, I probably wouldn't be doing this. I just have a very difficult time unlearning EDT keypad navigation after having done it for soooo many years. If Emacs could have mapped the Gold key without having to hack a terminal file, I probably wouldn't be doing this either.
So, if you are bored and like doing C++, join the Diamond editor project!
More information about the Info-vax
mailing list