有没有办法让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
*/
进入这个:
/*
* 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
*/
我已经玩过Windows>偏好> Java>代码风格>格式化程序设置但无法找到用于保留注释格式的设置。我正在使用Eclipse 3.4.0。
答案 0 :(得分:171)
您可以使用另一种解决方案来抑制特定块注释的格式。在块注释的开头使用/*-
(注意连字符)和格式
如果格式化文件的其余部分,则不会受到影响。
/*- * Here is a block comment with some very special * formatting that I want indent(1) to ignore. * * one * two * three */
来源:http://www.oracle.com/technetwork/java/javase/documentation/codeconventions-141999.html#350
答案 1 :(得分:35)
2010年更新,pointed by the OP和in this answer,Eclipse 3.6中的特殊字符串// @formatter:off
就足够了。
原始答案:2009年6月,Eclipse 3.4/3.5
使用Java Formatter(Windows > Preferences > Java > Code Style > Formatter
),您可以创建一个新的Formatter配置文件。
在“评论”标签中(在eclipse3.5中),您可以在“Javadoc comment settings
”中取消选中“Format HTML tags
”。
另请查看“Never join lines
”部分中的“General settings
”。
然后你的评论应写成:
/**
* PSEUDOCODE
* Read in user's string/paragraph
*
* Three cases are possible:
* <dl>
* <dt>Case 1: foobar</dt>
* <dd> do case 1 things</dd>
* <dt>Case 2: fred hacker</dt>
* <dd> do case 2 things</dd>
* <dt>Case 3: cowboyneal</dt>
* <dd> do case 3 things</dd>
* </dl>
* In all cases, do some other thing
*/
注意:我已经发表了 Javadoc 评论,而不是一个简单的评论,因为我相信在其中包含大量文本的评论可能更好地放在方法前面。另外,Javadoc部分有更多格式参数可供使用
如果它位于方法(真正的Javadoc)前面,HTML tags <dl>
, <dt>
and <dd>
将有助于在Javadoc视图中正确显示它。
答案 2 :(得分:23)
我刚从一位同事那里了解到,Eclipse提供了可用于此的特殊格式标记:
// @formatter:off
/*
* ╔════════╦═══════╦══════════╗
* ║ Month ║ Sales ║ Position ║
* ╠════════╬═══════╬══════════╣
* ║ June ║ 44k ║ 2nd ║
* ║ July ║ 39k ║ 2nd ║
* ║ August ║ 49k ║ 4th ║
* ╚════════╩═══════╩══════════╝
*
* This comment shouldn't be formatted, and will now be ignored by the formatter.
*/
// @formatter:on
请注意,您可能需要通过“首选项”菜单→Java&gt;手动启用此功能。代码风格&gt;格式化程序,点击修改,选择关/开标记标签,然后选中启用关/开标记(source)。< / p>
字符串 @formatter:off 的快速Google将我带到了this other SO answer,它在禁用代码块格式化程序的上下文中提到了此功能。我已经确认它适用于行注释,“正常”块注释和Javadoc块注释。
答案 3 :(得分:15)
另一种可能性是使用HTML的&lt; pre&gt;在Javadoc:
/**
* <pre>
* this
* is
* kept
* as
* is
* </pre>
*/
至少这是我倾向于在源代码注释中嵌入我的ASCII艺术:)
答案 4 :(得分:8)
使用<pre> </pre>
标记围绕特定文字。
答案 5 :(得分:2)
在Eclipse 3.4:Preferences,Java-&gt; Code Style-&gt; Formatter中,然后编辑profile,comments选项卡。那里有一堆用于控制评论格式的选项。
答案 6 :(得分:1)
如果你想在eclipse中压缩格式,你总是可以将不打算构建的内容包装到<pre>UNFORMATTED CONTENT</pre>
标签中。 Javadoc格式化程序会检测到该标记,并将该标记之间的所有内容保留为未格式化。
优点:
缺点:
答案 7 :(得分:1)
一种解决方法是为您不希望eclipse格式化的评论添加 pre 标记
namespace SoftUni
{
using System;
using System.Linq;
using System.Collections.Generic;
public class PhoenixOscarRomeoNovember
{
public static void Main()
{
var squadInfo = new Dictionary<string, HashSet<string>>();
while (true)
{
var input = Console.ReadLine();
if (input == "Blaze it!") break;
var tokens = input
.Split(new string[] {" -> "}, StringSplitOptions.RemoveEmptyEntries);
var creature = tokens[0];
var squadMate = tokens[1];
if (creature == squadMate)
{
continue;
}
if (squadInfo.ContainsKey(creature))
{
if (squadInfo[creature].Contains(squadMate))
{
continue;
}
squadInfo[creature].Add(squadMate);
}
else
{
squadInfo.Add(creature, new HashSet<string>() { squadMate });
}
}
foreach (var curr in squadInfo.Keys)
{
foreach (var creature in squadInfo.Keys)
{
if (squadInfo[curr].Contains(creature)
&& squadInfo[creature].Contains(curr))
{
squadInfo[curr].Remove(creature);
squadInfo[creature].Remove(curr);
}
}
}
foreach (var creature in squadInfo.OrderByDescending(b => b.Value.Count))
{
Console.WriteLine($"{creature.Key} : {creature.Value.Count}");
}
}
}
}
答案 8 :(得分:0)
它依赖于语言。
例如,如果使用javascript,您可以转到“Window - &gt; Preferences - &gt; Javascript - &gt; Code Style - &gt; Formatter”,然后编辑格式化程序选项。
修改(反映OP问题的变化
要编辑java代码格式,请转到 “Window - &gt; Preferences - &gt; Java - &gt; Code Style - &gt; Formatter”
在面板的顶部,您将看到
活动资料:
Eclipse [内置]
从那里你有一个按钮在右边,“编辑”,两个在下面,“新...”和“导入...”。 我建议编辑现有的个人资料。
在编辑个人资料对话框中,顶部有一系列标签。最后一个选项卡是“评论”。要完全禁用注释格式,请取消选中“启用Javadoc注释格式”,“启用块注释格式”,“启用行注释格式”和“启用标题注释格式”。
答案 9 :(得分:0)
您可以在 Windows-首选项-Java-代码样式-格式化程序, 而不是单击“编辑..”按钮,找到“注释”, 选择“从不加入行”。
然后就可以了。
答案 10 :(得分:0)