如何使VS Code组织IntelliJ之类的Java导入

时间:2019-02-13 17:27:34

标签: java intellij-idea visual-studio-code

我正在使用VS Code进行Java开发,并与其他使用IntelliJ的开发人员一起工作。我想使用“组织导入”命令(Shift + Alt + O)清理导入,但是我不想在每次提交时都对导入顺序进行争执。因此,我想配置VS Code以与IntelliJ的默认顺序相同的顺序组织导入。有人配置可以做到这一点吗?

如果这不可能,那么是否存在我可以同时应用于VS Code和IntelliJ的工作空间配置,以便即使两个IDE在IntelliJ的默认设置不一致的情况下也可以达成共识?

2 个答案:

答案 0 :(得分:3)

我们能够通过以下配置调整使它几乎 相同。

VS代码:

{
  "java.completion.importOrder": [
    "",
    "javax",
    "java",
    "#"
  ]
}

IntelliJ java.util.concurrent

与IntelliJ默认值的唯一区别是import javax...import java...之间的换行。

答案 1 :(得分:1)

只要标准格式可以使VS Code和IntelliJ达成一致:

  1. 将静态导入放在顶部 *
  2. 用空行分隔所有特定部分
  3. 将不在其自己的特定部分中的所有内容放在结尾的“全部捕获”部分中 *
  4. 从不使用通配符导入

    • 实际上并非如此;静态导入可以使用'#'放在VS Code中,其他所有内容都可以使用''放在VS Code中。

IntelliJ的默认设置对此不起作用,但是它足够灵活,可以重新配置。以下是要添加到项目中的文件,以使该项目为两个IDE设置一致的规则(请确保它们未在.gitignore中排除)。

规则:以下各组用空行分隔:静态导入,java.*javax.*,以及其他所有内容。

.vscode / settings.json:

{
    "java.completion.importOrder": ["java", "javax"],
}

.idea / codeStyles / codeStyleConfig.xml:

<component name="ProjectCodeStyleConfiguration">
  <state>
    <option name="USE_PER_PROJECT_SETTINGS" value="true" />
  </state>
</component>

.idea / codeStyles / Project.xml

<component name="ProjectCodeStyleConfiguration">
  <code_scheme name="Project" version="173">
    <JavaCodeStyleSettings>
      <option name="CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND" value="99" />
      <option name="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND" value="99" />
      <option name="IMPORT_LAYOUT_TABLE">
        <value>
          <package name="" withSubpackages="true" static="true" />
          <emptyLine />
          <package name="java" withSubpackages="true" static="false" />
          <emptyLine />
          <package name="javax" withSubpackages="true" static="false" />
          <emptyLine />
          <package name="" withSubpackages="true" static="false" />
        </value>
      </option>
    </JavaCodeStyleSettings>
  </code_scheme>
</component>