适用于Linux和/或者MonoDevelop的C#代码格式化程序

时间:2020-03-05 18:59:21  来源:igfitidea点击:

MonoDevelop 1.0似乎不像Eclipse的Java那样具有代码格式化程序。我们是否发现可以正常工作的首选Shell脚本(或者MonoDevelop加载项?)?

解决方案

回答

目前,MonoDevelop中的源代码格式已标记为将来的增强功能:
https://bugzilla.novell.com/show_bug.cgi?id=321946

在此期间,我们可能想查看用于格式化的艺术风格:
http://astyle.sourceforge.net/

我打算看看如何将其作为MonoDevelop中的外部工具进行连接。如果做到这一点,我将使用信息编辑答案。更新:我没有足够的声誉来发表评论,所以我将在这里发表评论:很好的工作,Dustin和MonoDevelop的补丁:-)我想知道Ubuntu附带的版本是多少...无论哪种方式,我都很高兴我们找到了对我们有用的东西。

回答

谢谢,布兰登。我向MonoDevelop提交了补丁。 MonoDevelop加载项的问题在于,存在一个Mono编译器错误,无法正确处理匿名委托。 (错误报告:https://bugzilla.novell.com/show_bug.cgi?id=394347)

修补程序/解决方法是将匿名委托转换为正确的委托类型。 (错误报告和补丁:https://bugzilla.novell.com/show_bug.cgi?id=369538)

我现在正在使用修补程序版本,并且可以通过简单地使用以下设置创建新的"外部工具"设置来对当前编辑的文档执行AStyle:

标题:A_Style(输入下划线以启用热键)
命令:astyle
参数:$ {ItemPath}

然后,只需使用Tools-> AStyle(或者ALT-T,S)执行它

2008年9月25日编辑-我刚刚在博客中发布了有关如何修补MonoDevelop 1.0并使其与AStyle一起使用的文章:http://dustinbreese.blogspot.com/2008/09/auto-formatting-code-in-monodevelop -10.html

回答

编写自己的格式化程序是一个不错的编程练习。我为C ++编写了一个,这是一个不错的挑战。通过编写,我们可以学到很多东西:)