/moldable-emacs

Adapting Emacs for moldable development

Primary LanguageEmacs LispGNU General Public License v3.0GPL-3.0

Moldable Emacs

This is an extension of Emacs aiming to enable Moldable Development. Or better still, aiming to make you a better story teller when you deal with code.

TODO: I will detail dependencies and more information in a later change.

Ah! This is a pretty alpha release: I have a plan for quite few changes ahead! So avoid to build upon this prototype for now!!

Installation

The suggested way to install this package is via use-package. This is my installation configuration:

(use-package moldable-emacs
  :init (if (f-directory-p "~/.emacs.d/lisp/moldable-emacs")
            (shell-command "cd ~/.emacs.d/lisp/moldable-emacs; git pull;")
          (shell-command "cd ~/.emacs.d/lisp/; git clone git@github.com:ag91/moldable-emacs.git"))
  :load-path "~/.emacs.d/lisp/moldable-emacs/"
  :bind (("C-c m m" . me/mold)
         ("C-c m f" . me/go-forward)
         ("C-c m b" . me/go-back)
         ("C-c m o" . me/open-at-point)
         ("C-c m d" . me/mold-docs)
         ("C-c m e a" . me/mold-add-last-example)
         )
  :config
  (require 'moldable-emacs)
  (add-to-list 'me/files-with-molds (concat (file-name-directory (symbol-file 'me/mold)) "molds/experiments.el")) ;; TODO this is relevant only if you have private molds
  (me/setup-molds))

I am working on making moldable-emacs itself explain which optional and external dependencies you may need for what, but it is still work in progress. For now an incomplete list from the top of my mind.

Emacs Dependencies

This package requires:

  • dash.el
  • s.el
  • async.el
  • ??? maybe I forgot something ???

Optionally:

  • esxml.el
  • emacs-tree-sitter.el
  • code-compass.el
  • ???

(Optional) External Dependencies

  • graph-cli
  • graphviz
  • imgclip
  • ???

Further info

View code duplication as an Org buffer

https://ag91.github.io/blog/2021/05/26/moldable-emacs-make-everything-moldable-through-lisp

Vision

https://ag91.github.io/blog/2021/06/18/moldable-emacs-vision-basic-concepts-and-design

Exploring JSON via Elisp

https://ag91.github.io/blog/2021/06/18/moldable-emacs-how-to-explore-json-via-elisp

[Setup] Clojure tree-sitter grammar installation

https://ag91.github.io/blog/2021/06/22/how-(simple-is)-to-install-a-clojure-tree-sitter-grammar-and-use-it-from-emacs/

OCR mold

https://ag91.github.io/blog/2021/07/16/moldable-emacs-capturing-text-from-open-images-with-an-ocr-mold

Grabbing hyperlinks from HTML with Playground

https://ag91.github.io/blog/2021/07/19/moldable-emacs-capture-links-from-html-with-playground/

Showing examples for a Clojure function at point

https://ag91.github.io/blog/2021/07/27/moldable-emacs-finding-examples-of-clojure-functions-(with-tests)/

Code transformation: edit your CSS files with a Playground!

https://ag91.github.io/blog/2021/08/11/moldable-emacs-editing-your-file-via-treesitter-(or-how-i-fixed-my-css-with-a-playground)/