Skip to content

Commit 2101cb0

Browse files
committed
use synchronous methods for getting documents in discovering
1 parent 8cee91b commit 2101cb0

File tree

5 files changed

+10
-9
lines changed

5 files changed

+10
-9
lines changed

robotcode/jsonrpc2/protocol.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -482,8 +482,6 @@ def done(f: asyncio.Future[Any]) -> None:
482482
if ex is None or isinstance(ex, asyncio.CancelledError):
483483
return
484484

485-
# self._logger.exception(ex, exc_info=ex)
486-
487485
for m in iterator:
488486
create_sub_task(self.handle_message(m)).add_done_callback(done)
489487

robotcode/language_server/common/parts/diagnostics.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ def extend_capabilities(self, capabilities: ServerCapabilities) -> None:
102102
):
103103
capabilities.diagnostic_provider = DiagnosticOptions(
104104
inter_file_dependencies=True,
105-
workspace_diagnostics=False,
105+
workspace_diagnostics=True,
106106
identifier=f"robotcodelsp_{uuid.uuid4()}",
107107
work_done_progress=True,
108108
)
@@ -350,7 +350,6 @@ async def _task(doc: TextDocument) -> None:
350350

351351
return WorkspaceDiagnosticReport(items=[])
352352

353-
await self.in_get_document_diagnostics.wait()
354353
self.in_get_workspace_diagnostics.clear()
355354
try:
356355
await self.ensure_workspace_loaded()

robotcode/language_server/common/parts/documents.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,9 +182,12 @@ async def did_change(sender, document: TextDocument) -> None: # NOSONAR
182182
async def did_save(sender, document: TextDocument) -> None: # NOSONAR
183183
...
184184

185+
def get_sync(self, _uri: Union[DocumentUri, Uri]) -> Optional[TextDocument]:
186+
return self._documents.get(str(Uri(_uri).normalized() if not isinstance(_uri, Uri) else _uri), None)
187+
185188
async def get(self, _uri: Union[DocumentUri, Uri]) -> Optional[TextDocument]:
186189
async with self._lock:
187-
return self._documents.get(str(Uri(_uri).normalized() if not isinstance(_uri, Uri) else _uri), None)
190+
return self.get_sync(_uri)
188191

189192
def __len__(self) -> int:
190193
return self._documents.__len__()

robotcode/language_server/common/text_document.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,9 @@ def __repr__(self) -> str: # pragma: no cover
7070
f")"
7171
)
7272

73+
def text_sync(self) -> str:
74+
return self._text
75+
7376
async def text(self) -> str:
7477
async with self._lock:
7578
return self._text

robotcode/language_server/robotframework/parts/discovering.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,11 +135,9 @@ async def _get_tests_from_workspace(
135135

136136
def get_document_text(source: str) -> str:
137137
if self.parent._loop:
138-
doc = asyncio.run_coroutine_threadsafe(
139-
self.parent.documents.get(Uri.from_path(source).normalized()), self.parent._loop
140-
).result()
138+
doc = self.parent.documents.get_sync(Uri.from_path(source).normalized())
141139
if doc is not None and doc.opened_in_editor:
142-
return asyncio.run_coroutine_threadsafe(doc.text(), self.parent._loop).result()
140+
return doc.text_sync()
143141

144142
return source
145143

0 commit comments

Comments
 (0)