如何获取MSVC窗格的顶部/底部行号

问题描述 投票:0回答:1

在 MSVC 中,快捷键 Ctrl+Up 将光标置于文本编辑器窗格的顶行。同样,Ctrl+Down 将光标置于窗格底部。

为了创建 C# VSIX 扩展,获取这些顶行和底行数字的代码是什么?

我这样做的目的是创建一个跳转到窗格垂直中心的快捷方式。 我的代码目前处于这样的位置:

        private void JumpVCenter()
        {
            // Clear our current selection when we jump.
            View.Selection.Clear();

            CaretPosition caretPos = View.Caret.Position;
            ITextBuffer buffer     = View.TextBuffer;
            ITextSnapshot snapshot = buffer.CurrentSnapshot;
            SnapshotPoint start    = caretPos.BufferPosition;

            // Code here to get the top/bottom line number of the pane.
            // ...
        }
visual-studio-extensions vsix
1个回答
0
投票

我没有找到有关此的文档。经过一段时间的尝试,我找到了一个令我满意的解决方案。即使在运行时更改编辑器文本的大小,该解决方案似乎也会生成正确的行号。

private void JumpVCenter()
{
    var lineTop = View.TextViewLines.GetTextViewLineContainingYCoordinate(View.ViewportTop);
    var topNum  = lineTop.Start.GetContainingLineNumber() + 1;

    var lineBot = View.TextViewLines.GetTextViewLineContainingYCoordinate(View.ViewportBottom);
    var botNum  = lineBot.Start.GetContainingLineNumber();
}
© www.soinside.com 2019 - 2024. All rights reserved.