Skip to content

Commit f5fc2b0

Browse files
committed
WIP. Fix test 'x.update.identifier.move.whole.2'
1 parent 7356abb commit f5fc2b0

File tree

15 files changed

+149
-10
lines changed

15 files changed

+149
-10
lines changed

src/cedarscript_editor/cedarscript_editor.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -184,26 +184,28 @@ def _update_command(self, cmd: UpdateCommand):
184184
match content:
185185
case str() | [str(), *_] | (str(), *_):
186186
pass
187-
case (region, relindent):
188-
dest_indent = search_range.indent
187+
case (region, relindent_level):
188+
dest_indent_count = search_range.indent
189189
content_range = restrict_search_range_for_marker(
190190
region, action, lines, RangeSpec.EMPTY, identifier_finder
191191
)
192192
content = content_range.read(lines)
193-
count = dest_indent + (relindent or 0)
193+
count = dest_indent_count + (relindent_level or 0)
194194
content = IndentationInfo.from_content(content).shift_indentation(
195195
content, count
196196
)
197197
content = (region, content)
198198
case _:
199199
match action:
200-
case MoveClause(insert_position=region, relative_indentation=relindent):
201-
dest_range = restrict_search_range_for_marker(
202-
region, action, lines, RangeSpec.EMPTY, identifier_finder
203-
)
204-
dest_indent = dest_range.indent
200+
case MoveClause(insert_position=region, relative_indentation=relindent_level):
201+
# dest_range = restrict_search_range_for_marker(
202+
# region, action, lines, RangeSpec.EMPTY, identifier_finder
203+
# )
204+
# TODO Make sure 3 lines above are not needed
205+
dest_range = search_range
206+
dest_indent_count = dest_range.indent
205207
content = move_src_range.read(lines)
206-
shift_count = dest_indent + (relindent or 0)
208+
shift_count = dest_indent_count + (relindent_level or 0) # TODO Fix
207209
content = IndentationInfo.from_content(content).shift_indentation(
208210
content, shift_count
209211
)

src/text_manipulation/indentation_kit.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,7 @@ def level_to_chars(self, level: int) -> str:
210210
"""
211211
return level * self.char_count * self.char
212212

213+
# TODO Revise
213214
def shift_indentation(self, lines: Sequence[str], target_base_indentation_count: int) -> list[str]:
214215
"""
215216
Shift the indentation of a sequence of lines based on a target base indentation count.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<no-train>
2+
```CEDARScript
3+
-- A02 becomes inner of b
4+
UPDATE FUNCTION "b" FROM FILE "main.py"
5+
MOVE WHOLE INSERT BEFORE CLASS "A02"
6+
RELATIVE INDENTATION -1;
7+
```
8+
</no-train>
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
class A0:
2+
...
3+
class A01:
4+
...
5+
def b(self, obj, field_name, label):
6+
"""Check an item of `raw_id_fields`, i.e. check that field named
7+
`field_name` exists in model `model` and is a ForeignKey or a
8+
ManyToManyField."""
9+
class A02:
10+
...
11+
class A:
12+
def a(self):
13+
pass
14+
def pst(self):
15+
pass # 1st
16+
def pst(self):
17+
pass # 2nd
18+
class A1:
19+
class A2:
20+
class A3:
21+
pass
22+
class A4:
23+
pass
24+
class A5:
25+
pass
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
class A0:
2+
...
3+
class A01:
4+
...
5+
class A02:
6+
...
7+
class A:
8+
def a(self):
9+
pass
10+
def b(self, obj, field_name, label):
11+
"""Check an item of `raw_id_fields`, i.e. check that field named
12+
`field_name` exists in model `model` and is a ForeignKey or a
13+
ManyToManyField."""
14+
def pst(self):
15+
pass # 1st
16+
def pst(self):
17+
pass # 2nd
18+
class A1:
19+
class A2:
20+
class A3:
21+
pass
22+
class A4:
23+
pass
24+
class A5:
25+
pass
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<no-train>
2+
```CEDARScript
3+
UPDATE FUNCTION "_check_raw_id_fields_item"
4+
FROM FILE "main.py"
5+
REPLACE LINE "def _check_raw_id_fields_item(self, obj, field_name, label):"
6+
WITH CONTENT '''
7+
@0:def _check_raw_id_fields_item(obj, field_name, label):
8+
''';
9+
```
10+
</no-train>
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
def _check_raw_id_fields_item(obj, field_name, label):
2+
"""Check an item of `raw_id_fields`, i.e. check that field named
3+
`field_name` exists in model `model` and is a ForeignKey or a
4+
ManyToManyField."""

0 commit comments

Comments
 (0)