开发者

Getting the cursor location in Visual Studio to clipboard

Often when describing an issue in code, I need to reference it by line/开发者_运维技巧column/function. Is there a macro/add-in for Visual Studio that copies that information for me?

It would be perfect if it could copy to clipboard: File, Line, column, function name

But I'd take any combination :).

Thanks!


I ended up doing a macro. Unfortunately I was unable to access the clipboard from the macro so I had to use NirCmd for that part. Other than that, it works great!

Public Sub CopyLocation()

    Dim fileName = DTE.ActiveDocument.Name
    Dim line = ""
    Dim column = ""
    Dim functionName = ""
    Dim className = ""

    Dim textDocument = TryCast(DTE.ActiveDocument.Object, TextDocument)
    If textDocument IsNot Nothing Then

        Dim activePoint = textDocument.Selection.ActivePoint

        column = activePoint.DisplayColumn
        line = activePoint.Line

        Dim codeElement As CodeElement

        codeElement = activePoint.CodeElement(vsCMElement.vsCMElementFunction)
        If codeElement IsNot Nothing Then
            functionName = codeElement.Name
        End If

        codeElement = activePoint.CodeElement(vsCMElement.vsCMElementClass)
        If codeElement IsNot Nothing Then
            className = codeElement.Name
        End If

    End If

    Dim output As String = String.Format("File: {0} ", fileName)
    If (String.IsNullOrEmpty(line) = False) Then output = output & String.Format("Line: {0} ", line)
    If (String.IsNullOrEmpty(column) = False) Then output = output & String.Format("Column: {0} ", column)
    If (String.IsNullOrEmpty(className) = False) Then output = output & String.Format("at {0}", className)
    If (String.IsNullOrEmpty(functionName) = False) Then output = output & String.Format(".{0}", functionName)

    Dim process As System.Diagnostics.Process
    process.Start("c:\NoInstall files\nircmd.exe", String.Format("clipboard set ""{0}""", output))

End Sub
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜