Skip to content

Commit 22a92f3

Browse files
authored
Merge pull request #825 from posit-dev/bugfix/folding-range-brace-in-call
Fixes for folding ranges
2 parents 12417d5 + 2ee7ae2 commit 22a92f3

13 files changed

+457
-116
lines changed

crates/ark/src/lsp/folding_range.rs

Lines changed: 201 additions & 84 deletions
Large diffs are not rendered by default.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
---
2+
source: crates/ark/src/lsp/folding_range.rs
3+
expression: "test_folding_range(\"\ncall({\n 1\n})\n\")"
4+
---
5+
[
6+
FoldingRange {
7+
start_line: 1,
8+
start_character: Some(
9+
6,
10+
),
11+
end_line: 2,
12+
end_character: None,
13+
kind: Some(
14+
Region,
15+
),
16+
collapsed_text: None,
17+
},
18+
FoldingRange {
19+
start_line: 1,
20+
start_character: Some(
21+
5,
22+
),
23+
end_line: 3,
24+
end_character: Some(
25+
1,
26+
),
27+
kind: Some(
28+
Region,
29+
),
30+
collapsed_text: None,
31+
},
32+
]
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
---
2+
source: crates/ark/src/lsp/folding_range.rs
3+
expression: "test_folding_range(\"\ncall(foo, {\n 1\n})\n\")"
4+
---
5+
[
6+
FoldingRange {
7+
start_line: 1,
8+
start_character: Some(
9+
11,
10+
),
11+
end_line: 2,
12+
end_character: None,
13+
kind: Some(
14+
Region,
15+
),
16+
collapsed_text: None,
17+
},
18+
FoldingRange {
19+
start_line: 1,
20+
start_character: Some(
21+
5,
22+
),
23+
end_line: 3,
24+
end_character: Some(
25+
1,
26+
),
27+
kind: Some(
28+
Region,
29+
),
30+
collapsed_text: None,
31+
},
32+
]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
---
2+
source: crates/ark/src/lsp/folding_range.rs
3+
expression: "test_folding_range(\"\ncall(foo, {\n 1\n},\nbar)\n\")"
4+
---
5+
[
6+
FoldingRange {
7+
start_line: 1,
8+
start_character: Some(
9+
11,
10+
),
11+
end_line: 2,
12+
end_character: None,
13+
kind: Some(
14+
Region,
15+
),
16+
collapsed_text: None,
17+
},
18+
FoldingRange {
19+
start_line: 1,
20+
start_character: Some(
21+
5,
22+
),
23+
end_line: 4,
24+
end_character: Some(
25+
3,
26+
),
27+
kind: Some(
28+
Region,
29+
),
30+
collapsed_text: None,
31+
},
32+
]

crates/ark/src/lsp/snapshots/ark__lsp__folding_range__tests__folding_complex_nested.snap

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ expression: "test_folding_range(\"\n# Complex example ----\nfunction(a, b, c) {\
66
FoldingRange {
77
start_line: 1,
88
start_character: None,
9-
end_line: 18,
9+
end_line: 19,
1010
end_character: None,
1111
kind: Some(
1212
Region,
@@ -62,7 +62,7 @@ expression: "test_folding_range(\"\n# Complex example ----\nfunction(a, b, c) {\
6262
FoldingRange {
6363
start_line: 18,
6464
start_character: None,
65-
end_line: 18,
65+
end_line: 19,
6666
end_character: None,
6767
kind: Some(
6868
Region,

crates/ark/src/lsp/snapshots/ark__lsp__folding_range__tests__folding_empty_sections.snap

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
---
22
source: crates/ark/src/lsp/folding_range.rs
3-
expression: "test_folding_range(\"\n# Empty section ----\n\n# Another empty section ----\n\n# Section with content ----\nThis one has content\")"
3+
expression: "test_folding_range(\"\n# Empty section ----\n\n# Another empty section ----\n\n# Section with content ----\na\")"
44
---
55
[
66
FoldingRange {
77
start_line: 1,
88
start_character: None,
9-
end_line: 1,
9+
end_line: 2,
1010
end_character: None,
1111
kind: Some(
1212
Region,
@@ -16,7 +16,7 @@ expression: "test_folding_range(\"\n# Empty section ----\n\n# Another empty sect
1616
FoldingRange {
1717
start_line: 3,
1818
start_character: None,
19-
end_line: 3,
19+
end_line: 4,
2020
end_character: None,
2121
kind: Some(
2222
Region,
@@ -26,7 +26,7 @@ expression: "test_folding_range(\"\n# Empty section ----\n\n# Another empty sect
2626
FoldingRange {
2727
start_line: 5,
2828
start_character: None,
29-
end_line: 5,
29+
end_line: 6,
3030
end_character: None,
3131
kind: Some(
3232
Region,

crates/ark/src/lsp/snapshots/ark__lsp__folding_range__tests__folding_mixed.snap

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ expression: "test_folding_range(\"\n# First section ----\nfunction() {\n # #reg
66
FoldingRange {
77
start_line: 1,
88
start_character: None,
9-
end_line: 10,
9+
end_line: 11,
1010
end_character: None,
1111
kind: Some(
1212
Region,
@@ -38,7 +38,7 @@ expression: "test_folding_range(\"\n# First section ----\nfunction() {\n # #reg
3838
FoldingRange {
3939
start_line: 8,
4040
start_character: None,
41-
end_line: 10,
41+
end_line: 11,
4242
end_character: None,
4343
kind: Some(
4444
Region,
@@ -48,7 +48,7 @@ expression: "test_folding_range(\"\n# First section ----\nfunction() {\n # #reg
4848
FoldingRange {
4949
start_line: 9,
5050
start_character: None,
51-
end_line: 13,
51+
end_line: 11,
5252
end_character: None,
5353
kind: Some(
5454
Region,
@@ -58,7 +58,7 @@ expression: "test_folding_range(\"\n# First section ----\nfunction() {\n # #reg
5858
FoldingRange {
5959
start_line: 12,
6060
start_character: None,
61-
end_line: 12,
61+
end_line: 13,
6262
end_character: None,
6363
kind: Some(
6464
Region,

crates/ark/src/lsp/snapshots/ark__lsp__folding_range__tests__folding_nested_section_comments.snap

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
---
22
source: crates/ark/src/lsp/folding_range.rs
3-
expression: "test_folding_range(\"\n# Level 1 ----\ncode at level 1\n\n## Level 2 ----\ncode at level 2\n\n### Level 3 ----\ncode at level 3\n\n## Another Level 2 ----\nback to level 2\n\n# Back to Level 1 ----\nback to level 1\")"
3+
expression: "test_folding_range(\"\n# Level 1 ----\na\n\n## Level 2 ----\nb\n\n### Level 3 ----\nc\n\n## Another Level 2 ----\nd\n\n# Back to Level 1 ----\ne\n\n# %% Chunk at Level 1\nf\n\n## %% Another chunk at Level 1\ng\")"
44
---
55
[
66
FoldingRange {
77
start_line: 1,
88
start_character: None,
9-
end_line: 11,
9+
end_line: 12,
1010
end_character: None,
1111
kind: Some(
1212
Region,
@@ -16,7 +16,7 @@ expression: "test_folding_range(\"\n# Level 1 ----\ncode at level 1\n\n## Level
1616
FoldingRange {
1717
start_line: 4,
1818
start_character: None,
19-
end_line: 8,
19+
end_line: 9,
2020
end_character: None,
2121
kind: Some(
2222
Region,
@@ -26,7 +26,7 @@ expression: "test_folding_range(\"\n# Level 1 ----\ncode at level 1\n\n## Level
2626
FoldingRange {
2727
start_line: 7,
2828
start_character: None,
29-
end_line: 8,
29+
end_line: 9,
3030
end_character: None,
3131
kind: Some(
3232
Region,
@@ -36,7 +36,7 @@ expression: "test_folding_range(\"\n# Level 1 ----\ncode at level 1\n\n## Level
3636
FoldingRange {
3737
start_line: 10,
3838
start_character: None,
39-
end_line: 11,
39+
end_line: 12,
4040
end_character: None,
4141
kind: Some(
4242
Region,
@@ -46,7 +46,27 @@ expression: "test_folding_range(\"\n# Level 1 ----\ncode at level 1\n\n## Level
4646
FoldingRange {
4747
start_line: 13,
4848
start_character: None,
49-
end_line: 13,
49+
end_line: 20,
50+
end_character: None,
51+
kind: Some(
52+
Region,
53+
),
54+
collapsed_text: None,
55+
},
56+
FoldingRange {
57+
start_line: 16,
58+
start_character: None,
59+
end_line: 18,
60+
end_character: None,
61+
kind: Some(
62+
Region,
63+
),
64+
collapsed_text: None,
65+
},
66+
FoldingRange {
67+
start_line: 19,
68+
start_character: None,
69+
end_line: 20,
5070
end_character: None,
5171
kind: Some(
5272
Region,
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
source: crates/ark/src/lsp/folding_range.rs
3+
expression: "test_folding_range(\"\n#+ Cell\na\n\n# Section ----\nb\n\n#+ Other cell\nc\n\")"
4+
---
5+
[
6+
FoldingRange {
7+
start_line: 1,
8+
start_character: None,
9+
end_line: 3,
10+
end_character: None,
11+
kind: Some(
12+
Region,
13+
),
14+
collapsed_text: None,
15+
},
16+
FoldingRange {
17+
start_line: 4,
18+
start_character: None,
19+
end_line: 9,
20+
end_character: None,
21+
kind: Some(
22+
Region,
23+
),
24+
collapsed_text: None,
25+
},
26+
FoldingRange {
27+
start_line: 7,
28+
start_character: None,
29+
end_line: 9,
30+
end_character: None,
31+
kind: Some(
32+
Region,
33+
),
34+
collapsed_text: None,
35+
},
36+
]
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
---
2+
source: crates/ark/src/lsp/folding_range.rs
3+
expression: "test_folding_range(\"\n# Section ----\na\n\n#+ Cell\nb\n\n# Section ----\nc\n\n#+ Other cell\nd\n\")"
4+
---
5+
[
6+
FoldingRange {
7+
start_line: 1,
8+
start_character: None,
9+
end_line: 6,
10+
end_character: None,
11+
kind: Some(
12+
Region,
13+
),
14+
collapsed_text: None,
15+
},
16+
FoldingRange {
17+
start_line: 4,
18+
start_character: None,
19+
end_line: 6,
20+
end_character: None,
21+
kind: Some(
22+
Region,
23+
),
24+
collapsed_text: None,
25+
},
26+
FoldingRange {
27+
start_line: 7,
28+
start_character: None,
29+
end_line: 12,
30+
end_character: None,
31+
kind: Some(
32+
Region,
33+
),
34+
collapsed_text: None,
35+
},
36+
FoldingRange {
37+
start_line: 10,
38+
start_character: None,
39+
end_line: 12,
40+
end_character: None,
41+
kind: Some(
42+
Region,
43+
),
44+
collapsed_text: None,
45+
},
46+
]

0 commit comments

Comments
 (0)