I mentioned in an earlier email that I felt I needed to at least investigate the possibility of using Climacs as the substrate for Vial. This weekend I have seriously investigated it. Basically, something of the order of 90% of things that Vial wants to do, Climacs also wants to do. So the good news is that there is a lot of potential for reuse, things like buffer management, syntax highlighting, basic editing commands, etc. The bad news is that Climacs is big and will take time to figure out, and converting it to use Vi style key handling is a big issue. Also, lots of Climacs assumes that it is in a Clim environment. This adds up to a huge task to take some of Climacs and no Clim and make something work. I prefer to develop incrementally, with small improvements. With that in mind here is my rough proposal for Vial's development.
1) Continue work on the current version of Vial until it has support for Slime, which is my original and main goal. This Vial will have the following features/bugs: - not aiming for exact Vim replication. - core editing features only, fancy features (macros, visual mode, correct syntax highlighting) are not implemented unless really required - code is allowed to be somewhat ugly as this version is almost a complete throw away - minor bugs will be tolerated as long as they are well known - The major feature that must be well coded is the Slime support, it is potentially the only part that will be kept. - At this stage we have a good debugger, and an acceptable editor.
2) There is ongoing Climacs work to make the key handling more general, so general that it will support Vi style modes. Hopefully by the time #1 is ready, this support will be part of Climacs. At this stage I will attempt to: - Integrate Vi style key handling and bindings into Climacs - Integrate Slime support into Climacs. - This will be Vial v2, I may stop here.
3) I'm largely a console guy, long term I would like to see a fancy Vial running in a terminal. This would be done by implementing an Ncurses backend for McClim.
So, although I've spend much of the weekend trying to tease apart Climacs, ultimately I think I will go with the "worse is better" approach and continue with the code base I currently have. The major change in my thinking is that the current code base just became a throw-away item, and what is acceptable for the editing features dropped. I think that Vial is currently almost an acceptable editor, so I will now work on Slime support.
Cheers Brad