如何修复 PHP_Beautifier 的空行?

发布于 2024-08-01 19:59:48 字数 578 浏览 3 评论 0原文

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

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

它效果很好,除了事实上它删除了所有空白行。 经过一番搜索后,我发现它作为 bug 发布自 2007 年以来一直开放。

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

I am currently using PHP_Beautifier for formatting code with the following command like options

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

It works great except for the fact that it strips out all the blank lines. After a bit of searching, I found it posted as a bug that is open since 2007.

I tried looking into the codebase but was unable to locate the specific code that does this. I appreciate any help I can get in the right direction.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

离旧人 2024-08-08 19:59:48

我是 clbustos,PHP_Beautifier 的开发者。 这是最受欢迎的功能之一,因此我希望在下一个版本中实现它。
如果你想挖掘,看看函数 PHP_Beautifier::removeWhitespace

I'm clbustos, the developer of PHP_Beautifier. This is one of the most requested features, so I expected to implement it on the next release.
If you want to dig, the function to see if PHP_Beautifier::removeWhitespace

青衫负雪 2024-08-08 19:59:48

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

我确实检查了这个脚本的最后一个版本,并且我做了一个肮脏的黑客(不是 PHP dvpr...):在函数 beautifier.php 文件中注释两行code>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 确实保留了所有空白行,但有一个副作用:一些不需要的行出现在括号后面,并且所有制表符都不会被替换,但这对我来说比没有更好空行...

Also needing this beautifier, while preserving blank lines in the sources.

I did check out the last version of this script, and I've done a dirty hack (not being a PHP dvpr...) : commenting two lines in the file beautifier.php in the function 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;
            }
        }

This hack does preserve all the blank lines, but there's a side effect : some unwanted lines appears after brackets, and all the tabs characters are not replaced, but it's better for me than not having blank lines...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文