3

現在、オプションのような次のコマンドでコードをフォーマットするためにPHP_Beautifierを使用しています

-t -l "ArrayNested() IndentStyles(style=bsd) NewLines(before=T_CLASS:function:T_COMMENT,after=T_COMMENT)"

すべての空白行が取り除かれることを除けば、うまく機能します。少し検索した後、 2007 年からオープンしているバグとして投稿されていることがわかりました。

コードベースを調べてみましたが、これを行う特定のコードを見つけることができませんでした。正しい方向に進むことができる助けに感謝します。

4

2 に答える 2

3

PHP_Beautifier の開発者 clbustos です。これは最も要望の多かった機能の 1 つなので、次のリリースで実装する予定です。掘り下げたい場合は、PHP_Beautifier::removeWhitespace かどうかを確認する関数

于 2010-03-15T20:13:03.937 に答える
1

ソースの空白行を保持しながら、この美化器も必要です。

このスクリプトの最後のバージョンをチェックアウトし、ダーティハックを実行しました(PHP dvprではありません...):beautifier.php関数内のファイルの2行にコメントしますpublic function removeWhitespace()

 for ($i = count($this->aOut) -1 ; $i >= 0 ; $i--) { // go backwards
            $cNow = &$this->aOut[$i];
            if (strlen(trim($cNow)) == 0) { // only space
                if (!$this->addedBlankLine || ($cNow!="\r" && $cNow!="\n")) {
                      //array_pop($this->aOut); // delete it!
                      //$pop++;****
                }
            } else { // we find something!
                $cNow = rtrim($cNow); // rtrim out
                break;
            }
        }

このハックはすべての空白行を保持しますが、副作用があります。括弧の後に不要な行が表示され、すべてのタブ文字が置き換えられませんが、空白行がないよりはましです...

于 2011-03-28T13:05:20.383 に答える