保存时格式化C/C++代码

28

Eclipse的格式化选项可以避免我与其他用户发生很多冲突,并确保我的代码始终看起来“干净”(尤其是在我的git提交方面)。

我知道Java编辑器中有“保存时格式化”选项,但我在C/C++中找不到这个选项。

这是故意的吗?

我能否期望有一天会出现这样的选项?或者可能是我没有找到吗?


1
有选项可以设置您的编码风格,以便在编辑时正确格式化。这不是您想要的吗? - Bo Persson
10
如果你真的希望得到人们回答你的问题,那么你应该接受一些之前问题的答案。StackOverflow不是一个普通的论坛。人们应该因为花费时间解决你的问题而得到某种奖励。 - ereOn
@Bo Persson:编辑时它会格式化所有内容吗?我不确定(特别是当你直接粘贴代码时)。 - Goulou
1
@Goulou,有时候答案无法更好是因为问题中的信息太少了。有时候,没有知识渊博的人来回答。 - Prof. Falken
@Borealid,您是否可以详细说明一下为什么要推荐这个问题?也许一个合理的步骤是联系CDT论坛或帐户到bugzilla系统,正如我在我的答案中提到的那样。我同意这将是一个不错的功能。 - πάντα ῥεῖ
显示剩余6条评论
7个回答

15
我知道Java编辑器中有“保存时格式化”选项,但是我在C/C++编辑器中找不到这个选项... 或者说我还没有找到吗?
恐怕CDT C++编辑器(Eclipse CDT Juno Service Release 1)没有这个选项可用:

Eclipse Juno C++ CDT Text Editor Save Action Options

这是Eclipse IDE级别上可用的所有内容。
您可以考虑以下两种解决方案来解决您的问题:
1. 您可以考虑采用其他答案中提到的一些纪律性。 2. 在提交之前运行适当的脚本来格式化您的源文件。 AStyle 工具可能对此有所帮助。
还可以考虑在实际使用的 Revision Control System 上运行自动预检入/提交拦截的脚本。许多修订/版本控制系统都提供此功能。
“我能期望有一天看到这样的选项吗?”

你是否在Eclipse/CDT社区论坛上提出了此功能请求,或在Eclipse CDT bugzilla跟踪系统中提交了功能请求?如果没有人知道这种功能需求是否被大多数用户要求,那么它会被“意外”实现的概率很低。


4
您可以使用键盘上的“Ctrl+Shift+F”组合键来格式化您编辑过的C/C++文件。

3

在 Eclipse Mars 中,CDT 现在已经实现了“保存时格式化”功能。


如何激活它?有哪些菜单选项? - Mawg says reinstate Monica
谢谢(+1),这将有助于其他人(也许您可以编辑您的答案,使其更加明显)。很遗憾我们不能像Java一样为source\optimize includes做同样的事情(如果将来有所改变,请有人回答http://stackoverflow.com/questions/39363952/eclipse-cdt-automating-optimize-includes)。 - Mawg says reinstate Monica

2
我正在使用AStyle程序根据一组规则格式化我的代码。目前,我只能通过CLI执行此操作,但我知道有一个Eclipse插件Astyle Eclipse,我还没有使用过:

Astyle Eclipse基于AStyle程序,旨在为Eclipse的CDT插件提供C/C++格式化程序。因此,所有支持的格式选项都应该检查AStyle。


2
问题是,该插件是否提供“保存时格式化”功能(无法从此处显示的选项中找到):http://sourceforge.net/projects/astyleclipse/#screenshots - πάντα ῥεῖ

1

在Eclipse CDT中,目前还没有这样的默认选项。 您可以尝试编写自己的插件Eclipse论坛主题展示了如何从Eclipse插件中调用CDT格式化程序。您只需要找出如何在每次保存操作时触发插件调用即可。


正如我所提到的,您需要考虑当前选择的格式策略,我猜这对于该插件来说并不是“琐事”。我更喜欢首先咨询开发者论坛,了解为什么这个看似“琐碎”的选项尚未被实现。 - πάντα ῥεῖ
基本上相同的功能在JDT中已经实现了。我也认为可能有一个原因,但是Java世界已经做了一切。我假设一个可能的原因是CDT还没有从JDT中回溯过来,而在编写时可能没有CDT格式化程序,或者没有JDT保存操作。在我看来,您需要编写一个保存操作侦听器并注册它。 - Alexander Oh
按钮设置的常量称为FORMAT_SOURCE_CODE,您会在其附近找到监听器。 - Alexander Oh

0

这里有一个适合您需要的插件:fos4cdt。Eclipse Mars可能包含了这个功能,但是很多用户会在一段时间内继续使用旧版本。因此,这个插件非常有用。


-3
你可以尝试选择所有代码,然后使用Alt+F8进行格式化。 这是VC IDE的方法,但我不确定Eclipse是否可行。

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