Emacs: Xah Emacs Lisp Mode
This is the home page of xah-elisp-mode, a major mode for emacs lisp.
Download here: https://github.com/xahlee/xah-elisp-mode
Also on MELPA http://melpa.org/#/xah-elisp-mode 〔➤ Emacs: How to Install Packages Using ELPA, MELPA〕
For any problems, file a report on github, or comment here.
- Semantic syntax coloring. Emacs lisp words are colored by their purpose. (for 99% statistically most frequently used elisp functions.)
- Keyword completion with
ido-modeinterface. Press Tab ↹ after a word to complete symbol.
- Function templates. (press Space after full name.)
- 1 to 4 letters abbrevs for top 50 most used functions. e.g. “bsnp” Space → “buffer-substring-no-properties”.
- Smart prettify code. Press Tab ↹ before a word (or at end of paren) to reformat entire sexp tree.
No dependency on third-party package. Only require bare GNU emacs.
Single-letter abbrevs are:
- d → defun
- i → insert
- l → let
- m → message
- p → point
- s → setq
- w → when
list-abbrevs to see the full list.
Yasnippt, Auto-Complete, Company Mode
xah-elisp-mode is designed WITHOUT using them. I haven't had time to make them all work. But if you want to, just ask me in comment.
there are still some big tasks to do.
- More refined classification of elisp keyword types. (research on different classification, and implement a way to grab ALL emacs lisp symbols with automated template) 〔➤ Syntax Coloring in Editors〕
- Automatic formatting, including join lines or separate lines. (⁖ toggle a sexp tree into single line or multiple lines.) Or, reformat whole buffer, file, directory. See: Programing: Lisp: Automatic Code Formatting, Lint, Auto Indentation
- full-featured semantic-based extend selection beyond gnu emacs builtin lisp parser provides. See: A Text Editor Feature: Extend Selection by Semantic Unit (without requiring expand-region package)
- 100% structure-aware editing. Any key you press or command you call will be lisp syntax aware, so that invalid syntax isn't possible. Note: paredit mode is opposite of this.
If you would like these features, different from traditional idea of line-based indentation, please do donate.
PayPal to 〔firstname.lastname@example.org〕. In the comment box, say “fund for elisp mode”.
or, Buy Xah Emacs Tutorial and add a comment “fund for elisp mode”.