2009-08-12 33 views
3

我目前使用PHP_Beautifier与类似的选项下面的命令如何修复PHP_Beautifier的空行?

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

它除了它剔除掉所有空行事实上的伟大工程格式化代码。经过一番搜索,我发现它发布为自2007年开放的bug

我试图调查codebase,但无法找到执行此操作的特定代码。我感谢任何帮助,我可以在正确的方向获得帮助。

回答

3

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

+0

谢谢为笔记! – Sukumar 2010-03-26 16:50:47

+0

你是否曾经能够这样做? – ternaryOperator 2012-09-25 22:29:19

1

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

我没有检查出这个脚本的最后一个版本,我已经做了肮脏的黑客(并非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确实保留了所有的空行,但是有一个副作用:在括号后出现一些不需要的行,并且所有的制表符都不被替换,但是对我来说比没有空行更好...