internal static string GetSelection() { var service = _serviceProvider.GetService(typeof(SVsTextManager)); var textManager = service as IVsTextManager2; _ = textManager.GetActiveView2(1, null, (uint)_VIEWFRAMETYPE.vftCodeWindow, out IVsTextView view); view.GetSelection(out var startLine, out var startColumn, out var endLine, out var endColumn); var start = new EditorTextPosition(startLine, startColumn); var end = new EditorTextPosition(endLine, endColumn); view.GetSelectedText(out var selectedText); var selection = new EditorTextSelection(start, end, selectedText); return(selection.Text); }
internal static EditorTextPosition Max(EditorTextPosition a, EditorTextPosition b) { return(a > b ? a : b); }
internal static EditorTextPosition Min(EditorTextPosition a, EditorTextPosition b) { return(a > b ? b : a); }
public EditorTextSelection(EditorTextPosition a, EditorTextPosition b, string textContent) { StartPosition = EditorTextPosition.Min(a, b); EndPosition = EditorTextPosition.Max(a, b); Text = textContent; }