ReSharper格式化:对齐相等的操作数

时间:2009-08-17 08:38:00

标签: c# resharper code-formatting

  

Google员工注意,由于ReSharper 2017.3.1的当前版本现在支持所请求的功能,此问题已有些过时

我喜欢格式化我的代码以对齐相等操作数的右侧 像这里:

bool    canRead     = false;
bool    canReadClass    = true;
string  className   = boType.Name;

我最近切换到ReSharper并发现它非常有用,但找不到允许我以描述的方式格式化代码的选项。

你知道是否有这样的选项/插件吗? 也许除了ReSharp解决方案之外您还知道吗?

修改
如何确定代码的哪一部分应该对齐?
我的惯例是将所有变量对齐在同一个块中  通过“阻止”,我的意思是部分代码没有被空行分割。

例如

// First block
int      count     = 10;
string   name      = "abc";
bool     calculate = true;
.....
.....
// Second block
MyOwnType    myType   = new MyOwntype();
int          count    = 10;

编辑-2
我为此打开了R# ticket。如果有人有兴趣 please vote

6 个答案:

答案 0 :(得分:10)

在ReSharper中,(目前)无法开箱即用。幸运的是,ReSharper具有非常丰富的可扩展性API(尽管文档记录很少)。我花了很多时间与Reflector一起试图解决问题。

我们为我工作的公司中的类成员使用类似的对齐准则(极端地,我们还对齐方法参数)。我为ReSharper写了一个插件来帮助我做到这一点。这是一个“代码清理”模块,它在代码清理期间运行( Ctrl - E Ctrl - F )并为您调整代码。如果可能,它还会使班级sealed

一些例子

方法参数:

public void DoSomething(string      name,
                        int         age,
                        IEnumerable coll)

(您需要在选项 - >格式化样式 - >换行和换行中将换行形式参数更改为 Chop始终为了正常工作)

常量:

private const int    RESOURCEDISPLAYTYPE_DOMAIN = 0x00000001;
private const int    CONNECT_COMMANDLINE        = 0x00000800;
private const int    CONNECT_INTERACTIVE        = 0x00000008;
private const string RESOURCE_NAME              = "Unknown";

<小时/> 您可以从我的SkyDrive下载源代码。
修改我似乎无法访问该SkyDrive,也丢失了文件。这是在github之前:(

请注意,编译/调试它需要几件事:

  1. 更新Command Line ArgumentsDebug的{​​{1}}标签中,其中包含正确的路径 输出DLL:

      

    Project Properties   /ReSharper.Plugin

    这允许通过调试插件 F5 ,它会 自动安装 ReSharper的新插件 Visual Studio实例将会 开。

  2. 该插件适用于ReSharper 4.5,它引用了此版本的DLL。如果您在除"X:\<projects>\MyCompany.CodeFormatter\MyCompany.CodeFormatter\bin\Debug\MyCompany.CodeFormatter.dll"之外的任何其他地方安装了ReSharper,则必须修复引用。
  3. 这不会在方法中对齐变量,但是添加起来应该不难:)
  4. 安装完成后,只需运行C:\Program Files\JetBrains\ReSharper即可修复对齐(不幸的是,我从未得到JetBrains的回复,不知道如何在大括号/分号格式化期间执行此操作)。

    大会改名为保护无辜者:)

    祝你好运!

答案 1 :(得分:10)

我认为值得注意的是Visual Studio Productivity Power Tools具有对齐分配功能。 这是Visual Studio 2013 Productivity Power Tools的链接。

答案 2 :(得分:8)

您可以尝试:Code Alignment

支持

  • 对齐...(对话)
  • 按位置对齐...(对话框)
  • 按等号排列
  • 通过m _
  • 对齐
  • 通过“
  • 对齐
  • Align by。
  • 空间对齐

答案 3 :(得分:2)

Productivity Power Tools 2012也有一个命令:ctrl-alt - ]

其他好东西显然也存在。

答案 4 :(得分:1)

据我所知,遗憾的是使用Resharper是不可能的。

答案 5 :(得分:0)

虽然晚了,但是除了@MickyD的评论,Resharper可以为您完成此操作,请参见Resharper blog。转到Resharper /选项/代码编辑/ C#/制表符,缩进,对齐。滚动到右侧窗口窗格中选项的底部,找到“在列中对齐相似的代码”,单击即可享受。

相关问题