Resharper 自定义模式更改方法名称
Posted
技术标签:
【中文标题】Resharper 自定义模式更改方法名称【英文标题】:Resharper custom patterns change method name 【发布时间】:2014-04-25 11:31:40 【问题描述】:我想更改方法签名
public static async Task Load()
到
public static async Task LoadAsync()
如何在 ReSharper 中定义自定义模式?
【问题讨论】:
不知道为什么这被否决...我会尽快发布答案。 【参考方案1】:如果我理解正确,您想定义一个自定义模式以将async Task Method()
签名更改为async Task MethodAsync()
。如果是这样,这可以通过使用自定义模式来实现!
为此,请转到 ReSharper 的选项,然后转到 Code Inspection → Custom Patterns
:
点击Add Pattern
在新对话框中,确保选中Replace
完全按照下图中显示的方式键入搜索和替换模式。根据您的 ReSharper 版本,占位符参数应自动显示。如果没有,请按添加占位符按钮。
双击 method
占位符,并添加以下正则表达式:\b\w+(?<!Async)\b
- 这仅告诉匹配方法名称不以 Async 结尾。
在Pattern Severity
组合框中选择Show as Hint
或Show as Suggestion
,具体取决于您的偏好。
点击Add
,然后点击保存(或保存到→团队共享,将此图案存储在团队共享设置中,供所有队友使用)。
ReSharper 现在将标记所有尚未以 Async 结尾的 public async Task
方法:
您现在可以按 Alt-Enter 快速修复它!
【讨论】:
非常,非常感谢你的回答,我再想想如果是private static Task public Task 怎么定义? 您可以创建另一个模式,几乎相同,但使用private
关键字。
奇怪,它应该匹配任何参数,无论如何。 $parameters$
占位符应该考虑 0 个或多个参数,因此它适用于 Foo()
和 Foo(string arg)
,例如。你的占位符定义正确吗?
@IgalTabachnik 重要提示:搜索模式中的async
是多余的,Resharper 不匹配它。此模式还将突出显示public Task Load()
(在这种情况下不一定不好)
这太棒了,但是,您是否知道我如何在整个解决方案中找到共享至少 2 个相同参数的任何方法?以上是关于Resharper 自定义模式更改方法名称的主要内容,如果未能解决你的问题,请参考以下文章