【发布时间】:2014-07-30 01:14:47
【问题描述】:
我看到有人使用 resharper,我注意到每当他们更改属性名称时,它立即反映在所有对它的引用中。
所以我下载了 resharper 的试用版,它似乎仍然是一个手动的“全部替换”功能。它不会在我输入时实时更新。
Resharper 看起来很酷,但我想要我看到的这个特殊功能!与谷歌陷入了死胡同。
【问题讨论】:
标签: vb.net visual-studio-2012 refactoring resharper
我看到有人使用 resharper,我注意到每当他们更改属性名称时,它立即反映在所有对它的引用中。
所以我下载了 resharper 的试用版,它似乎仍然是一个手动的“全部替换”功能。它不会在我输入时实时更新。
Resharper 看起来很酷,但我想要我看到的这个特殊功能!与谷歌陷入了死胡同。
【问题讨论】:
标签: vb.net visual-studio-2012 refactoring resharper
你看到的可能是Live Template。那些可以包含占位符,并且同一个占位符可以在同一个模板中出现多次。当您插入模板时,光标会转到第一个占位符,您可以在其中键入新值,并且同一占位符的所有其他实例将在您键入时反映这些相同的编辑。
例如ReSharper自带一个“dependencyProperty”Live Template,定义为:
public static readonly System.Windows.DependencyProperty $propertyName$Property =
System.Windows.DependencyProperty.Register("$propertyName$", typeof ($propertyType$), typeof ($containingType$), new PropertyMetadata(default($propertyType$)));
public $propertyType$ $propertyName$
{
get { return ($propertyType$) GetValue($propertyName$Property); }
set { SetValue($propertyName$Property, value); }
}
当您插入此模板时,您的光标会转到第一个占位符(上面表示为$propertyName$),您可以为该占位符键入一个值。 $propertyName$ 占位符的所有实例都将在您键入时使用相同的编辑进行更新。
然后您可以点击 Tab,这会将您移动到下一个占位符 ($propertyType$),您可以类似地对其进行更新。如果您再次 Tab(以保留最后一个占位符),则退出占位符模式,模板变为可以正常编辑的纯旧文本。
当您重命名一个局部变量时,您还会获得实时更新即键入行为。但是如果你看到这个属性,几乎可以肯定它是一个实时模板。 (属性重命名可能会影响多个文件,这可能需要一些时间,因此 ReSharper 会等到您确认重命名后再进行工作。它还会建议相关的重命名,例如对属性的支持字段进行相应的重命名,这也不是实用的实时更新。)
【讨论】: