Skip to content

Commit 99bc996

Browse files
committed
feat(langserver): inlay hint and signature help now shows the correct parameters and active parameter index, make both work for library and variable imports and show type informations if type hints are defined
1 parent ff87819 commit 99bc996

File tree

180 files changed

+1915
-1182
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

180 files changed

+1915
-1182
lines changed

Diff for: packages/language_server/src/robotcode/language_server/robotframework/diagnostics/analyzer.py

+12-12
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ async def visit(self, node: ast.AST) -> None:
195195
)
196196

197197
if isinstance(node, KeywordCall) and node.keyword:
198-
kw_doc = self.finder.find_keyword(node.keyword)
198+
kw_doc = self.finder.find_keyword(node.keyword, raise_keyword_error=False)
199199
if kw_doc is not None and kw_doc.longname in ["BuiltIn.Comment"]:
200200
severity = DiagnosticSeverity.HINT
201201

@@ -408,20 +408,20 @@ async def _analyze_keyword_call(
408408
kw_range.start.character = r.end.character + 1
409409
lib_range.end.character = kw_range.start.character - 1
410410

411-
result = self.finder.find_keyword(keyword)
411+
result = self.finder.find_keyword(keyword, raise_keyword_error=False)
412412

413413
if (
414414
result is not None
415415
and lib_entry is not None
416416
and kw_namespace
417-
and result.parent is not None
418-
and result.parent != lib_entry.library_doc.digest
417+
and result.parent_digest is not None
418+
and result.parent_digest != lib_entry.library_doc.digest
419419
):
420420
entry = next(
421421
(
422422
v
423423
for v in (await self.namespace.get_libraries()).values()
424-
if v.library_doc.digest == result.parent
424+
if v.library_doc.digest == result.parent_digest
425425
),
426426
None,
427427
)
@@ -430,7 +430,7 @@ async def _analyze_keyword_call(
430430
(
431431
v
432432
for v in (await self.namespace.get_resources()).values()
433-
if v.library_doc.digest == result.parent
433+
if v.library_doc.digest == result.parent_digest
434434
),
435435
None,
436436
)
@@ -452,8 +452,8 @@ async def _analyze_keyword_call(
452452

453453
if result is None:
454454
if self.namespace.document is not None and self.finder.multiple_keywords_result is not None:
455-
for lib_entry, kw_doc in self.finder.multiple_keywords_result:
456-
self._keyword_references[kw_doc].add(Location(self.namespace.document.document_uri, kw_range))
455+
for d in self.finder.multiple_keywords_result:
456+
self._keyword_references[d].add(Location(self.namespace.document.document_uri, kw_range))
457457
else:
458458
if self.namespace.document is not None:
459459
self._keyword_references[result].add(Location(self.namespace.document.document_uri, kw_range))
@@ -536,8 +536,8 @@ async def _analyze_keyword_call(
536536

537537
if not isinstance(node, (Template, TestTemplate)):
538538
try:
539-
if result.arguments is not None:
540-
result.arguments.resolve(
539+
if result.arguments_spec is not None:
540+
result.arguments_spec.resolve(
541541
[v.value for v in argument_tokens],
542542
None,
543543
resolve_variables_until=result.args_to_process,
@@ -953,8 +953,8 @@ async def visit_TemplateArguments(self, node: ast.AST) -> None: # noqa: N802
953953
result = self.finder.find_keyword(keyword)
954954
if result is not None:
955955
try:
956-
if result.arguments is not None:
957-
result.arguments.resolve(
956+
if result.arguments_spec is not None:
957+
result.arguments_spec.resolve(
958958
args,
959959
None,
960960
resolve_variables_until=result.args_to_process,

0 commit comments

Comments
 (0)