環境
MacOS X 10.4.5
Carbon Emacs-Tiger-20060325
php-mode1.2.0(Carbon Emacsにバンドルされたもの)
.emacsにこのページのelispを追加しました。
http://www.ofug.net/~hachiman/wiliki/wiliki.cgi?php-mode
この環境でPHPを書くと
<?php
class Foo {
public function getFoo() {
}
} //こうなる
?>
<?phpが原因のようなのですが(<? phpとかするとインデントも一個ずれるので)なんとかできないでしょうか?
こうすればインデントは起きないのですが
<?php
class Bar
{
public function getBar()
{
//これだとifとかforだけうまくいかない
if( true )
{
}
}
}
?>
ifやforなどが同じようにインデントしてくれないので統一感がなくてこれもちょっと問題です。
どちらかを解決する方法はないでしょうか?
お願いします。
(諸事情でPHPがまだインストールされてないのですがそれは関係ないですよねぇ・・・
php-modeはPEARコーディング標準で比較的適切に動作するようになっているはずです。
http://pear.php.net/manual/ja/standards.php
(add-hook 'php-mode-user-hook '(lambda () (progn (setq tab-width 4) (indent-tabs-mode) (setq c-basic-offset 4) (setq c-hanging-comment-ender-p nil) (setq indent-tabs-mode nil))))
を設定しPEARコーディング標準にしたがってコーディングすると綺麗にインデントされます。
php-modeのインデントはPHPがインストールされているかどうかに影響はされません。
ありがとうございます。
なるほどPEARコーディング標準では関数定義の{と制御構造の{はちゃんと別の書き方になっていたのですね。
なんとかなりそうです。
ただ、PEAR標準に従っても、ヘッダコメントが同じような現象でPEAR標準のサンプルにあるようにはならずインデントが入ってしまうのでやっぱりおかしいのかなぁと思いました。