以编程方式将 Eclipse 格式化程序配置文件 XML 导出到 .prefs
Programmatically export eclipse formatter profile XML into .prefs
我的团队使用在 eclipse 配置文件 XML 文件中定义的代码格式约定,看起来像这样:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<profiles version="12">
<profile kind="CodeFormatterProfile" name="This Team's Formatting Convention" version="12">
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert"/>
...
我将 eclipse 用作命令行格式化程序,使用如下命令:
eclipse -nosplash -application org.eclipse.jdt.core.JavaCodeFormatter \
-config ${JAVA_FORMATTER_CONFIG_FILE} ${*}
这仅在 ${JAVA_FORMATTER_CONFIG_FILE}
是文件名类似于 org.eclipse.jdt.core.prefs
且内容为:
的 eclipse 首选项文件时有效
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.8
如何在不从 eclipse UI 手动导入 XML 配置文件的情况下以编程方式获取 .prefs
文件?
来自 Eclipse Oxygen workbench、
- 导出当前首选项:文件 -> 导出 -> 首选项
- Select "Java Code Style Preferences"
- 选择名称和目的地并保存(似乎必须使用 .epf 扩展名)
该文件将包含(除其他外)自定义格式配置
/instance/org.eclipse.jdt.ui/formatter_profile=_my-java-formatter
/instance/org.eclipse.jdt.ui/formatter_settings_version=13
/instance/org.eclipse.jdt.ui/org.eclipse.jdt.ui.formatterprofiles=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>\n<profiles version\="13">\n<profile kind\="CodeFormatterProfile" name\="my-java-formatter" version\="13">\n...
...
然后您可以 运行 格式化程序
eclipse -nosplash -application org.eclipse.jdt.core.JavaCodeFormatter -config eclipse-formatter.epf Test.java
输出:
org.eclipse.m2e.logback.configuration: The org.eclipse.m2e.logback.configuration bundle was activated before the state location was initialized. Will retry after the state location is initialized.
org.eclipse.m2e.logback.configuration: Logback config file: /home/luis/eclipse-workspace/.metadata/.plugins/org.eclipse.m2e.logback.configuration/logback.1.8.3.20180227-2137.xml
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [bundleresource://496.fwk1538849250:1/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [bundleresource://496.fwk1538849250:2/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
org.eclipse.m2e.logback.configuration: Initializing logback
Configuration Name: eclipse-formatter.epf
Starting format job ...
Done.
首选项导出完成一次,然后您可以共享 eclipse-formatter.epf
文件。
希望对您有所帮助。
我的团队使用在 eclipse 配置文件 XML 文件中定义的代码格式约定,看起来像这样:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<profiles version="12">
<profile kind="CodeFormatterProfile" name="This Team's Formatting Convention" version="12">
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert"/>
...
我将 eclipse 用作命令行格式化程序,使用如下命令:
eclipse -nosplash -application org.eclipse.jdt.core.JavaCodeFormatter \
-config ${JAVA_FORMATTER_CONFIG_FILE} ${*}
这仅在 ${JAVA_FORMATTER_CONFIG_FILE}
是文件名类似于 org.eclipse.jdt.core.prefs
且内容为:
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.8
如何在不从 eclipse UI 手动导入 XML 配置文件的情况下以编程方式获取 .prefs
文件?
来自 Eclipse Oxygen workbench、
- 导出当前首选项:文件 -> 导出 -> 首选项
- Select "Java Code Style Preferences"
- 选择名称和目的地并保存(似乎必须使用 .epf 扩展名)
该文件将包含(除其他外)自定义格式配置
/instance/org.eclipse.jdt.ui/formatter_profile=_my-java-formatter
/instance/org.eclipse.jdt.ui/formatter_settings_version=13
/instance/org.eclipse.jdt.ui/org.eclipse.jdt.ui.formatterprofiles=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>\n<profiles version\="13">\n<profile kind\="CodeFormatterProfile" name\="my-java-formatter" version\="13">\n...
...
然后您可以 运行 格式化程序
eclipse -nosplash -application org.eclipse.jdt.core.JavaCodeFormatter -config eclipse-formatter.epf Test.java
输出:
org.eclipse.m2e.logback.configuration: The org.eclipse.m2e.logback.configuration bundle was activated before the state location was initialized. Will retry after the state location is initialized.
org.eclipse.m2e.logback.configuration: Logback config file: /home/luis/eclipse-workspace/.metadata/.plugins/org.eclipse.m2e.logback.configuration/logback.1.8.3.20180227-2137.xml
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [bundleresource://496.fwk1538849250:1/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [bundleresource://496.fwk1538849250:2/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
org.eclipse.m2e.logback.configuration: Initializing logback
Configuration Name: eclipse-formatter.epf
Starting format job ...
Done.
首选项导出完成一次,然后您可以共享 eclipse-formatter.epf
文件。
希望对您有所帮助。