PHP 在不使用 Composer 的远程工作区中 VSCode 格式化

PHP formatting in VSCode on remote Workspace without using Composer

我的设置:Ubuntu 20 with PHP 和 Composer
我的编辑器:VSCode 使用 SSH FS 扩展来访问远程工作区。
我的任务:做一些 PHP 的事情,主要是 Wordpress 主题
我的问题:没有 PHP 格式化程序扩展适用于远程工作区

我尝试使用:PHP-CS-fixer、带有 PHP 插件的 Prettier、phpfmt、phpcs、PHP 格式化程序...
其中一些甚至无法在我的本地 Workspace 上运行。

我无法在远程服务器 (Composer) 上安装新代码,所以我需要一种方法来格式化 PHP 开箱即用的文件,例如 HTML 或 JS。

但同时我认为,这是不可能的。

解决方案:使用Ubuntu连接到服务器并将该文件夹挂载到工作区中,让VSC认为它是一个真正的本地文件夹:-)

大多数格式化扩展的问题是它们希望文件位于本地驱动器上,就像在 VS Code 外部挂载一样,包括任何 NodeJS 程序(以及 VS Code 扩展)的网络共享。该扩展使用扩展 API 的 FileSystemProvider 来提供对 VS Code 的 FS 访问。他们只是 recently that they added a way for one extension to use file systems provided by other extensions, and it's even more recent 才开始推送扩展以利用它。

遗憾的是,并不是每个扩展开发人员都可能开始使用它,对于使用 native/external 程序的扩展来说尤其棘手。这包括大多数语言服务器和格式化程序。

对于您的用例,有两种解决方案:

  • 将文件夹安装在 OS 级别(例如 sshfs),然后将其作为 VS Code 中的常规目录打开,如另一个答案所建议的那样
  • 使用 VS Code 的 Remote SSH,它实际上在服务器上运行扩展,因此跳过了整个“文件不在本地驱动器上”的问题