public bool Insert(Range position, string text, bool addNewline) { try { GetEditPointForRange(position)?.Insert(text + (addNewline ? Environment.NewLine : string.Empty)); return true; } catch { return false; } }
public bool Delete(Range range) { try { GetEditPointForRange(range)?.Delete(range.LineRange.Length); return true; } catch { return false; } }
private EditPoint GetEditPointForRange(Range range) { IVsTextLines textLines; int hr = _view.GetBuffer(out textLines); if (hr != VSConstants.S_OK || textLines == null) { return null; } object editPointObject; hr = textLines.CreateEditPoint(range.LineNumber, range.LineRange.Start, out editPointObject); EditPoint editPoint = editPointObject as EditPoint; if (hr != VSConstants.S_OK || editPoint == null) { return null; } return editPoint; }