Skip to content

Commit 916c5f4

Browse files
committed
Fix bugs
1 parent abb00a7 commit 916c5f4

File tree

4 files changed

+54
-22
lines changed

4 files changed

+54
-22
lines changed

src/cedarscript_editor/cedarscript_editor.py

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -118,8 +118,8 @@ def _update_command(self, cmd: UpdateCommand):
118118
move_src_range = None
119119
# Set range_spec to cover the identifier
120120
match action:
121-
case RegionClause(region=region):
122-
search_range = restrict_search_range(action.region, target, identifier_finder, lines)
121+
case RegionClause(region=region) | InsertClause(insert_position=region):
122+
search_range = restrict_search_range(region, target, identifier_finder, lines)
123123

124124
# UPDATE FUNCTION "_check_raw_id_fields_item"
125125
# FROM FILE "refactor-benchmark/checks_BaseModelAdminChecks__check_raw_id_fields_item/checks.py"
@@ -137,9 +137,9 @@ def _update_command(self, cmd: UpdateCommand):
137137
pass
138138
case _:
139139
marker, search_range = find_marker_or_segment(action, lines, search_range)
140-
search_range = restrict_search_range_for_marker(
141-
marker, action, lines, search_range, identifier_finder
142-
)
140+
match action:
141+
case InsertClause():
142+
search_range = search_range.set_line_count(0).inc()
143143

144144
match content:
145145
case str() | [str(), *_] | (str(), *_):
@@ -343,24 +343,22 @@ def restrict_search_range_for_marker(
343343
return search_range
344344

345345
match marker:
346+
case Marker(type=MarkerType.LINE):
347+
search_range = marker.to_search_range(lines, search_range)
348+
match action:
349+
case InsertClause():
350+
if action.insert_position.qualifier == RelativePositionType.BEFORE:
351+
search_range = search_range.inc()
352+
case RegionClause():
353+
search_range = search_range.set_line_count(1)
346354
case Marker():
347-
match marker.type:
348-
case MarkerType.LINE:
349-
search_range = marker.to_search_range(lines, search_range)
350-
match action:
351-
case InsertClause():
352-
if action.insert_position.qualifier == RelativePositionType.BEFORE:
353-
search_range = search_range.inc()
354-
case RegionClause():
355-
search_range = search_range.set_line_count(1)
356-
case _:
357-
identifier_boundaries = identifier_finder(marker)
358-
if not identifier_boundaries:
359-
raise ValueError(f"'{marker}' not found")
360-
qualifier: RelativePositionType = marker.qualifier if isinstance(
361-
marker, RelativeMarker
362-
) else RelativePositionType.AT
363-
search_range = identifier_boundaries.location_to_search_range(qualifier)
355+
identifier_boundaries = identifier_finder(marker)
356+
if not identifier_boundaries:
357+
raise ValueError(f"'{marker}' not found")
358+
qualifier: RelativePositionType = marker.qualifier if isinstance(
359+
marker, RelativeMarker
360+
) else RelativePositionType.AT
361+
search_range = identifier_boundaries.location_to_search_range(qualifier)
364362
case Segment():
365363
pass # TODO
366364
return search_range
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
class A:
2+
def m0(self):
3+
pass
4+
def __init__(self, value):
5+
self._value = value
6+
def m2(self):
7+
pass
8+
class B:
9+
def __init__(self):
10+
pass
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<no-train>
2+
```CEDARScript
3+
UPDATE CLASS "A"
4+
FROM FILE "1.py"
5+
INSERT INSIDE FUNCTION "__init__" BOTTOM
6+
WITH CONTENT '''
7+
@-1:def m1(self):
8+
@0:pass
9+
''';
10+
11+
```
12+
</no-train>
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
class A:
2+
def m0(self):
3+
pass
4+
def __init__(self, value):
5+
self._value = value
6+
def m1(self):
7+
pass
8+
def m2(self):
9+
pass
10+
class B:
11+
def __init__(self):
12+
pass

0 commit comments

Comments
 (0)