예제 #1
0
        private static void InsertText(IWpfTextView view, DTE2 dte, string text)
        {
            ThreadHelper.ThrowIfNotOnUIThread();

            try
            {
                dte.UndoContext.Open("Generate text");

                using (Microsoft.VisualStudio.Text.ITextEdit edit = view.TextBuffer.CreateEdit())
                {
                    if (!view.Selection.IsEmpty)
                    {
                        edit.Delete(view.Selection.SelectedSpans[0].Span);
                        view.Selection.Clear();
                    }

                    edit.Insert(view.Caret.Position.BufferPosition, text);
                    edit.Apply();
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.Write(ex);
            }
            finally
            {
                dte.UndoContext.Close();
            }
        }
예제 #2
0
 public void WriteToTextViewer(string codeToWrite, IWpfTextView viewer, int offset)
 {
     Microsoft.VisualStudio.Text.ITextEdit ie = viewer.Selection.TextView.TextBuffer.CreateEdit();
     ie.Insert(offset, codeToWrite);
     ie.Apply();
 }