3

我目前正在使用PHP_Beautifier使用以下命令(如选项)格式化代码

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

它工作得很好,除了它去掉了所有的空白行。经过一番搜索,我发现它是作为一个自 2007 年以来开放的错误发布的。

我尝试查看代码库,但无法找到执行此操作的特定代码。我很感激我能在正确的方向上得到任何帮助。

4

2 回答 2

3

我是 clbustos,PHP_Beautifier 的开发者。这是最需要的功能之一,所以我希望在下一个版本中实现它。如果要挖,看PHP_Beautifier::removeWhitespace的函数

于 2010-03-15T20:13:03.937 回答
1

也需要这个美化器,同时保留源中的空白行。

我确实检查了这个脚本的最后一个版本,并且我做了一个肮脏的 hack(不是 PHP dvpr ...):beautifier.php在函数的文件中注释两行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;
            }
        }

这个 hack 确实保留了所有的空行,但有一个副作用:括号后出现了一些不需要的行,并且所有的制表符都没有被替换,但对我来说,这比没有空行要好......

于 2011-03-28T13:05:20.383 回答