From ee65fb850961435a3c8ed89ffb20d16f0e8505a3 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 14 Apr 2024 22:16:53 +0200 Subject: Adding upstream version 0.1.25. Signed-off-by: Daniel Baumann --- tests/lsp_tests/lsp_tutil.py | 45 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 tests/lsp_tests/lsp_tutil.py (limited to 'tests/lsp_tests/lsp_tutil.py') diff --git a/tests/lsp_tests/lsp_tutil.py b/tests/lsp_tests/lsp_tutil.py new file mode 100644 index 0000000..1e509af --- /dev/null +++ b/tests/lsp_tests/lsp_tutil.py @@ -0,0 +1,45 @@ +from typing import Tuple + +try: + from pygls.server import LanguageServer + from lsprotocol.types import ( + TextDocumentItem, + Position, + ) +except ImportError: + pass + + +def _locate_cursor(text: str) -> Tuple[str, "Position"]: + lines = text.splitlines(keepends=True) + for line_no in range(len(lines)): + line = lines[line_no] + try: + c = line.index("") + except ValueError: + continue + line = line.replace("", "") + lines[line_no] = line + pos = Position(line_no, c) + return "".join(lines), pos + raise ValueError('Missing "" marker') + + +def put_doc_with_cursor( + ls: "LanguageServer", + uri: str, + language_id: str, + content: str, + *, + doc_version: int = 1, +) -> "Position": + cleaned_content, cursor_pos = _locate_cursor(content) + ls.workspace.put_text_document( + TextDocumentItem( + uri, + language_id, + doc_version, + cleaned_content, + ) + ) + return cursor_pos -- cgit v1.2.3