Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
 /// <nodoc />
 public static Range ToRange(this ITextSpan textSpan, ISourceFile sourceFile)
 {
     return(new Range()
     {
         Start = textSpan.GetStartPosition(sourceFile),
         End = textSpan.GetEndPosition(sourceFile),
     });
 }
Esempio n. 3
0
        /// <nodoc />
        public static ITextChangeRange CreateTextChangeRange(ITextSpan span, int newLength)
        {
            Contract.Requires(newLength >= 0);

            return(new TextChangeRange()
            {
                NewLength = newLength, Span = span
            });
        }
Esempio n. 4
0
        /// <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();
 }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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();
        }
Esempio n. 10
0
        /// <nodoc/>
        public static bool TextSpanIntersectsWith(ITextSpan span, int start, int length)
        {
            var end = start + length;

            return(start <= TextSpanEnd(span) && end >= span.Start);
        }
Esempio n. 11
0
 /// <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;
 }
Esempio n. 13
0
 /// <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));
 }
Esempio n. 14
0
 /// <nodoc />
 public static bool TextSpanContainsPosition(ITextSpan span, int position)
 {
     return(position >= span.Start && position < TextSpanEnd(span));
 }
Esempio n. 15
0
 /// <nodoc />
 public static bool TextSpanIsEmpty(ITextSpan span)
 {
     return(span.Length == 0);
 }
Esempio n. 16
0
 /// <nodoc />
 public static int TextSpanEnd(ITextSpan span)
 {
     return(span.Start + span.Length);
 }
Esempio n. 17
0
 /// <nodoc />
 public static bool TextSpanIntersectsWithPosition(ITextSpan span, int position)
 {
     return(position <= TextSpanEnd(span) && position >= span.Start);
 }
Esempio n. 18
0
        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));
        }
Esempio n. 19
0
        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);
            }
        }