Skip to content

Commit 324d766

Browse files
committed
fix: find reference in USE after comment
Fixes #450
1 parent ff31b7e commit 324d766

File tree

3 files changed

+23
-1
lines changed

3 files changed

+23
-1
lines changed

fortls/parsers/internal/parser.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -637,7 +637,7 @@ def read_use_stmt(line: str) -> tuple[Literal["use"], Use] | None:
637637
if use_match is None:
638638
return None
639639

640-
trailing_line = line[use_match.end(0) :].lower()
640+
trailing_line = line[use_match.end(0) :].lower().split("!")[0]
641641
use_mod = use_match.group(2)
642642
only_list: set[str] = set()
643643
rename_map: dict[str, str] = {}

test/test_server_references.py

+15
Original file line numberDiff line numberDiff line change
@@ -60,3 +60,18 @@ def test_references_ignore_comments_fixed():
6060
errcode, results = run_request(string)
6161
assert errcode == 0
6262
assert len(results[1]) == 2
63+
64+
65+
def test_references_ignore_comments_on_use_import():
66+
string = write_rpc_request(1, "initialize", {"rootPath": str(test_dir / "use")})
67+
file_path = test_dir / "use" / "comment_after_use.f90"
68+
string += ref_req(file_path, 6, 31)
69+
errcode, results = run_request(string, ["-n", "1"])
70+
assert errcode == 0
71+
validate_refs(
72+
results[1],
73+
(
74+
[str(file_path), 1, 15, 27],
75+
[str(file_path), 5, 23, 35],
76+
),
77+
)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
module dep_mod
2+
integer :: dep_variable
3+
end module dep_mod
4+
5+
module user_mod
6+
use dep_mod, only: dep_variable ! disabling comment
7+
end module user_mod

0 commit comments

Comments
 (0)