From 839b39ae7b05c40611c5ed653ff6ff262d9e5bc3 Mon Sep 17 00:00:00 2001 From: Tomoto Shimizu Washio Date: Mon, 9 Dec 2024 01:12:01 +0900 Subject: [PATCH 1/3] fix: flip the condition in strip_comment for fixed format --- fortls/parsers/internal/parser.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fortls/parsers/internal/parser.py b/fortls/parsers/internal/parser.py index 5095a6d4..d63cfe4d 100644 --- a/fortls/parsers/internal/parser.py +++ b/fortls/parsers/internal/parser.py @@ -1137,7 +1137,7 @@ def get_code_line( def strip_comment(self, line: str) -> str: """Strip comment from line""" if self.fixed: - if FRegex.FIXED_COMMENT.match(line) and FRegex.FIXED_OPENMP.match(line): + if FRegex.FIXED_COMMENT.match(line) and not FRegex.FIXED_OPENMP.match(line): return "" else: if FRegex.FREE_OPENMP.match(line) is None: From e363056876951a85ebf48c2d2597a7b1eaba795c Mon Sep 17 00:00:00 2001 From: gnikit Date: Sat, 1 Mar 2025 10:57:59 +0000 Subject: [PATCH 2/3] test: add reference exclusion test for fixed format --- test/test_server_references.py | 9 +++++++++ test/test_source/fixed/comment_as_reference.f | 5 +++++ 2 files changed, 14 insertions(+) create mode 100644 test/test_source/fixed/comment_as_reference.f diff --git a/test/test_server_references.py b/test/test_server_references.py index 89e25948..6fa775c8 100644 --- a/test/test_server_references.py +++ b/test/test_server_references.py @@ -51,3 +51,12 @@ def test_references(): [free_path, 78, 6, 12], ), ) + + +def test_references_ignore_comments_fixed(): + string = write_rpc_request(1, "initialize", {"rootPath": str(test_dir / "fixed")}) + file_path = test_dir / "fixed" / "comment_as_reference.f" + string += ref_req(file_path, 3, 22) + errcode, results = run_request(string) + assert errcode == 0 + assert len(results[1]) == 2 diff --git a/test/test_source/fixed/comment_as_reference.f b/test/test_source/fixed/comment_as_reference.f new file mode 100644 index 00000000..c10b9d2b --- /dev/null +++ b/test/test_source/fixed/comment_as_reference.f @@ -0,0 +1,5 @@ + program comment_as_reference +C Comment with variable name gets picked as a ref: variable_to_reference + real variable_to_reference + variable_to_reference = 1 + end program comment_as_reference From 9f38ea47984a7757e7f448156725a8fb96028df2 Mon Sep 17 00:00:00 2001 From: gnikit Date: Sat, 1 Mar 2025 11:02:41 +0000 Subject: [PATCH 3/3] chore: update CHANGELOG --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 50f0fed4..dda91be8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ ## Unreleased +### Fixed + +- Fixed bug with Fixed Format references being incorrectly detected in comments + ([#447](https://github.com/fortran-lang/fortls/issues/447)) + ## 3.1.2 ### Fixed