代码之家  ›  专栏  ›  技术社区  ›  Frank Schwieterman

将符号写入文本的命令(Resharper?VS2010?)

  •  0
  • Frank Schwieterman  · 技术社区  · 14 年前

    我在看一个使用Resharper的人的屏幕广播(在VS2010或2008上,不确定),他们可以用字符串文字填充测试名称:

    public class FooTest
    {
        public void "runs backgrounnd process until complete"
    

    然后一些命令把它变成了

    public class FooTest
    {
        public void runs_backgrounnd_process_until_complete()
        {
    

    我想知道是否有人知道那个命令是什么。

    2 回复  |  直到 13 年前
        1
  •  0
  •   SWD    14 年前

    它是一个VisualStudio宏,最初来自JPBoodhoo的.NET训练营类。就是这样:

     Sub ConvertLine()
            If DTE.ActiveDocument Is Nothing Then Return
    
            Dim isOpen As Boolean = OpenUndo("ConvertLine")
    
            Dim selection As TextSelection = CType(DTE.ActiveDocument.Selection(), EnvDTE.TextSelection)
            selection.SelectLine()
            If selection.Text = "" Then Return
    
            Dim classKeyword As String = "class """
            Dim methodKeyword As String = "void """
            Dim classIndex As Integer = selection.Text.IndexOf(classKeyword)
            Dim methodIndex As Integer = selection.Text.IndexOf(methodKeyword)
            If classIndex + methodIndex < 0 Then Return
    
            Dim index = CType(IIf(classIndex >= 0, classIndex, methodIndex), Integer)
            Dim prefix = selection.Text.Substring(0, index) + CType(IIf(classIndex >= 0, classKeyword, methodKeyword), String)
            Dim description As String = selection.Text.Replace(prefix, String.Empty)
    
            Dim conversion As String = Common.ReplaceSpacesWithUnderscores(description)
            conversion = Common.ReplaceApostrophesWithUnderscores(conversion)
            conversion = Common.ReplaceQuotesWithUnderscores(conversion)
    
            selection.Text = prefix.Replace("""", String.Empty) + conversion
            If prefix.Contains(methodKeyword) Then selection.LineDown() Else selection.LineUp()
            selection.EndOfLine()
    
            CloseUndo(isOpen)
        End Sub
    
        2
  •  0
  •   Nader Shirazie    14 年前

    看起来像一个“实时模板”。如果你注意到了,他会打进来 fact xUnit.net contrib 项目。您也应该能够为nUnit测试用例执行类似的操作。