崇高文字3中的php 7.4自动格式化键入的属性

问题描述

我使用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-cs-fixer

    这是一个外部PHP工具,可让您使用定义的规则来格式化整个项目。但是有一个Phpcs插件可以在ST中调用它。

  • LSP + LSP-intelephense(需要node.js)

    之所以提到这一点,只是因为它也提供了代码格式。但是我找不到使用它进行格式化的理由(除非您没有在计算机上安装PHP,但是自从开发PHP以来,这很奇怪),因为php-cs-fixer更加灵活 。我使用此设置进行代码完成,重构等,但不进行代码格式化。

我会说不受ST约束。如果可以在命令行中实现某些目标,则可以在ST中完成。因此,您可能会找到外部命令行工具,并编写自己的插件来调用它们。有很多有用的命令行工具,它们不会绑定到特定的编辑器。