General MM and MLisp improvements
For the past couple of days I've been quite busy. MM is shaping up to be a quite capable editor for my own personal needs.
I've been test driving it daily and didn't have the need to pull up Emacs. The one missing feature is Magit, my all time favourite Git client.
The most work went into decoupling the UI code from the editor primitives. All functionality in the editor is now exposed via MLisp functions so the editor is entirely extensible. I still need to do some cleanup so the builtin keybindings are sane but mm is now fully extensible via MLip!
Upon startup, mm reads all mlisp files in the directory $HOME/.mm/scripts so you have a clean place for your customizations.
I have also been doing some great work on the MLisp side! For a full overview head over to my MLisp site. Here is just a quick overview:
Keyword lookups
You can now do
(:key map) instead of the more verbose
(get :key map)
Match statement
(def response {:status :err :body "401: Unauthenticated"})
(match response
({:status :ok}
(print "Response OK!"))
({:status :err :body body}
(print (concat "Error in response: " body))))