private void PlaceCaret(ElementNode element, int position) { SnapshotPoint point = new SnapshotPoint(TextView.TextBuffer.CurrentSnapshot, TextView.Caret.Position.BufferPosition.Position); if (element.EndTag.Start == point.Position) { string text = element.GetText(element.InnerRange); for (int i = text.Length - 1; i > -1; i--) { if (!char.IsWhiteSpace(text[i])) { TextView.Caret.MoveTo(new SnapshotPoint(TextView.TextBuffer.CurrentSnapshot, element.InnerRange.Start + i + 1)); break; } } } else { IWpfTextViewLine line = TextView.GetTextViewLineContainingBufferPosition(point); string text = TextView.TextBuffer.CurrentSnapshot.GetText(line.Start.Position, line.Length); for (int i = 0; i < text.Length; i++) { if (!char.IsWhiteSpace(text[i])) { TextView.Caret.MoveTo(new SnapshotPoint(TextView.TextBuffer.CurrentSnapshot, line.Start.Position + i)); break; } } } }
public bool HasSuggestedActions(ITextView textView, ITextBuffer textBuffer, int caretPosition, ElementNode element, AttributeNode attribute, HtmlPositionType positionType) { if (element.IsRoot || element.EndTag == null || (!element.StartTag.Contains(caretPosition) && !element.EndTag.Contains(caretPosition))) { return(false); } return(element.InnerRange != null && element.GetText(element.InnerRange).Trim().Length > 0); }
public IHtmlSmartTag TryCreateSmartTag(ITextView textView, ITextBuffer textBuffer, ElementNode element, AttributeNode attribute, int caretPosition, HtmlPositionType positionType) { if (element.InnerRange == null || element.GetText(element.InnerRange).Trim().Length == 0) return null; string displayText = element.Children.Count == 0 ? "Remove HTML tag" : "Remove and keep children"; return new HtmlRemoveParentSmartTag(textView, textBuffer, element, displayText); }
public IHtmlSmartTag TryCreateSmartTag(ITextView textView, ITextBuffer textBuffer, ElementNode element, AttributeNode attribute, int caretPosition, HtmlPositionType positionType) { if (element.InnerRange == null || element.GetText(element.InnerRange).Trim().Length == 0) { return(null); } string displayText = element.Children.Count == 0 ? "Remove HTML tag" : "Remove and keep children"; return(new HtmlRemoveParentSmartTag(textView, textBuffer, element, displayText)); }
public bool Visit(ElementNode element, object parameter) { if (element.Name.Equals("title", StringComparison.OrdinalIgnoreCase)) { var list = (HashSet <string>)parameter; string text = element.GetText(element.InnerRange); list.Add(text); } return(true); }
public bool Visit(ElementNode element, object parameter) { if (element.Name.Equals("title", StringComparison.OrdinalIgnoreCase)) { var list = (HashSet<string>)parameter; string text = element.GetText(element.InnerRange); list.Add(text); } return true; }
private void PlaceCaret(ElementNode element, int position) { SnapshotPoint point = new SnapshotPoint(TextView.TextBuffer.CurrentSnapshot, TextView.Caret.Position.BufferPosition.Position); if (element.EndTag == null) return; if (element.EndTag.Start == point.Position) { string text = element.GetText(element.InnerRange); for (int i = text.Length -1; i > -1; i--) { if (!char.IsWhiteSpace(text[i])) { TextView.Caret.MoveTo(new SnapshotPoint(TextView.TextBuffer.CurrentSnapshot, element.InnerRange.Start + i + 1)); break; } } } else { IWpfTextViewLine line = TextView.GetTextViewLineContainingBufferPosition(point); string text = TextView.TextBuffer.CurrentSnapshot.GetText(line.Start.Position, line.Length); for (int i = 0; i < text.Length; i++) { if (!char.IsWhiteSpace(text[i])) { TextView.Caret.MoveTo(new SnapshotPoint(TextView.TextBuffer.CurrentSnapshot, line.Start.Position + i)); break; } } } }