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(); } }
private static bool RemoveTextInTextView(Microsoft.VisualStudio.Text.ITextEdit edit, string text, string pattern) { var match = Regex.Match(text, pattern); if (match.Success) { edit.Delete(match.Index, match.Length); } return(true); }
void UpdateLinkText(TextLink link, Microsoft.VisualStudio.Text.ITextEdit edit) { for (int i = 0; (i < link.Links.Count); ++i) { var s = link.Links[i]; int offset = s.Offset + baseOffset; if (offset < 0 || s.Length < 0 || offset + s.Length > Editor.Document.Length) { // This should never happen since it implies a corrupted link/bad update following a text change. continue; } var span = new Microsoft.VisualStudio.Text.Span(offset, s.Length); if (edit.Snapshot.GetText(span) != link.CurrentText) { edit.Replace(span, link.CurrentText); } } }
void UpdateTextLink(TextLink link, Microsoft.VisualStudio.Text.ITextEdit edit) { if (link.GetStringFunc != null) { link.Values = link.GetStringFunc(GetStringCallback); } if (!link.IsEditable && link.Values != null && link.Values.Count > 0) { link.CurrentText = (string)link.Values [link.Values.Count - 1]; } else { if (!link.PrimaryLink.IsInvalid()) { int offset = link.PrimaryLink.Offset + baseOffset; if (offset >= 0 && link.PrimaryLink.Length >= 0) { link.CurrentText = Editor.Document.GetTextAt(offset, link.PrimaryLink.Length); } } } UpdateLinkText(link, edit); }
public DragDropPointerEffects HandleDataDropped(DragDropInfo dragDropInfo) { Microsoft.VisualStudio.Text.SnapshotPoint position = dragDropInfo.VirtualBufferPosition.Position; var doc = SpriteDocument.FromJSON(_view.TextBuffer.CurrentSnapshot.GetText(), _documentFileName); string ident = SpriteHelpers.GetIdentifier(_draggedFileName); string file = SpriteHelpers.MakeRelative(_documentFileName, _draggedFileName); if (doc.Images.ContainsKey(ident)) { ident += "_" + Guid.NewGuid().ToString().Replace("-", string.Empty); } doc.Images.Add(new KeyValuePair <string, string>(ident, file)); using (Microsoft.VisualStudio.Text.ITextEdit edit = _view.TextBuffer.CreateEdit()) { edit.Replace(0, _view.TextBuffer.CurrentSnapshot.Length, doc.ToJsonString()); edit.Apply(); } return(DragDropPointerEffects.Copy); }
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(); }