form タグ内でインデントしてもらいたいよ,html-helper-mode 夏。

どうも風邪をひいている感じです。

目指す頂

<form action="" name="foo">
  <input type="button" name="bar" />
</form>

↑なってほしい。
↓ではない。

<form action="" name="foo">
<input type="button" name="bar" />
</form>


どこをどう設定したらいいのかわけわかめちゃんなので,
M-x apropos html-helper.*indent
してみる。
するとどうやら,html-helper-indentation-list という変数が関係ありそうだ。
ググってみると,
html-helper-any-list-start, html-helper-any-list-end,
html-helper-any-list-item-start, html-helper-any-list-item-start
があり,この内最初の3つくっつけて,
html-helper-indentation-list が構成されているようだ。
(http://www.tsg.ne.jp/GANA/D/diary/1999-05.html#28T02:19:58+0900 参照)


今回の場合は,変数の値を見る限り,
html-helper-any-list-start に「<form」を入れて,
html-helper-any-list-end に「</form>」を入れればよさそうだ。
というわけで入れてみる。


.emacs へ以下を追加してみた。

(setq html-helper-any-list-start
      "<dl\\|<ul\\|<ol\\|<menu\\|<dir\\|<select\\|<table\\|<tr\\|<form")
(setq html-helper-any-list-end
      "</dl>\\|</ul>\\|</ol>\\|</menu>\\|</dir>\\|</select>\\|</table>\\|</tr>\\|</form>")
;; html-helper-any-list-item-start はとりあえずデフォルトのままにしておく
(setq html-helper-indentation-list
      (format "\\(%s\\)\\|\\(%s\\)\\|\\(%s\\)"
              html-helper-any-list-start
              html-helper-any-list-end
              html-helper-any-list-item-start))

結果

大丈夫。インデントされるね。<form>内で。
最初,html-helper-any-list-start に「<form\\|」と追加してしまい,
ところかまわず,C-mだろうと,C-jだろうと,
インデントされてしまったのにはぎょっとした。

まとめ

うーんhtml-helper-modeのドキュメントなりマニュアルってあるのかなぁ。
あったら,今回の件について,是非確認したいですねぇ。