我已将Eclipse中的项目导入IntelliJ,我想配置代码样式设置。但是我在声明数组时遇到了问题。
eclipse格式化程序将代码格式化如下:
@Before
public void prepareData() throws Exception //NOPMD
{
LOG.info("Preparing setup data");
new CoreBasicDataCreator().createEssentialData(null, null);
CatalogManager.getInstance().createEssentialData(Collections.EMPTY_MAP, null);
serviceLayerDataSetup.createJobPerformables();
impExSystemSetup.createAutoImpexEssentialData(new SystemSetupContext(Collections.EMPTY_MAP, Type.ESSENTIAL,
CuppyConstants.EXTENSIONNAME));
cuppySystemSetup.importBasics(new SystemSetupContext(Collections.singletonMap(CuppyConstants.PARAM_BASICS, new String[]
{ CuppyConstants.PARAM_BASICS_PLAYERS }), Type.NOTDEFINED, CuppyConstants.EXTENSIONNAME));
cuppySystemSetup.importWC2002(new SystemSetupContext(Collections.singletonMap(CuppyConstants.PARAM_WC2002, new String[]
{ CuppyConstants.PARAM_WC2002_SETUP, CuppyConstants.PARAM_WC2002_RESULTS_PRELIMINARIES,
CuppyConstants.PARAM_WC2002_RESULTS_FINALS, CuppyConstants.PARAM_WC2002_BETS_PRELIMINARIES,
CuppyConstants.PARAM_WC2002_BETS_FINALS }), Type.NOTDEFINED, CuppyConstants.EXTENSIONNAME));
LOG.info("Finished preparation of setup data");
LOG.info("Preparing session");
JaloSession.getCurrentSession().setUser(UserManager.getInstance().getUserByLogin("sternthaler"));
LOG.info("Finished preparation of session");
}
IntelliJ将代码重新格式化为:
@Before
public void prepareData() throws Exception //NOPMD
{
LOG.info("Preparing setup data");
new CoreBasicDataCreator().createEssentialData(null, null);
CatalogManager.getInstance().createEssentialData(Collections.EMPTY_MAP, null);
serviceLayerDataSetup.createJobPerformables();
impExSystemSetup.createAutoImpexEssentialData(new SystemSetupContext(Collections.EMPTY_MAP, Type.ESSENTIAL,
CuppyConstants.EXTENSIONNAME));
cuppySystemSetup.importBasics(new SystemSetupContext(Collections.singletonMap(CuppyConstants.PARAM_BASICS, new String[]
{ CuppyConstants.PARAM_BASICS_PLAYERS }), Type.NOTDEFINED, CuppyConstants.EXTENSIONNAME));
cuppySystemSetup.importWC2002(new SystemSetupContext(Collections.singletonMap(CuppyConstants.PARAM_WC2002, new String[]
{ CuppyConstants.PARAM_WC2002_SETUP, CuppyConstants.PARAM_WC2002_RESULTS_PRELIMINARIES,
CuppyConstants.PARAM_WC2002_RESULTS_FINALS, CuppyConstants.PARAM_WC2002_BETS_PRELIMINARIES,
CuppyConstants.PARAM_WC2002_BETS_FINALS }), Type.NOTDEFINED, CuppyConstants.EXTENSIONNAME));
LOG.info("Finished preparation of setup data");
LOG.info("Preparing session");
JaloSession.getCurrentSession().setUser(UserManager.getInstance().getUserByLogin("sternthaler"));
LOG.info("Finished preparation of session");
}
如果您是IntelliJ用户,则可以在其代码样式编辑器中使用此代码示例。 希望你们中的任何人都能解决这个问题:)
答案 0 :(得分:1)
您可以在Idea中使用此插件:Eclipse Code Formatter
只需在Preferences -> Plugins -> Browse Repositories(button)
答案 1 :(得分:1)
如果我理解正确,你想要这个:
cuppySystemSetup.importBasics(new SystemSetupContext(Collections.singletonMap(CuppyConstants.PARAM_BASICS, new String[]
{CuppyConstants.PARAM_BASICS_PLAYERS}), Type.NOTDEFINED, CuppyConstants.EXTENSIONNAME));
格式如下
cuppySystemSetup.importBasics(new SystemSetupContext(Collections.singletonMap(CuppyConstants.PARAM_BASICS, new String[]
{CuppyConstants.PARAM_BASICS_PLAYERS}), Type.NOTDEFINED, CuppyConstants.EXTENSIONNAME));
为此,您需要设置设置>代码风格> Java>标签和缩进> “延续缩进”为0.但是请注意,这会使所有包裹的行都刷新。我不确定这是不是你想要的。或者,如果您只是想要特定的代码。如果是的话,请你澄清一下。
另请注意,在IDEA 13(目前位于beta/EAP)中,您可以通过注释使用关闭代码段的格式。 (此功能是通过IDEA-56995添加的)。标签是可配置的,默认为下面显示的值
// @formatter:off
cuppySystemSetup.importBasics(new SystemSetupContext(Collections.singletonMap(CuppyConstants.PARAM_BASICS, new String[]
{CuppyConstants.PARAM_BASICS_PLAYERS}), Type.NOTDEFINED, CuppyConstants.EXTENSIONNAME));
// @formatter:on
您可以使用实时模板轻松创建环绕声,将这些标记添加到代码块中。
答案 2 :(得分:0)
也许你应该在代码风格java中使用“在重新格式化时保留”“换行符”。
不是很漂亮,但它有时是处理糟糕遗留代码的唯一方法(使用空格和所有......)。
在您的示例中,您可以从方法调用中提取数组(和其他变量)的声明,这样您可能会获得与Eclipse相同的结果。此外,恕我直言,它可以使您的代码更容易阅读,因为实际上很难快速弄清楚这些代码正在做什么。