MacOS Xを使い始めたのでCarbon EmacsでPHPを書こうとしたのですが、オートインデントがちょっと思った通りになってくれません。



環境
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がまだインストールされてないのですがそれは関係ないですよねぇ・・・

回答の条件
  • 1人2回まで
  • 登録:2006/03/27 17:47:16
  • 終了:2006/03/29 14:22:15

回答(1件)

id:sakito No.1

sakito回答回数7ベストアンサー獲得回数12006/03/27 19:18:37

ポイント60pt

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がインストールされているかどうかに影響はされません。

id:yonekawa

ありがとうございます。

なるほどPEARコーディング標準では関数定義の{と制御構造の{はちゃんと別の書き方になっていたのですね。

なんとかなりそうです。

ただ、PEAR標準に従っても、ヘッダコメントが同じような現象でPEAR標準のサンプルにあるようにはならずインデントが入ってしまうのでやっぱりおかしいのかなぁと思いました。

2006/03/27 20:28:46

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません