我想像Eclipse中那样有选择地禁用IntelliJ IDEA代码格式化程序以获取部分代码.IntelliJ是否支持此功能,如果支持,我该如何使用它?
我没有成功地弄清楚如何包装每个方法调用Eclipse.例如,我有这个:
someObject.A().B().C();
Run Code Online (Sandbox Code Playgroud)
但我真的想要这个:
someObject.A()
.B()
.C();
Run Code Online (Sandbox Code Playgroud)
"Line Wrapping"部分下的任何内容Eclipse似乎都没有给我这个结果.
有没有办法让Eclipse的内置Java代码格式化程序忽略注释?每当我运行它,它会变成这样:
/*
* PSEUDOCODE
* Read in user's string/paragraph
*
* Three cases are possible
* Case 1: foobar
* do case 1 things
* Case 2: fred hacker
* do case 2 things
* Case 3: cowboyneal
* do case 3 things
*
* In all cases, do some other thing
*/
Run Code Online (Sandbox Code Playgroud)
进入这个:
/*
* PSEUDOCODE Read in user's string/paragraph
*
* Three cases are possible Case 1: foobar do case 1 things Case 2: fred
* hacker do …Run Code Online (Sandbox Code Playgroud) 对于一系列合格调用的Eclipse格式化规则(即Builder模式样式),我非常沮丧.例如,以下是我创建新的Apache Commons CLI Options对象的一些代码的首选格式:
Options options = new Options()
.addOption(OPTION_HELP_SHORT, OPTION_HELP, false, "print usage information")
.addOption(OPTION_VERSION_SHORT, OPTION_VERSION, false,
"print version and exit")
.addOption(OptionBuilder.withLongOpt(OPTION_PROPERTIES)
.hasArg()
.withArgName("FILE")
.withType(File.class)
.withDescription("specify a user properties file")
.create());
Run Code Online (Sandbox Code Playgroud)
即,参数在必要时被包装和缩进,除非必要,所有合格的调用都被包装并缩进(如果有多个).如果参数列表包含在限定调用内,则调用应首先包装.
Eclipse中的默认格式(参数和调用"仅在必要时换行")会产生以下混乱:
Options options = new Options().addOption(
OPTION_HELP_SHORT, OPTION_HELP, false, "print usage information")
.addOption(OPTION_VERSION_SHORT, OPTION_VERSION, false,
"print version and exit").addOption(
OptionBuilder.withLongOpt(OPTION_PROPERTIES).hasArg().withArgName(
"FILE").withType(File.class).withDescription(
"specify a user properties file").create());
Run Code Online (Sandbox Code Playgroud)
进入"Java代码样式 - >格式化程序 - >行换行"和换行设置为"包装所有元素,除了第一个元素,如果没有必要",调用产生:
Options options = new Options().addOption(
OPTION_HELP_SHORT, OPTION_HELP, false, "print usage information")
.addOption(OPTION_VERSION_SHORT, OPTION_VERSION, false,
"print …Run Code Online (Sandbox Code Playgroud) 有没有办法阻止eclipse修改源文件中的注释?
我的主要问题是阻止它包装它们.我已经设法将eclipse配置为不对任何代码进行自动换行,但它似乎仍然可以用于评论.
我输入的代码如下:
public int myVariable = 100; // this variable is a very interesting variable and it does lots of stuff
Run Code Online (Sandbox Code Playgroud)
最终像这样:
public int myVariable = 100; // this variable
// is a very
// interesting
// variable and
// it does lots
// of stuff
Run Code Online (Sandbox Code Playgroud) 当我ctrl+ shift+ f上升项目代码时,它的工作就好了,无处不在.
但它弄乱了CSS,特别是那些过滤器部件并增加了一堆空间.
另外,如何指定Java代码的某些部分不被该命令格式化?
我有(Java)评论,例如:
/*
* The quick brown fox jumped over the lazy dog.
*
*
* Notes:
* - The quick brown fox jumped over the lazy dog. The quick brown fox
* jumped over the lazy dog. The quick brown fox jumped over the lazy
* dog.
* - The second quick brown fox jumped over the lazy dog. The quick brown
* jumped over the lazy dog. The quick brown fox jumped over the lazy
* dog.
*/
Run Code Online (Sandbox Code Playgroud)
Eclipse自动格式化程序正确设置注释行宽度,但使其成为: …
有时我希望字段上的注释在一行中,有时在每行中.是否有任何方法可以使Eclipse格式化程序忽略这些注释并让线条像我一样中断?
通过eclipse自动格式化java代码非常棒!你可以编写可怕的代码,然后简单的类型CTRL+ SHIFT+ f- 代码是惊人的.
但是,有时我想将部分代码标记为不自动格式化.例如,通过流畅的界面:
public void fluentInterfaceJooqDemo() {
create.select(AUTHOR.FIRST_NAME, AUTHOR.LAST_NAME, count())
.from(AUTHOR)
.join(BOOK).on(AUTHOR.ID.equal(BOOK.AUTHOR_ID))
.where(BOOK.LANGUAGE.eq("DE"))
.and(BOOK.PUBLISHED.gt(date("2008-01-01")))
.groupBy(AUTHOR.FIRST_NAME, AUTHOR.LAST_NAME)
.having(count().gt(5))
.orderBy(AUTHOR.LAST_NAME.asc().nullsFirst())
.limit(2)
.offset(1)
.forUpdate()
.of(AUTHOR.FIRST_NAME, AUTHOR.LAST_NAME);
}
Run Code Online (Sandbox Code Playgroud)
并且在CTRL+ SHIFT+之后f
public void fluentInterfaceJooqDemo() {
create.select(AUTHOR.FIRST_NAME, AUTHOR.LAST_NAME, count()).from(AUTHOR).join(BOOK).on(AUTHOR.ID.equal(BOOK.AUTHOR_ID))
.where(BOOK.LANGUAGE.eq("DE")).and(BOOK.PUBLISHED.gt(date("2008-01-01"))).groupBy(AUTHOR.FIRST_NAME, AUTHOR.LAST_NAME)
.having(count().gt(5)).orderBy(AUTHOR.LAST_NAME.asc().nullsFirst()).limit(2).offset(1).forUpdate()
.of(AUTHOR.FIRST_NAME, AUTHOR.LAST_NAME);
}
Run Code Online (Sandbox Code Playgroud)
但是,我正在寻找一些方法来标记这样的代码non-autoformat,例如
//non-format
public void fluentInterfaceJooqDemo() {
...
}
Run Code Online (Sandbox Code Playgroud) 有时文件中的某些代码没有任何扩展名.这些文件将使用单一语言编写代码,但每个此类文件可以使用不同的语言编写(例如,C,C++,汇编语言,wiki标记和HTML).同样,当文件名中有一个公共扩展名时,也会出现问题,但不同的文件使用不同的编程语言.
我想解决的问题是避免让已经签出工作区的每个开发人员不必弄清楚源文件是什么类型的文件(没有扩展名,或者扩展名不暗示使用的源语言) .为此,文件的作者有责任在文件中放置正确的魔法,以便正确打开文件.由于Eclipse能够根据文件中的某些嵌入文本禁用格式化程序,因此我认为应该可以指定文件类型.该Open With功能允许单个开发人员更改文件的解释方式,但每次签出新工作区时都必须再次执行此操作.
在Emacs或Vim中,我可以将魔术字符串放在文件的顶部,以指示我希望如何在编辑器中呈现文件.例如:
/* -*- c++ -*- */
/* vim: set ft=cpp: */
Run Code Online (Sandbox Code Playgroud)
Eclipse有一些等效的魔力吗?我寻找解决方案的尝试不断指出如何禁用格式化程序.显然,我对Eclipse的经验不足,限制了我的Google-Fu.