Skip to content

Commit e603628

Browse files
committed
fix(langserver): add duplicated imports to references
1 parent 321b88d commit e603628

File tree

46 files changed

+381
-54
lines changed

Some content is hidden

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

46 files changed

+381
-54
lines changed

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

Lines changed: 36 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1131,12 +1131,22 @@ def visit_VariablesImport(self, node: VariablesImport) -> None: # noqa: N802
11311131
if name_token is None:
11321132
return
11331133

1134+
found = False
11341135
entries = self.namespace.get_import_entries()
11351136
if entries and self.namespace.document:
11361137
for v in entries.values():
11371138
if v.import_source == self.namespace.source and v.import_range == range_from_token(name_token):
1138-
if v not in self._namespace_references:
1139-
self._namespace_references[v] = set()
1139+
for k in self._namespace_references:
1140+
if type(k) == type(v) and k.library_doc.source_or_origin == v.library_doc.source_or_origin:
1141+
self._namespace_references[k].add(
1142+
Location(self.namespace.document.document_uri, v.import_range)
1143+
)
1144+
found = True
1145+
break
1146+
if not found:
1147+
if v not in self._namespace_references:
1148+
self._namespace_references[v] = set()
1149+
break
11401150

11411151
def visit_ResourceImport(self, node: ResourceImport) -> None: # noqa: N802
11421152
if get_robot_version() >= (6, 1):
@@ -1146,12 +1156,22 @@ def visit_ResourceImport(self, node: ResourceImport) -> None: # noqa: N802
11461156
if name_token is None:
11471157
return
11481158

1159+
found = False
11491160
entries = self.namespace.get_import_entries()
11501161
if entries and self.namespace.document:
11511162
for v in entries.values():
11521163
if v.import_source == self.namespace.source and v.import_range == range_from_token(name_token):
1153-
if v not in self._namespace_references:
1154-
self._namespace_references[v] = set()
1164+
for k in self._namespace_references:
1165+
if type(k) == type(v) and k.library_doc.source_or_origin == v.library_doc.source_or_origin:
1166+
self._namespace_references[k].add(
1167+
Location(self.namespace.document.document_uri, v.import_range)
1168+
)
1169+
found = True
1170+
break
1171+
if not found:
1172+
if v not in self._namespace_references:
1173+
self._namespace_references[v] = set()
1174+
break
11551175

11561176
def visit_LibraryImport(self, node: LibraryImport) -> None: # noqa: N802
11571177
if get_robot_version() >= (6, 1):
@@ -1161,9 +1181,19 @@ def visit_LibraryImport(self, node: LibraryImport) -> None: # noqa: N802
11611181
if name_token is None:
11621182
return
11631183

1184+
found = False
11641185
entries = self.namespace.get_import_entries()
11651186
if entries and self.namespace.document:
11661187
for v in entries.values():
11671188
if v.import_source == self.namespace.source and v.import_range == range_from_token(name_token):
1168-
if v not in self._namespace_references:
1169-
self._namespace_references[v] = set()
1189+
for k in self._namespace_references:
1190+
if type(k) == type(v) and k.library_doc.source_or_origin == v.library_doc.source_or_origin:
1191+
self._namespace_references[k].add(
1192+
Location(self.namespace.document.document_uri, v.import_range)
1193+
)
1194+
found = True
1195+
break
1196+
if not found:
1197+
if v not in self._namespace_references:
1198+
self._namespace_references[v] = set()
1199+
break

tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-003-030-a_custom_library_with_path].out

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,15 @@ result:
1212
character: 16
1313
line: 3
1414
uri: tests/code_action_show_documentation.robot
15+
- !Location
16+
range:
17+
end:
18+
character: 47
19+
line: 5
20+
start:
21+
character: 16
22+
line: 5
23+
uri: tests/code_action_show_documentation.robot
1524
- !Location
1625
range:
1726
end:

tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-003-037-a_custom_library_with_path].out

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,15 @@ result:
1212
character: 16
1313
line: 3
1414
uri: tests/code_action_show_documentation.robot
15+
- !Location
16+
range:
17+
end:
18+
character: 47
19+
line: 5
20+
start:
21+
character: 16
22+
line: 5
23+
uri: tests/code_action_show_documentation.robot
1524
- !Location
1625
range:
1726
end:

tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-003-043-a_custom_library_with_path].out

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,15 @@ result:
1212
character: 16
1313
line: 3
1414
uri: tests/code_action_show_documentation.robot
15+
- !Location
16+
range:
17+
end:
18+
character: 47
19+
line: 5
20+
start:
21+
character: 16
22+
line: 5
23+
uri: tests/code_action_show_documentation.robot
1524
- !Location
1625
range:
1726
end:

tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-011-016-a_custom_library].out

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,15 @@ result:
5757
character: 10
5858
line: 6
5959
uri: tests/duplicated_resources.robot
60+
- !Location
61+
range:
62+
end:
63+
character: 19
64+
line: 7
65+
start:
66+
character: 11
67+
line: 7
68+
uri: tests/duplicated_resources.robot
6069
- !Location
6170
range:
6271
end:

tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-011-020-a_custom_library].out

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,15 @@ result:
5757
character: 10
5858
line: 6
5959
uri: tests/duplicated_resources.robot
60+
- !Location
61+
range:
62+
end:
63+
character: 19
64+
line: 7
65+
start:
66+
character: 11
67+
line: 7
68+
uri: tests/duplicated_resources.robot
6069
- !Location
6170
range:
6271
end:

tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-011-023-a_custom_library].out

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,15 @@ result:
5757
character: 10
5858
line: 6
5959
uri: tests/duplicated_resources.robot
60+
- !Location
61+
range:
62+
end:
63+
character: 19
64+
line: 7
65+
start:
66+
character: 11
67+
line: 7
68+
uri: tests/duplicated_resources.robot
6069
- !Location
6170
range:
6271
end:

tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-013-016-a_same_custom_library].out

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,15 @@ result:
5757
character: 10
5858
line: 6
5959
uri: tests/duplicated_resources.robot
60+
- !Location
61+
range:
62+
end:
63+
character: 19
64+
line: 7
65+
start:
66+
character: 11
67+
line: 7
68+
uri: tests/duplicated_resources.robot
6069
- !Location
6170
range:
6271
end:

tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-013-020-a_same_custom_library].out

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,15 @@ result:
5757
character: 10
5858
line: 6
5959
uri: tests/duplicated_resources.robot
60+
- !Location
61+
range:
62+
end:
63+
character: 19
64+
line: 7
65+
start:
66+
character: 11
67+
line: 7
68+
uri: tests/duplicated_resources.robot
6069
- !Location
6170
range:
6271
end:

tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-013-023-a_same_custom_library].out

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,15 @@ result:
5757
character: 10
5858
line: 6
5959
uri: tests/duplicated_resources.robot
60+
- !Location
61+
range:
62+
end:
63+
character: 19
64+
line: 7
65+
start:
66+
character: 11
67+
line: 7
68+
uri: tests/duplicated_resources.robot
6069
- !Location
6170
range:
6271
end:

0 commit comments

Comments
 (0)