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); }
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); }
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); }
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); }
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); }
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); }
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); }
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()); }
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); }
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); }