为特定文件禁用 Resharper 的 "Adjust namespace"
Disable Resharper's "Adjust namespace" for specific files
我有一个 class 的命名空间与项目的文件夹结构不匹配。
使用 // ReSharper disable once CheckNamespace
我可以禁用命名空间与文件位置不对应的提示。但是Refactoring the Projects namespaces时,仍然选择class来调整namespace。
有没有办法禁用调整命名空间?
样本更新:
在我的例子中,我有一个视图 class 必须位于 System.Web.Mvc
- 命名空间中。
文件位置是[Root]>src>Views
Root-Project 的默认命名空间是 Com.xxxxx.Commons.Web
所以Resharper总是想将命名空间调整为
Com.xxxxx.Commons.Web.Views
或 Com.xxxxx.Commons.Web
如果我禁用 Views 文件夹的名称空间提供程序标志。
您可以通过打开要排除的文件夹的属性 window(右键单击 -> 属性)并将命名空间提供程序更改为 false 来禁用该文件夹作为命名空间提供程序。
不幸的是,bug in R# disable CheckNamespace
没有受到 "Adjust namespaces" 重构的尊重。据我所知,没有其他方法可以从此重构中排除特定文件。
ReSharper 的 Adjust 命名空间重构不再影响标有 // ReSharper disable CheckNamespace
的命名空间。 long-existing bug in ReSharper (@ulrichb 的旧答案中引用的link) 已在 ReSharper 2016.2 中修复。
限制(目前,截至 ReSharper 2018.1)
- 如果根本没有命名空间,即使为该文件指定了
disable CheckNamespace
,ReSharper 也会自动添加命名空间。
例如,这个有效:
// ReSharper disable once CheckNamespace
namespace DoNotAdjustThisNamespace
{
public class TestClass1
{
}
}
然而,这不是:
// ReSharper disable once CheckNamespace
public class TestClass1
{
}
- 仍然存在误导性 UI 问题,即所有文件仍出现在 Adjust 命名空间 UI 中,但实际上不会发生命名空间更改。这有点误导..
我有一个 class 的命名空间与项目的文件夹结构不匹配。
使用 // ReSharper disable once CheckNamespace
我可以禁用命名空间与文件位置不对应的提示。但是Refactoring the Projects namespaces时,仍然选择class来调整namespace。
有没有办法禁用调整命名空间?
样本更新:
在我的例子中,我有一个视图 class 必须位于 System.Web.Mvc
- 命名空间中。
文件位置是[Root]>src>Views
Root-Project 的默认命名空间是 Com.xxxxx.Commons.Web
所以Resharper总是想将命名空间调整为
Com.xxxxx.Commons.Web.Views
或 Com.xxxxx.Commons.Web
如果我禁用 Views 文件夹的名称空间提供程序标志。
您可以通过打开要排除的文件夹的属性 window(右键单击 -> 属性)并将命名空间提供程序更改为 false 来禁用该文件夹作为命名空间提供程序。
不幸的是,bug in R# disable CheckNamespace
没有受到 "Adjust namespaces" 重构的尊重。据我所知,没有其他方法可以从此重构中排除特定文件。
ReSharper 的 Adjust 命名空间重构不再影响标有 // ReSharper disable CheckNamespace
的命名空间。 long-existing bug in ReSharper (@ulrichb 的旧答案中引用的link) 已在 ReSharper 2016.2 中修复。
限制(目前,截至 ReSharper 2018.1)
- 如果根本没有命名空间,即使为该文件指定了
disable CheckNamespace
,ReSharper 也会自动添加命名空间。
例如,这个有效:
// ReSharper disable once CheckNamespace
namespace DoNotAdjustThisNamespace
{
public class TestClass1
{
}
}
然而,这不是:
// ReSharper disable once CheckNamespace
public class TestClass1
{
}
- 仍然存在误导性 UI 问题,即所有文件仍出现在 Adjust 命名空间 UI 中,但实际上不会发生命名空间更改。这有点误导..