Skip to content

Commit bb20071

Browse files
committed
Fix off-by-one bug in InsertClause handling; Add test case
1 parent 456f1a5 commit bb20071

File tree

4 files changed

+31
-2
lines changed

4 files changed

+31
-2
lines changed

src/cedarscript_editor/cedarscript_editor.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,14 @@ def _update_command(self, cmd: UpdateCommand):
138138
case _:
139139
marker, search_range = find_marker_or_segment(action, lines, search_range)
140140
match action:
141-
case InsertClause():
142-
search_range = search_range.set_line_count(0).inc()
141+
case InsertClause(insert_position=RelativeMarker(
142+
qualifier=qualifier)
143+
):
144+
# TODO Handle BEFORE AFTER INSIDE_TOP INSIDE_BOTTOM
145+
search_range = search_range.set_line_count(0)
146+
if qualifier != RelativePositionType.AFTER:
147+
search_range = search_range.inc()
148+
143149

144150
match content:
145151
case str() | [str(), *_] | (str(), *_):
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
def fun1(a, b):
2+
return a + b
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<no-train>
2+
```CEDARScript
3+
UPDATE FUNCTION "fun1"
4+
FROM FILE "1.py"
5+
INSERT AFTER LINE "def fun1(a, b):"
6+
WITH CONTENT '''
7+
@1:"""Docstring...
8+
@0:
9+
@1:Args:
10+
@2:a
11+
@1:"""
12+
''';
13+
```
14+
</no-train>
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
def fun1(a, b):
2+
"""Docstring...
3+
4+
Args:
5+
a
6+
"""
7+
return a + b

0 commit comments

Comments
 (0)