/// <nodoc /> public static bool TextSpanOverlapsWith(ITextSpan span, ITextSpan other) { var overlapStart = Math.Max(span.Start, other.Start); var overlapEnd = Math.Min(TextSpanEnd(span), TextSpanEnd(other)); return(overlapStart < overlapEnd); }
/// <nodoc /> public static Range ToRange(this ITextSpan textSpan, ISourceFile sourceFile) { return(new Range() { Start = textSpan.GetStartPosition(sourceFile), End = textSpan.GetEndPosition(sourceFile), }); }
/// <nodoc /> public static ITextChangeRange CreateTextChangeRange(ITextSpan span, int newLength) { Contract.Requires(newLength >= 0); return(new TextChangeRange() { NewLength = newLength, Span = span }); }
/// <summary> /// Get the starting position of the TextSpan in the provided SourceFile. /// </summary> public static Position GetStartPosition(this ITextSpan textSpan, ISourceFile sourceFile) { var lineAndColumn = LineInfoExtensions.GetLineAndColumnBy( position: textSpan.Start, sourceFile: sourceFile, skipTrivia: false); return(lineAndColumn.ToPosition()); }
public void StartHighlight(ITextSpan span, HighlightKind kind, bool clearAllOfKind = false) { if (clearAllOfKind) { this.ClearHighlightsInternal(p => p.Kind == kind); } this.HighlightRegions.Add(new HighlightRegion { TextSpan = span, Kind = kind }); this.InvalidateVisual(); }
public static ITextSpan TextSpanOverlap(ITextSpan span1, ITextSpan span2) { var overlapStart = Math.Max(span1.Start, span2.Start); var overlapEnd = Math.Min(TextSpanEnd(span1), TextSpanEnd(span2)); if (overlapStart < overlapEnd) { return(CreateTextSpanFromBounds(overlapStart, overlapEnd)); } return(null); }
public static ITextSpan TextSpanIntersection(ITextSpan span1, ITextSpan span2) { var intersectStart = Math.Max(span1.Start, span2.Start); var intersectEnd = Math.Min(TextSpanEnd(span1), TextSpanEnd(span2)); if (intersectStart <= intersectEnd) { return(CreateTextSpanFromBounds(intersectStart, intersectEnd)); } return(null); }
private void ShowError(SqlScriptEditorControlWrapper sqlScriptEditorControl, ITextSpan textSpan, Exception ex) { // Show the results pane sqlScriptEditorControl.StandardPrepareBeforeExecute(); sqlScriptEditorControl.OnExecutionStarted(sqlScriptEditorControl, EventArgs.Empty); sqlScriptEditorControl.ToggleResultsControl(true); sqlScriptEditorControl.Results.StartExecution(); // Add the messages AddException(sqlScriptEditorControl, textSpan, ex); // Show that the query failed sqlScriptEditorControl.Results.OnSqlExecutionCompletedInt(2); }
public void EndHighlight(ITextSpan span, HighlightKind kind) { var idsToRemove = new List <int>(); var arr = this.HighlightRegions.ToArray(); for (int i = this.HighlightRegions.Count - 1; i >= 0; i--) { var hs = this.HighlightRegions[i]; if (hs.TextSpan.Start == span.Start && hs.TextSpan.Length == span.Length && kind == hs.Kind) { idsToRemove.Add(i); } } foreach (var id in idsToRemove) { this.HighlightRegions.RemoveAt(id); } this.InvalidateVisual(); }
/// <nodoc/> public static bool TextSpanIntersectsWith(ITextSpan span, int start, int length) { var end = start + length; return(start <= TextSpanEnd(span) && end >= span.Start); }
/// <nodoc /> public static bool TextSpanIntersectsWithTextSpan(ITextSpan span, ITextSpan other) { return(other.Start <= TextSpanEnd(span) && TextSpanEnd(other) >= span.Start); }
public HighlightTextspanColorizer(ITextSpan textSpan, string kind) { this.TextSpan = textSpan; Kind = kind; }
/// <summary> /// Returns true if 'span' contains 'other'. /// </summary> public static bool TextSpanContainsTextSpan(ITextSpan span, ITextSpan other) { return(other.Start >= span.Start && TextSpanEnd(other) <= TextSpanEnd(span)); }
/// <nodoc /> public static bool TextSpanContainsPosition(ITextSpan span, int position) { return(position >= span.Start && position < TextSpanEnd(span)); }
/// <nodoc /> public static bool TextSpanIsEmpty(ITextSpan span) { return(span.Length == 0); }
/// <nodoc /> public static int TextSpanEnd(ITextSpan span) { return(span.Start + span.Length); }
/// <nodoc /> public static bool TextSpanIntersectsWithPosition(ITextSpan span, int position) { return(position <= TextSpanEnd(span) && position >= span.Start); }
public static string Substr(this ITextSpan textSpan, int len) { var maxLen = (len > textSpan.Text.Length) ? textSpan.Text.Length : len; return(textSpan.Text.Substring(0, maxLen)); }
private void AddException(SqlScriptEditorControlWrapper sqlScriptEditorControl, ITextSpan textSpan, Exception ex) { if (ex is AggregateException aggregate) { foreach (var error in aggregate.InnerExceptions) { AddException(sqlScriptEditorControl, textSpan, error); } return; } var line = 0; if (ex is NotSupportedQueryFragmentException err) { line = err.Fragment.StartLine; } else if (ex is QueryParseException parse) { line = parse.Error.Line; } if (line != 0) { sqlScriptEditorControl.Results.AddStringToErrors(ex.Message, line, textSpan, true); } else { sqlScriptEditorControl.Results.AddStringToErrors(ex.Message, true); } }