On Wed, Aug 01 2012, Evrim Ulu wrote:
Hello,
Ok, no problem, let's assume the symbol is interned on only a single package.
I've modified symbol-indentation (symbol) function to return something else on some specific symbols.
Yet, i cannot make the indentation work.
My answer is probably there, yet I dont know which value to set:
(put 'my-symbol 'common-lisp-indent-function ..??)
http://www.gnu.org/software/emacs/manual/html_node/elisp/Indenting-Macros.ht...
It seems that you want to indent like so
(html :attr1 val1 :attr2 val2 (body ...))
I'm not aware of a standard indentation function that does that, but you can write your own. E.g.:
(put 'html 'common-lisp-indent-function 'my-html-indent)
(defun my-html-indent (path state indent-point sexp-column normal-indent) (let* ((pos (car path)) (start (elt state 1)) (attrs (my-html-indent-count-attributes start (point)))) (cond ((> pos attrs) (+ sexp-column 1)) (t normal-indent))))
(defun my-html-indent-count-attributes (start end) (save-excursion (goto-char start) (save-restriction (narrow-to-region (point) end) (down-list) (forward-sexp 1) (let ((count 0)) (while (progn (skip-chars-forward " \t\n") (looking-at "[^() \n]")) (incf count) (forward-sexp 1)) count))))