Skip to content

Commit 9e42210

Browse files
authored
Merge pull request #293 from folk85/master
Fix #291 hover multi-line parameter signature
2 parents a3a0f07 + ff3e3e0 commit 9e42210

File tree

3 files changed

+19
-2
lines changed

3 files changed

+19
-2
lines changed

fortls/parse_fortran.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1451,7 +1451,7 @@ def parse(
14511451
_, col = find_word_in_line(line, name)
14521452
match = FRegex.PARAMETER_VAL.match(line[col:])
14531453
if match:
1454-
var = match.group(1).strip()
1454+
var = " ".join(match.group(1).strip().split())
14551455
new_var.set_parameter_val(var)
14561456

14571457
# Check if the "variable" is external and if so cycle

test/test_server_hover.py

+15-1
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ def test_hover_parameter_var_mul():
122122
string += hover_req(file_path, 15, 28)
123123
errcode, results = run_request(string, fortls_args=["--sort_keywords"])
124124
assert errcode == 0
125-
ref_results = ["```fortran90\nINTEGER, PARAMETER :: var_mul1 = 1 * 23\n```"]
125+
ref_results = ["```fortran90\nINTEGER, PARAMETER :: var_mul1 = 1 * 23\n```"]
126126
validate_hover(results, ref_results)
127127

128128

@@ -137,6 +137,20 @@ def test_hover_parameter_var_div():
137137
validate_hover(results, ref_results)
138138

139139

140+
def test_hover_parameter_var_multiline2():
141+
"""Test that hover parameters display value correctly with
142+
multiplication and spaces. Item 2"""
143+
string = write_rpc_request(1, "initialize", {"rootPath": str(test_dir)})
144+
file_path = test_dir / "hover" / "parameters.f90"
145+
string += hover_req(file_path, 17, 28)
146+
errcode, results = run_request(string, fortls_args=["--sort_keywords"])
147+
assert errcode == 0
148+
ref_results = [
149+
"```fortran90\nINTEGER, PARAMETER :: var_multi2 = 1 * 23 + 2 /1\n```"
150+
]
151+
validate_hover(results, ref_results)
152+
153+
140154
def test_hover_parameter_nested():
141155
"""Test that hover parameters using other parameter values works"""
142156
string = write_rpc_request(1, "initialize", {"rootPath": str(test_dir)})

test/test_source/hover/parameters.f90

+3
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,7 @@ program params
1515
integer, parameter :: var_ex1 = 1 - 23
1616
integer, parameter :: var_mul1 = 1 * 23
1717
integer, parameter :: var_div1 = 1/1
18+
INTEGER, PARAMETER :: var_multi2 = 1 * &
19+
23 + &
20+
2 /1 ! comment
1821
end program params

0 commit comments

Comments
 (0)