我目前正在使用PHP_Beautifier使用以下命令(如选项)格式化代码
-t -l "ArrayNested() IndentStyles(style=bsd) NewLines(before=T_CLASS:function:T_COMMENT,after=T_COMMENT)"
它工作得很好,除了它去掉了所有的空白行。经过一番搜索,我发现它是作为一个自 2007 年以来开放的错误发布的。
我尝试查看代码库,但无法找到执行此操作的特定代码。我很感激我能在正确的方向上得到任何帮助。
我目前正在使用PHP_Beautifier使用以下命令(如选项)格式化代码
-t -l "ArrayNested() IndentStyles(style=bsd) NewLines(before=T_CLASS:function:T_COMMENT,after=T_COMMENT)"
它工作得很好,除了它去掉了所有的空白行。经过一番搜索,我发现它是作为一个自 2007 年以来开放的错误发布的。
我尝试查看代码库,但无法找到执行此操作的特定代码。我很感激我能在正确的方向上得到任何帮助。
我是 clbustos,PHP_Beautifier 的开发者。这是最需要的功能之一,所以我希望在下一个版本中实现它。如果要挖,看PHP_Beautifier::removeWhitespace的函数
也需要这个美化器,同时保留源中的空白行。
我确实检查了这个脚本的最后一个版本,并且我做了一个肮脏的 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 确实保留了所有的空行,但有一个副作用:括号后出现了一些不需要的行,并且所有的制表符都没有被替换,但对我来说,这比没有空行要好......