Picolisp-mode is an emacs mode for writing and evaluating picoLisp code on the go.
It still lacks some things like:

  • builtIn documentation
  • autoCompletion
  • Input filtering for the repl buffer (to avoid exiting on enter)

Nonetheless, you may find it pretty convenient to use, also because of it's ability to hide transient symbol's delimiting doubleQuotes and backslashes in escaped doubleQuotes (which increments readability by overwhelming margins).
Every emacs user here in the picoLisp crew at #picolisp (freenode) loves this, you may do so too ;-)

Some of the features it provides:

  • Syntax highlighting.
  • Trailing parens in multiLine s-exps are automatically spaced.
  • Hacks friendly auto indentation. (however I prefer a different style (I'll write about it later))
  • Transient symbols doubleQuote hiding. (often referred to as "Tsm")
  • A picolisp repl inside emacs.
  • Evaluate code from the file buffer.

I'll rewrite some parts of it and finish adding what's lacking as soon as I have time to do so, but in any case, it's fairly usable as it's right now :-)

Want a screenshot? http://arm.picolisp.org/pilmode.png
Want to see some action?


Or just go to lib/el where you'll always find the latest version.


Seeing that some of you have had some problems installing the picolisp-mode, I'll put a step by step guide here to get it running:

Add this to your ~/.emacs:
(add-to-list 'load-path "~/path/to/the/picolisp-mode/folder")
(load "tsm.el")
(autoload 'run-picolisp "inferior-picolisp")
(autoload 'picolisp-mode "picolisp" "Major mode for editing Picolisp." t)
(setq picolisp-program-name "~/path/to/picoLisp/plmod")

;; To get *Tsm rendering, you will have to manually enable it with
;; M-x tsm-mode or if you want to have *Tsm rendering out of
;; the box uncomment this:
; (add-hook 'picolisp-mode-hook (lambda () (tsm-mode)))
; (add-hook 'inferior-picolisp-mode-hook (lambda () (tsm-mode)))

Restart emacs (or eval that code with C-c C-r) and give it a try.

This should be enough, no auto-mode-alist entry is needed in the .emacs, unless you are using slime (which grabs almost all possible lisp file extensions). So, to override slime's doings in this regard, you may also need to add this entry to your .emacs:
(add-to-list 'auto-mode-alist '("\\.l$" . picolisp-mode))

Stay in tune for news about it (and don't forget to drop us a line on #picolisp at freenode, or I could lose interest in developing the picolisp-mode any further if it seems to me that no one cares about it.)

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License