首页 > 解决方案 > 如何找到触发的行和行内容,Visual Studio 扩展

问题描述

当您在开发 Visual Studio 扩展时从触发事件的视图中执行某些操作时,如何找到触发该事件的行和行内容?

[Export(typeof(IWpfTextViewCreationListener))]
[ContentType("text")]
[TextViewRole(PredefinedTextViewRoles.Document)]
internal sealed class EditorListener : IWpfTextViewCreationListener
{
    [Import] private readonly IAsyncCompletionBroker _completionBroker = null;

    private IWpfTextView TextView { get; set; }

    public void TextViewCreated(IWpfTextView textView)
    {
        TextView = textView;
        if (_completionBroker != null)
        {
            _completionBroker.CompletionTriggered += CompletionBroker_CompletionTriggered;
        }

    }

    private void CompletionBroker_CompletionTriggered(object sender, CompletionTriggeredEventArgs eventArgs)
    {
       // this find line and line content
    }
}

标签: c#visual-studiovisual-studio-extensions

解决方案


您可以尝试System.Runtime.CompilerServices来获取行号和行内容:

    private void CompletionBroker_CompletionTriggered(object sender, CompletionTriggeredEventArgs eventArgs)
    {
        // this find line and line content
        TraceMessage();
    }

    public void TraceMessage(
    [System.Runtime.CompilerServices.CallerMemberName] string memberName = "",
    [System.Runtime.CompilerServices.CallerLineNumber] int sourceLineNumber = 0)
    {
        System.Diagnostics.Trace.WriteLine("member name: " + memberName);
        System.Diagnostics.Trace.WriteLine("source line number: " + sourceLineNumber);
    }

您可以System.Diagnostics.Trace.WriteLine在输出窗口中显示消息


推荐阅读