Question

I've defined a few read-macros in Common Lisp with square bracket delimiters, and I'd like to make Emacs indent those square brackets in the exactly same way as with parentheses.

For example, from this:

(mapcar [if (flag)
        :t 
        :f]
        my-list)

To this:

(mapcar [if (flag)
            :t
            :f]
        my-list)    

...which is what Emacs would do if the square brackets were parentheses.

How can I achieve that?

Was it helpful?

Solution

You need to tell Emacs that [ and ] are matching parentheses:

(modify-syntax-entry ?\[ "(]" lisp-mode-syntax-table)
(modify-syntax-entry ?\] ")[" lisp-mode-syntax-table)
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top