如何将Eclipse代码风格导入IntelliJ IDEA?

26

我有一个org.eclipse.jdt.core.prefs文件,其中包含Eclipse代码样式,但是我只能将xml文件导入到IntelliJ IDEA中,有没有办法将prefs文件导入到IntelliJ IDEA中?


对于那些想要做相反操作的人,从Intellij到Eclipse:https://dev59.com/questions/vVoV5IYBdhLWcg3wTdMc 的备注 - ch271828n
3个回答

29

前往Eclipse的首选项→Java→代码样式→格式化器,并通过“全部导出”按钮(或编辑,然后在打开的对话框中导出)将设置导出为XML文件。 然后打开IntelliJ IDEA设置→代码样式→Java,单击“管理”,并通过单击“导入”来导入该XML文件。

从IntelliJ IDEA 13开始,不能直接导入.settings / .prefs文件。


编辑: IntelliJ可以导入以下Eclipse属性:

  • 常规
    • 右侧边距、格式化程序启用/禁用标记
    • 缩进
    • 缩进大小
    • 使用“Tab”字符
    • 仅对前导缩进使用Tab(智能制表符)
    • 从“switch”缩进“case”分支
    • 缩进类成员
    • 保留注释在第一列
  • 空格(Java)
    • 逗号之前/之后(如在Eclipse方法声明参数中设置的)
    • 在类型参数中的逗号后
    • 在数组初始化程序括号内
    • 在引用数组时的方括号内
    • 在以下圆括号内:annotation、“for”、“if”、“catch”、“while”、“switch”、method、空方法、括号表达式、方法调用、类型转换、“synchronized”
    • 在以下圆括号前面:‘try’、‘for’、‘while’、‘switch’、method、‘if’、‘catch’、method、method call、‘synchronized’。
    • 在类型转换之后
    • 围绕一元、赋值运算符(如果在Eclipse中设置为“before”和“after”)。
    • 在以下位置的左花括号之前:数组初始化程序、“switch”
    • 在条件表达式中的“?”之前
    • 在条件表达式中“:”之前/之后的空格
    • 二进制运算符周围的空格(单个Eclipse设置映射到多个IntelliJ IDEA设置)
  • 空行
    • 字段和方法前后
    • 包之前/之后
    • 导入之前/之后
    • 在方法体前
    • 保留代码中的空行(要保留的空行数)
  • 换行
    • 数组初始化器中的闭合括号、if语句中的else、try语句中的finally和catch、二元运算符(如果换行):之前需要换行
    • 数组初始化器中的打开括号、特殊的'else if'处理(紧凑的'else if'):之后需要换行
    • 将简单块保持为一行
    • 将控制语句保持为一行
    • 对齐:数组初始化器表达式、方法声明和调用中的参数、字段声明、扩展列表、赋值、二元表达式、'throws'子句、'try'中的资源。
    • 代码块、方法和类的大括号样式
  • JavaDoc
    • 启用JavaDoc格式化
    • JavaDoc中的空白行

我没有使用这些设置的Eclipse项目,如果我尝试通过Eclipse打开此项目,它们将无法配置。我也无法将.prefs文件导入到Eclipse中。 - roman-v1
要在Eclipse中导入设置,请选择文件→导入。在导入向导中选择常规→首选项并单击下一步。单击浏览...并定位要导入的文件。单击全部导入以接受文件中定义的所有首选项。如果您只想导入几个首选项,请从列表中选择它们。最后,单击完成。 - user1438038
我已将设置导入到Eclipse中,并在那里运行,但是当我将它们导出到XML文件时,文件几乎为空,没有包含规则:"<?xml version="1.0" encoding="UTF-8" standalone="no"?> <profiles version="12"/>。 - roman-v1
2
JetBrains网站指出:请记住,IntelliJ IDEA和Eclipse中的代码风格设置根本不同,不能以完全准确的方式进行映射。我更新了我的答案,并添加了关于IntelliJ IDEA 13支持哪些Eclipse属性的信息。 - user1438038
1
我没有点击“导出全部”,而是点击了“编辑关闭”并在那里点击了“导出”,它成功地导出了正确的文件,请将其添加到您的答案中。 - roman-v1
完成,添加了打开编辑对话框的进一步说明。 - user1438038

13
在最新(2020年)的IntelliJ IDEA中,如果您安装了“Eclipse互操作性”插件,那么只需要执行以下简单步骤: “设置”>“编辑器”>“代码样式”>“Java”>“⚙️”>“导入方案”>“Eclipse XML配置文件”。{{}}

enter image description here


如果我有Java和JS的两个不同格式化程序,我该如何设置? - Rishabh Deep Singh
1
@RishabhDeepSingh 我认为JS的东西在IntelliJ的付费版本中; 顺便说一下,我使用VSCode来处理我的IntelliJ多模块项目的前端模块。 - Andrea Ligios
我正在使用IntelliJ 2020.1,但我没有看到这个选项。也许你安装了一个插件来支持Eclipse?https://share.getcloudapp.com/d5uv1k4d - Dónal
@Dónal 在2020.1版本中,它是开箱即用的(就像图片中的2019.3版本一样),但我使用的是Linux。我不确定Mac版本是否缺少此选项。虽然很奇怪。在已安装的插件中,我可以看到一个捆绑插件(因此是开箱即用的,而不是我安装的东西),名为Eclipse Interoperability,可能负责这种事情。你的Intellij Mac版本是否已安装它?如果没有,你可以从Marketplace安装它吗? - Andrea Ligios
1
@AndreaLigios 我安装了“Eclipse互操作性”插件,现在该选项已经出现了。感谢您的建议。 - Dónal
感谢您的反馈,@Dónal :) 我很高兴它有所帮助。 - Andrea Ligios

12

1
这涵盖了很多本地 IntelliJ 格式化程序不包含的设置,当导入 Eclipse 格式 XML 文件时。这是我能够使代码与我们的 Eclipse 开发人员保持一致的唯一方法。 - Robbie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接