Пример #1
0
        public void replacement_position_can_be_found_at_the_end_of_a_string()
        {
            var code = "System.Linq.Enumerable.";
            // finding this                   ^
            var pos = SourceUtilities.ComputeReplacementStartPosition(code, code.Length);

            Assert.Equal(code.Length, pos);
        }
Пример #2
0
        public void replacement_position_can_be_found_not_at_the_end_of_a_string()
        {
            var code = "System.Linq.Enumerable.Ran";
            // finding this                   ^
            var lastDotPos = code.LastIndexOf('.') + 1;
            var pos        = SourceUtilities.ComputeReplacementStartPosition(code, lastDotPos);

            Assert.Equal(lastDotPos, pos);
        }
Пример #3
0
        private static void OnCompletionRequestCompleted(CompletionRequestCompleted completionRequestCompleted, IJupyterMessageSender jupyterMessageSender)
        {
            var command = completionRequestCompleted.Command as RequestCompletion;

            var pos   = SourceUtilities.ComputeReplacementStartPosition(command.Code, command.CursorPosition);
            var reply = new CompleteReply(pos, command.CursorPosition, matches: completionRequestCompleted.CompletionList.Select(e => e.InsertText ?? e.DisplayText).ToList());

            jupyterMessageSender.Send(reply);
        }
Пример #4
0
        public void replacement_position_can_be_found_at_the_end_of_a_multiline_string()
        {
            var code       = @"
using System.Linq;
Enumerable.
//        ^ finding this";
            var lastDotPos = code.LastIndexOf('.') + 1;
            var pos        = SourceUtilities.ComputeReplacementStartPosition(code, lastDotPos);

            Assert.Equal(lastDotPos, pos);
        }
        private static void OnCompletionRequestCompleted(CompletionRequestCompleted completionRequestCompleted, IJupyterMessageSender jupyterMessageSender)
        {
            var command = completionRequestCompleted.Command as RequestCompletion;

            int startPosition, endPosition;

            if (completionRequestCompleted.ReplacementStartIndex != null)
            {
                startPosition = completionRequestCompleted.ReplacementStartIndex.Value;
                endPosition   = completionRequestCompleted.ReplacementEndIndex.Value;
            }
            else
            {
                startPosition = SourceUtilities.ComputeReplacementStartPosition(command.Code, command.CursorPosition);
                endPosition   = command.CursorPosition;
            }

            var reply = new CompleteReply(startPosition, endPosition, matches: completionRequestCompleted.CompletionList.Select(e => e.InsertText ?? e.DisplayText).ToList());

            jupyterMessageSender.Send(reply);
        }
        private static void OnCompletionRequestCompleted(CompletionRequestCompleted completionRequestCompleted, IJupyterMessageSender jupyterMessageSender)
        {
            var command = completionRequestCompleted.Command as RequestCompletion;

            int startPosition, endPosition;

            if (completionRequestCompleted.Range != null)
            {
                startPosition = SourceUtilities.GetCursorOffsetFromPosition(command.Code, completionRequestCompleted.Range.GetValueOrDefault().Start);
                endPosition   = SourceUtilities.GetCursorOffsetFromPosition(command.Code, completionRequestCompleted.Range.GetValueOrDefault().End);
            }
            else
            {
                var cursorOffset = SourceUtilities.GetCursorOffsetFromPosition(command.Code, command.Position);
                startPosition = SourceUtilities.ComputeReplacementStartPosition(command.Code, cursorOffset);
                endPosition   = cursorOffset;
            }

            var reply = new CompleteReply(startPosition, endPosition, matches: completionRequestCompleted.CompletionList.Select(e => e.InsertText ?? e.DisplayText).ToList());

            jupyterMessageSender.Send(reply);
        }
        private static void OnCompletionRequestCompleted(CompletionsProduced completionsProduced, IJupyterMessageSender jupyterMessageSender)
        {
            var startPosition = 0;
            var endPosition   = 0;

            if (completionsProduced.Command is RequestCompletions command)
            {
                if (completionsProduced.LinePositionSpan is not null)
                {
                    startPosition = SourceUtilities.GetCursorOffsetFromPosition(command.Code, completionsProduced.LinePositionSpan.Start);
                    endPosition   = SourceUtilities.GetCursorOffsetFromPosition(command.Code, completionsProduced.LinePositionSpan.End);
                }
                else
                {
                    var cursorOffset = SourceUtilities.GetCursorOffsetFromPosition(command.Code, command.LinePosition);
                    startPosition = SourceUtilities.ComputeReplacementStartPosition(command.Code, cursorOffset);
                    endPosition   = cursorOffset;
                }
            }

            var reply = new CompleteReply(startPosition, endPosition, matches: completionsProduced.Completions.Select(e => e.InsertText ?? e.DisplayText).ToList());

            jupyterMessageSender.Send(reply);
        }