Exemplo n.º 1
0
        public void GetMarkdownDisplayFromNumberSourceObject()
        {
            var markedCode = @"
3.14$$159
";

            GetCodeAndPosition(markedCode, out var code, out var position);
            var repl        = new LispRepl();
            var parseResult = repl.ParseUntilSourceLocation(code, position);
            var markdown    = parseResult.GetMarkdownDisplay().Replace("\r", "");

            Assert.Equal("3.14159", markdown);
        }
Exemplo n.º 2
0
        public void GetMarkdownDisplayFromUndefinedObject()
        {
            var markedCode = @"
as$$df
";

            GetCodeAndPosition(markedCode, out var code, out var position);
            var repl        = new LispRepl();
            var parseResult = repl.ParseUntilSourceLocation(code, position);
            var markdown    = parseResult.GetMarkdownDisplay();

            Assert.Null(markdown);
        }
Exemplo n.º 3
0
        public void GetMarkdownDisplayFromUnevaludatedParsedSet()
        {
            var markedCode = @"
(setf some-value (+ 1 1))
some-$$value
";

            GetCodeAndPosition(markedCode, out var code, out var position);
            var repl        = new LispRepl();
            var parseResult = repl.ParseUntilSourceLocation(code, position);
            var markdown    = parseResult.GetMarkdownDisplay().Replace("\r", "");

            Assert.Contains("(+ 1 1)", markdown);
        }
Exemplo n.º 4
0
        public void GetObjectAtLocationReturnsNullIfNothingIsAvailable()
        {
            var markedCode = @"
(+ 1 2)
$$
(- 1 2)
";

            GetCodeAndPosition(markedCode, out var code, out var position);
            var repl        = new LispRepl();
            var parseResult = repl.ParseUntilSourceLocation(code, position);

            Assert.Null(parseResult.Object);
        }
Exemplo n.º 5
0
        public Hover TextDocumentHover(HoverParams param)
        {
            var path     = Converters.PathFromUri(param.TextDocument.Uri);
            var position = Converters.SourcePositionFromPosition(param.Position);

            if (_documentContents.TryGetValue(path, out var code))
            {
                var parseResult = _repl.ParseUntilSourceLocation(code, position);
                var markdown    = parseResult.GetMarkdownDisplay();
                return(new Hover(new MarkupContent(MarkupKind.Markdown, markdown)));
            }

            return(null);
        }
Exemplo n.º 6
0
        public void GetMarkdownDisplayFromUnevaludatedParsedMacro()
        {
            var markedCode = @"
(defmacro some-macro (a b)
    ())
(some-$$macro 1 2)
";

            GetCodeAndPosition(markedCode, out var code, out var position);
            var repl        = new LispRepl();
            var parseResult = repl.ParseUntilSourceLocation(code, position);
            var markdown    = parseResult.GetMarkdownDisplay().Replace("\r", "");

            Assert.Contains("DEFMACRO SOME-MACRO", markdown);
        }
Exemplo n.º 7
0
        public void GetMarkdownDisplayFromUnevaluatedParsedFunction()
        {
            var markedCode = @"
(defun some-function (a b)
    ())
(some-$$function 1 2)
";

            GetCodeAndPosition(markedCode, out var code, out var position);
            var repl        = new LispRepl();
            var parseResult = repl.ParseUntilSourceLocation(code, position);
            var markdown    = parseResult.GetMarkdownDisplay().Replace("\r", "");

            Assert.Contains("DEFUN SOME-FUNCTION", markdown);
        }
Exemplo n.º 8
0
        public void GetObjectAtLocationGetsParentObjectIfNoNarrowChildExists()
        {
            var markedCode = @"
(+ 1 2)
(+ (* 12 34) $$ (/ 56 78))
(- 1 2)
";

            GetCodeAndPosition(markedCode, out var code, out var position);
            var repl        = new LispRepl();
            var parseResult = repl.ParseUntilSourceLocation(code, position);

            Assert.IsType <LispList>(parseResult.Object);
            Assert.Equal("(+ (* 12 34) (/ 56 78))", parseResult.Object.ToString());
        }
Exemplo n.º 9
0
        public void GetObjectAtLocationGetsNarrowestObject()
        {
            var markedCode = @"
(+ 1 2)
(+ (* 12 3$$4) (/ 56 78))
(- 1 2)
";

            GetCodeAndPosition(markedCode, out var code, out var position);
            var repl        = new LispRepl();
            var parseResult = repl.ParseUntilSourceLocation(code, position);

            Assert.IsType <LispInteger>(parseResult.Object);
            Assert.Equal(34, ((LispInteger)parseResult.Object).Value);
        }
Exemplo n.º 10
0
        public void GetMarkdownDisplayFromFunctionSourceObject()
        {
            var markedCode = @"
(add-2-num$$bers 3 5)
";

            GetCodeAndPosition(markedCode, out var code, out var position);
            var repl = new LispRepl();

            repl.Eval("(defun add-2-numbers (a b) \"Adds 2 numbers.\" (+ a b))");
            var parseResult = repl.ParseUntilSourceLocation(code, position);
            var markdown    = parseResult.GetMarkdownDisplay().Replace("\r", "");
            var expected    = @"
``` lisp
; <in module COMMON-LISP-USER>
(DEFUN ADD-2-NUMBERS (A B) ...)
```

Adds 2 numbers.
".Trim().Replace("\r", "");

            Assert.Equal(expected, markdown);
        }