次: C Indent, 前: Multi-line Indent, 上: Program Indent
Lisp式に対する字下げの仕方を、 その式から呼ばれる関数と関係付けることができます。 各Lisp関数に対して、あらかじめ定義された字下げパターンの中から選んだり、 Lispプログラムで任意のものを定義したりできます。
字下げの標準パターンは、つぎのとおりです。 式の開始行に関数呼び出しの引数がある場合は、 最初の引数の直下に2行目がくるように字下げします。 それ以外の場合は、関数名の直下に2行目がくるように字下げします。 続く各行は、入れ子の深さが同じである行の字下げと同じになります。
変数lisp-indent-offset
がnil
以外ならば、
式の2行目に対する通常の字下げパターンを無効にして、
式の開始桁からつねにlisp-indent-offset
だけ字下げします。
標準パターンが使用されない関数もいくつかあります。
名前がdef
で始まる関数に対しては、
式を開始する開き括弧の桁位置にlisp-body-indent
を加えた桁位置へ
2行目がくるように字下げします。
関数名の属性lisp-indent-function
を変更すれば、
各関数ごとに標準パターン以外の字下げを施せます。
この属性が取りえる値にはつぎの4つがあります。
nil
defun
def
で始まる関数に用いる字下げパターンを使用する。
lisp-body-indent
を加えた桁位置へ字下げする。
引数が区別された引数で最初か2番目ならば、
lisp-body-indent
の2倍を加えた桁位置へ字下げする。
引数が区別された引数であっても3番目以降ならば、標準パターンを適用する。
parse-partial-sexp
(字下げと入れ子の計算を行うLispの基本的な関数)の戻り値。