-3

必要な最大行長を強制できるphp-parser用のきれいなプリンターが存在するのだろうか?

(いくつかの基本的なケース (配列要素リスト、関数引数リスト) の実装はかなり簡単に思えますが、変数式などで困惑し始めます。)

4

2 に答える 2

1

返事が遅れて申し訳ありません。PHP Frontも使用できます。ステートメントのすべてのネストに対してインデントが行われ、ネストごとに 2 つのスペースが使用されます。

カスタマイズされたインデントが可能です。PHP Frontで利用できます。

パーサーとプリティ プリンターも、PHPのソース配布のテスト ファイルを使用して一緒にテストされます。

各テストファイルは、解析され、きれいに印刷され、解析され、再びきれいに印刷されます。

この往復の正確さは、解析された 2 つのファイルときれいに印刷された 2 つのファイルの間で diff を実行することによってテストされます。

ただし、多くの機能があるため、標準のものを使用することをお勧めしました。変数式と配列式の機能があります。PHP フロントの場合と同様に、配列の使用にはまだいくつかのバグがあります。

標準プリティプリンター: (変数式と配列)

 public function pExpr_Variable(Expr\Variable $node) {
        if ($node->name instanceof Expr) {
            return '${' . $this->p($node->name) . '}';
        } else {
            return '$' . $node->name;
        }
    }

    public function pExpr_Array(Expr\Array_ $node) {
        return 'array(' . $this->pCommaSeparated($node->items) . ')';
    }
于 2015-07-29T13:36:14.317 に答える