28

Note to Googlers, this question is somewhat out of date as the requested feature is now supported in the current version of ReSharper 2017.3.1

I like to formatting my code to align right side of equal operands.
Like here:

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

I've switch to ReSharper recently and found it very useful but cannot find option allowing me format code in described way.

Do you know if there is such option / plugin?
Maybe you know other than ReSharp solution allowing that?

EDIT:
How to decide what part of code shall be aligned?
My convention is aligning all variables in same block.
By "block" I meant part of code not divided by empty lines.

eg

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

EDIT -2
I've opened R# ticket for this. If anyone interested please vote!

4

6 回答 6

11

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

于 2010-07-21T11:52:24.863 回答
11

(目前)没有办法在 ReSharper 中开箱即用地做到这一点。幸运的是,ReSharper 具有非常丰富的可扩展性 API(尽管文档很少)。我花了很多时间在 Reflector 上试图解决问题。

我们为我工作的公司中的班级成员使用类似的对齐指南(极端情况下,我们还对齐方法参数)。我为 ReSharper 编写了一个插件来帮助我做到这一点。这是一个“代码清理”模块,它在代码清理(Ctrl- ECtrl- F)期间运行并为您对齐代码。如果可能的话,它还可以创建类sealed

一些例子

方法参数:

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

(您需要在Options->Formatting Style->Line Breaks and Wrapping中将Wrap 形式参数更改为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. 使用输出 DLL 的正确路径更新Command Line Arguments inDebug选项卡:Project Properties

    /ReSharper.Plugin "X:\<projects>\MyCompany.CodeFormatter\MyCompany.CodeFormatter\bin\Debug\MyCompany.CodeFormatter.dll"

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

  2. 该插件适用于 ReSharper 4.5,它引用了此版本的 DLL。如果您将 ReSharper 安装在除 之外的任何其他位置C:\Program Files\JetBrains\ReSharper,则必须修复引用。
  3. 这不会对齐方法内的变量,但添加起来应该不难:)

安装后,只需运行Code Cleanup以修复对齐(不幸的是,我从未收到 JetBrains 关于如何在大括号/分号格式化期间执行此操作的回复)。

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

祝你好运!

于 2009-08-17T15:19:20.263 回答
9

你可以试试这个:代码对齐

它支持

  • 对齐方式...(对话框)
  • 按位置对齐...(对话框)
  • 按等号对齐
  • 按 m_ 对齐
  • 按“对齐”
  • 对齐。
  • 按空间对齐
于 2013-12-06T15:27:01.870 回答
3

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

其他好东西显然也在那里。

于 2014-01-08T16:48:40.063 回答
1

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

于 2009-08-17T12:54:43.340 回答
1

晚了几年,但除了@MickyD 的评论,Resharper 可以为你做这件事,请参阅Resharper 博客。转到 Resharper/选项/代码编辑/C#/制表符、缩进、对齐。滚动到右侧窗格中选项的底部,找到“在列中对齐相似代码”,单击事物,享受。

于 2019-05-24T08:27:23.927 回答