電子書籍の厳選無料作品が豊富!

開発環境
Eclipse for PHP Developers

Eclipse ソフトを使って PHP ソースを書くのが初めてなので使い方を教えて下さい

プログラムソースをすべて選択して
[ shift ] + [ alt ] + [ f ] キー押すとフォーマットが実行できます

@ はタブが入っています
サンプルソース
if ($test == 1 ) {
@$str = "a";
}

ツールバーのウィンドウ - 設定の中に
PHP - コード・スタイル - フォーマットがありましたので
確認するとタブ・ポリシーのみ設定できるようになっています

自分はフォーマットの機能で下の通りしたいです
サンプルソース
if ($test == 1 )
{
@$str = "a";
}

フォーマットの詳細はどこにあるのですか?

宜しくお願いします

A 回答 (1件)

調べてたけど、挫折した。



>フォーマットの詳細はどこにあるのですか?

特定の設定ファイルというわけじゃなく、Javaのソースコードで書かれている。

#Google先生によると、espjpさんは以前Q6669837で、C#の質問しているから
Javaも苦戦せんだろうという前提で回答。

以前、こんな他人のEclipse(Java)の質問に答えたので、まず内容を把握して欲しい。

eclipseで単文のfor文の改行をしない方法
http://oshiete.goo.ne.jp/qa/6363687.html

DefaultCodeFormatter extends CodeFormatter
http://dev.eclipse.org/viewcvs/viewvc.cgi/org.ec …

が、上記のCodeFormatterVisitorを使っている。「文法上これがある」「今のインデントはこれ」「だからこれを足す」という発想で作られていて見やすい。

…じゃあ、Eclipse(PHP)はどうなっているのかというと…

http://dev.eclipse.org/viewcvs/viewvc.cgi/org.ec …

*各行をformatLineメソッドにかける。

formatLineメソッドでは…

*各行の最初にあるtokenが何であるかによってIIndentationStrategyを変更

*caseだったときは、CaseDefaultIndentationStrategy
commentだった場合、CommentIndentationStrategy
php close tag "?>"だったときはPHPCloseTagIndentationStrategy
"}"だったときはCurlyCloseIndentationStrategyが返る。

http://dev.eclipse.org/viewcvs/viewvc.cgi/org.ec …

*if構文にはcurlyclose"}"が含まれているから、利用したいきがする。
*curlycloseIndentationStrategyは対応する"{"を、"}"や"{"の数を数えることで探し、その時のインデントによって、整形を行う
http://dev.eclipse.org/viewcvs/viewvc.cgi/org.ec …

問題点:
【そのopen curly braces { がifのものであることを前まで戻って確認する必要があるが、どこでやるべきか方針に自信が持てない】
【各curlyIndentationが公開するpublicメンバは、placeMatchingBlanksのみと思われるからここでできないと思う】

#PhpFormatterのif (/* endFormat >= end || */startFormat <= start && endFormat >= end) { あたり、何がやりたいのか分かってないんだよなー
#[ shift ] + [ ctrl ] + [ f ] だと思うけど、まぁいいや。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!