Skip to content

Commit e1ac0cb

Browse files
committed
fix(langserver): correct importing variables with the same filename
closes [BUG] Variables from variable files are often displayed as not found #214
1 parent 9bbe68b commit e1ac0cb

15 files changed

+56
-51
lines changed

packages/language_server/src/robotcode/language_server/robotframework/parts/references.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -543,7 +543,7 @@ def _find_variables_import_references_in_file(self, doc: TextDocument, library_d
543543
namespace = self.parent.documents_cache.get_namespace(doc)
544544

545545
result: List[Location] = []
546-
for lib_entry in (namespace.get_imported_variables()).values():
546+
for lib_entry in namespace.get_imported_variables().values():
547547
if lib_entry.import_source == str(doc.uri.to_path()) and lib_entry.library_doc.source == library_doc.source:
548548
result.append(Location(str(doc.uri), lib_entry.import_range))
549549

packages/robot/src/robotcode/robot/diagnostics/library_doc.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2118,14 +2118,19 @@ def get_variables_doc(
21182118
if import_name.lower().endswith((".yaml", ".yml")):
21192119
source = import_name
21202120
importer = YamlImporter()
2121+
stem = Path(import_name).stem
21212122
elif get_robot_version() >= (6, 1) and import_name.lower().endswith(".json"):
21222123
source = import_name
21232124
importer = JsonImporter()
2125+
stem = Path(import_name).stem
21242126
else:
21252127
python_import = True
21262128

21272129
if not is_variables_by_path(import_name):
2130+
stem = import_name
21282131
module_spec = get_module_spec(import_name)
2132+
else:
2133+
stem = Path(import_name).stem
21292134

21302135
# skip antigravity easter egg
21312136
# see https://python-history.blogspot.com/2010/06/import-antigravity.html

packages/robot/src/robotcode/robot/diagnostics/namespace.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1292,8 +1292,8 @@ def _import(
12921292
code=Error.VARIABLES_ALREADY_IMPORTED,
12931293
)
12941294

1295-
if (entry.alias or entry.name or entry.import_name) not in self._variables:
1296-
self._variables[entry.alias or entry.name or entry.import_name] = entry
1295+
if entry.library_doc is not None and entry.library_doc.source_or_origin:
1296+
self._variables[entry.library_doc.source_or_origin] = entry
12971297

12981298
elif isinstance(entry, LibraryEntry):
12991299
if top_level and entry.name == BUILTIN_LIBRARY_NAME and entry.alias is None:

tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_references.test[references.robot-006-033-a_variable_import].out

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ result:
2424
- !Location
2525
range:
2626
end:
27-
character: 24
28-
line: 9
27+
character: 26
28+
line: 10
2929
start:
30-
character: 13
31-
line: 9
30+
character: 12
31+
line: 10
3232
uri: tests/duplicated_resources.robot
3333
- !Location
3434
range:

tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_references.test[references.robot-006-040-a_variable_import].out

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ result:
2424
- !Location
2525
range:
2626
end:
27-
character: 24
28-
line: 9
27+
character: 26
28+
line: 10
2929
start:
30-
character: 13
31-
line: 9
30+
character: 12
31+
line: 10
3232
uri: tests/duplicated_resources.robot
3333
- !Location
3434
range:

tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_references.test[references.robot-006-046-a_variable_import].out

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ result:
2424
- !Location
2525
range:
2626
end:
27-
character: 24
28-
line: 9
27+
character: 26
28+
line: 10
2929
start:
30-
character: 13
31-
line: 9
30+
character: 12
31+
line: 10
3232
uri: tests/duplicated_resources.robot
3333
- !Location
3434
range:

tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_references.test[references.robot-006-033-a_variable_import].out

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ result:
2424
- !Location
2525
range:
2626
end:
27-
character: 24
28-
line: 9
27+
character: 26
28+
line: 10
2929
start:
30-
character: 13
31-
line: 9
30+
character: 12
31+
line: 10
3232
uri: tests/duplicated_resources.robot
3333
- !Location
3434
range:

tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_references.test[references.robot-006-040-a_variable_import].out

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ result:
2424
- !Location
2525
range:
2626
end:
27-
character: 24
28-
line: 9
27+
character: 26
28+
line: 10
2929
start:
30-
character: 13
31-
line: 9
30+
character: 12
31+
line: 10
3232
uri: tests/duplicated_resources.robot
3333
- !Location
3434
range:

tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_references.test[references.robot-006-046-a_variable_import].out

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ result:
2424
- !Location
2525
range:
2626
end:
27-
character: 24
28-
line: 9
27+
character: 26
28+
line: 10
2929
start:
30-
character: 13
31-
line: 9
30+
character: 12
31+
line: 10
3232
uri: tests/duplicated_resources.robot
3333
- !Location
3434
range:

tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_references.test[references.robot-006-033-a_variable_import].out

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ result:
2424
- !Location
2525
range:
2626
end:
27-
character: 24
28-
line: 9
27+
character: 26
28+
line: 10
2929
start:
30-
character: 13
31-
line: 9
30+
character: 12
31+
line: 10
3232
uri: tests/duplicated_resources.robot
3333
- !Location
3434
range:

tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_references.test[references.robot-006-040-a_variable_import].out

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ result:
2424
- !Location
2525
range:
2626
end:
27-
character: 24
28-
line: 9
27+
character: 26
28+
line: 10
2929
start:
30-
character: 13
31-
line: 9
30+
character: 12
31+
line: 10
3232
uri: tests/duplicated_resources.robot
3333
- !Location
3434
range:

tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_references.test[references.robot-006-046-a_variable_import].out

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ result:
2424
- !Location
2525
range:
2626
end:
27-
character: 24
28-
line: 9
27+
character: 26
28+
line: 10
2929
start:
30-
character: 13
31-
line: 9
30+
character: 12
31+
line: 10
3232
uri: tests/duplicated_resources.robot
3333
- !Location
3434
range:

tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_references.test[references.robot-006-033-a_variable_import].out

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ result:
2424
- !Location
2525
range:
2626
end:
27-
character: 24
28-
line: 9
27+
character: 26
28+
line: 10
2929
start:
30-
character: 13
31-
line: 9
30+
character: 12
31+
line: 10
3232
uri: tests/duplicated_resources.robot
3333
- !Location
3434
range:

tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_references.test[references.robot-006-040-a_variable_import].out

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ result:
2424
- !Location
2525
range:
2626
end:
27-
character: 24
28-
line: 9
27+
character: 26
28+
line: 10
2929
start:
30-
character: 13
31-
line: 9
30+
character: 12
31+
line: 10
3232
uri: tests/duplicated_resources.robot
3333
- !Location
3434
range:

tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_references.test[references.robot-006-046-a_variable_import].out

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ result:
2424
- !Location
2525
range:
2626
end:
27-
character: 24
28-
line: 9
27+
character: 26
28+
line: 10
2929
start:
30-
character: 13
31-
line: 9
30+
character: 12
31+
line: 10
3232
uri: tests/duplicated_resources.robot
3333
- !Location
3434
range:

0 commit comments

Comments
 (0)