private TextDocumentContentChangeEvent DeleteAll(IReadOnlyList <string> content)
        {
            var changeRange = new VisualStudio.LanguageServer.Protocol.Range
            {
                Start = new Position(0, 0),
                End   = content.Any() ? new Position(content.Count - 1, content.Last().Length) : new Position(0, 0)
            };
            var changeLength = TestUtils.GetRangeLength(changeRange, content);

            return(new TextDocumentContentChangeEvent
            {
                Range = changeRange,
                RangeLength = changeLength,
                Text = string.Empty
            });
        }
Beispiel #2
0
        // does not modify range
        internal static int GetRangeLength(VisualStudio.LanguageServer.Protocol.Range range, IReadOnlyList <string> content)
        {
            Assert.IsTrue(Builder.IsValidRange(range));
            if (range.Start.Line == range.End.Line)
            {
                return(range.End.Character - range.Start.Character);
            }

            var changeLength = content[range.Start.Line].Length - range.Start.Character;

            for (var line = range.Start.Line + 1; line < range.End.Line; ++line)
            {
                changeLength += content[line].Length;
            }
            return(changeLength + range.End.Character);
        }
        private VisualStudio.LanguageServer.Protocol.Range GetRandomRange(IReadOnlyList <string> content)
        {
            var(startLine, endLine) = (this.rnd.Next(0, content.Count), this.rnd.Next(0, content.Count));
            var(startChar, endChar) = (this.rnd.Next(0, content[startLine].Length + 1), this.rnd.Next(0, content[endLine].Length + 1));

            ((startLine, startChar), (endLine, endChar)) =
                startLine <= endLine ?
                ((startLine, startChar), (endLine, endChar)) :
                ((endLine, endChar), (startLine, startChar));
            if (startLine == endLine && startChar > endChar)
            {
                (startChar, endChar) = (endChar, startChar);
            }

            var range = new VisualStudio.LanguageServer.Protocol.Range
            {
                Start = new Position(startLine, startChar),
                End   = new Position(endLine, endChar)
            };

            Assert.IsTrue(TestUtils.IsValidRange(range));
            return(range);
        }