问题描述
我使用Sublime Text 3和CodeFormatter插件在保存时自动格式化我的PHP。最近,我更新到PHP 7.4,其中引入了typed properties
:
class Person {
private string $name;
private int $age;
}
不幸的是,CodeFormatter
无法处理这些问题,保存后将类转换为如下形式:
class Person {
stringprivate $name;
intprivate $age;
}
似乎CodeFormatter依赖于phpF,多年来没有更新过(根据GitHub)。
有什么想法(不是尝试VS Code)?
解决方法
-
这是一个外部PHP工具,可让您使用定义的规则来格式化整个项目。但是有一个Phpcs插件可以在ST中调用它。
-
LSP + LSP-intelephense(需要node.js)
之所以提到这一点,只是因为它也提供了代码格式。但是我找不到使用它进行格式化的理由(除非您没有在计算机上安装PHP,但是自从开发PHP以来,这很奇怪),因为
php-cs-fixer
更加灵活 。我使用此设置进行代码完成,重构等,但不进行代码格式化。
我会说不受ST约束。如果可以在命令行中实现某些目标,则可以在ST中完成。因此,您可能会找到外部命令行工具,并编写自己的插件来调用它们。有很多有用的命令行工具,它们不会绑定到特定的编辑器。