运行 打开 PhpStorm 的命令行代码格式化程序

Run code formatter from the command line with PhpStorm open

如果我转到 PhpStorm\bin 文件夹,我可以 运行 format.bat 命令从命令行格式化文件,例如

phpstorm format -r C:\path\to\my\code -r -s c:\path\to\my\settings.xml

效果很好。但是,如果 PhpStorm 打开,我无法 运行 命令,我得到一个错误:

Only one instance of PhpStorm can be run at a time

关闭我的 IDE 或必须使用第 3 方代码格式化程序并不理想。有什么解决方法吗?无需安装另一个 PhpStorm 副本。

这是一个已知问题,请参阅:https://youtrack.jetbrains.com/issue/IDEA-160462

来自 y.bedrov 的 link 将我带到这里 https://confluence.jetbrains.com/display/IDEADEV/Command-Line+Source+Code+Formatter 并提供了一个潜在的解决方案。

不幸的是,我似乎无法让它工作,我不得不求助于复制我的 PhpStorm 目录并改用副本。但我在这里添加它希望它能帮助其他人

当 IDE 为 运行ning 时,

运行ning 命令行格式化程序

在 Linux/MacOS

  • 转到 /bin 目录,其中安装了 Intellij IDEA 或基于 Intellij IDEA 的产品。
  • 将idea.properties复制到其他文件,例如format.properties
  • 修改format.properties如下:

  • 取消注释以下行:

    • #idea.config.path=${user.home}/.IntelliJIdea/config
    • #idea.system.path=${user.home}/.IntelliJIdea/system
  • 将它们更改为指向一些与默认不同的目录,例如:

    • idea.config.path=${user.home}/.IntelliJIdea/format/config
    • idea.system.path=${user.home}/.IntelliJIdea/format/system

通过添加带有 IDEA_PROPERTIES 变量的行来修改 format.sh:

\#!/bin/sh
\# ------------------------------------------------------
\# IntelliJ IDEA formatting script.
\# ------------------------------------------------------

IDE_BIN_HOME="${0%/*}"
export IDEA_PROPERTIES=$IDE_BIN_HOME/format.properties
exec "$IDE_BIN_HOME/idea.sh" format "$@"

运行 format.sh 不关闭 IDE,它应该给出以下输出:

IntelliJ IDEA ..., build ... Formatter
Usage: format [-h] [-r|-R] [-s|-settings settingsPath] path1 path2...
  -h|-help       Show a help message and exit.
  -s|-settings   A path to Intellij IDEA code style settings .xml file.
  -r|-R          Scan directories recursively.
  -m|-mask       A comma-separated list of file masks.
  path..         A path to a file or a directory.

在 Windows

您必须按照上述 Linux/MacOS 创建一个单独的 format.properties 文件。 通过添加带有 IDEA_PROPERTIES 变量的行来更改 format.bat 文件,如下所示:

@ECHO OFF
::----------------------------------------------------------------------
:: IntelliJ IDEA formatting script.
::----------------------------------------------------------------------
SET IDE_BIN_DIR=%~dp0
SET IDEA_PROPERTIES=%IDE_BIN_DIR%\format.properties
CALL "%IDE_BIN_DIR%\idea.bat" format %*

运行 format.bat,它将列出命令行格式化程序选项。