如何告诉ReSharper使用系统命名空间排序使用不在顶部?

Mat*_*int 44 resharper visual-studio-2012

Visual Studio可以选择在排序时将系统指令放在顶部.

在此输入图像描述

取消选中此设置后,通过右键单击它们并使用" 组织使用" 功能对语句进行排序,将系统命名空间按字母顺序放置在所有其他命名空间导入中.

但是,ReSharper似乎并不尊重此设置,它在自己的Namespace Imports选项页面上也没有类似的东西.它总是表现得好像您希望系统名称空间位于顶部.当你已经在底部有一些并且让ReSharper建议导入命名空间时,这尤其令人讨厌,那么你最终会在列表的两端找到一些.

有办法解决这个问题吗?或者这只是ReSharper中的一个错误/疏忽?

小智 13

我正在使用ReSharper 7,至少对我来说,ReSharper从Visual Studio选项中获取"系统指令排序选项".

有时,当VS和ReSharper设置混乱时,它有助于从工具 - >导入和导出设置 - >重置所有设置重置Visual Studio设置.

  • 我已经检查过多个工作站,重新安装等等.Resharper没有检查VS设置. (3认同)

Mat*_*int 8

我在ReSharper 8下再次测试它,看它是否已经修复,我发现了一些有趣的东西:

  • 如果我现有的名称空间System首先有项目,那么ReSharper将在它们下面插入新的名称空间.

  • 如果我现有的命名空间至少有一个项目之前System项目,然后将ReSharper的按字母顺序插入新的命名空间.

  • 无论 Visual Studio的设置如何,ReSharper的行为都是相同的.它只考虑现有的命名空间 - 而不是 Visual Studio的设置.

所以,如果我有以下内容:

using A;
using System;
using Z;
Run Code Online (Sandbox Code Playgroud)

然后,如果我使用命名空间中的一个类B并使用alt-enter让ReSharper添加命名空间,它将最终为:

using A;
using B;
using System;
using Z;
Run Code Online (Sandbox Code Playgroud)

但是,如果我有这个:

using System;
using Z;
Run Code Online (Sandbox Code Playgroud)

我做同样的事情,然后我会得到:

using System;
using B;
using Z;
Run Code Online (Sandbox Code Playgroud)

VS的设置无关紧要.

我认为这也是ReSharper 7中发生的事情,我只是没注意到.