- commit
- 06c12f2f96436f5630204e706ce8aefb6ae5c0b9
- parent
- eb9a0ac99b29f7e79548067af940088e5ed12e4d
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2024-08-18 11:50
refactor: sheet.set_shifted
Diffstat
| M | sheet/__main__.py | 14 | +++----------- |
| M | sheet/sheet.py | 9 | +++++++++ |
2 files changed, 12 insertions, 11 deletions
diff --git a/sheet/__main__.py b/sheet/__main__.py
@@ -5,8 +5,6 @@ from wcwidth import wcswidth 5 5 6 6 from .csv import dump_csv 7 7 from .csv import load_csv8 -1 from .expression import shift_refs9 -1 from .expression import unparse10 8 from .expression import x2col 11 9 from .input import Input 12 10 from .sheet import Bar @@ -182,15 +180,9 @@ class App(boon.App): 182 180 183 181 def submit_drag(self): 184 182 raw = self.sheet.get_raw(self.drag)185 -1 if raw.startswith('='):186 -1 expr = self.sheet.get_parsed(self.drag)187 -1 assert isinstance(expr, tuple)188 -1 for x, y in iter_range(self.cursor, self.drag):189 -1 shifted = shift_refs(expr, (x - self.drag[0], y - self.drag[1]))190 -1 self.sheet.set((x, y), '=' + unparse(shifted))191 -1 else:192 -1 for x, y in iter_range(self.cursor, self.drag):193 -1 self.sheet.set((x, y), raw)-1 183 for x, y in iter_range(self.cursor, self.drag): -1 184 shift = (x - self.drag[0], y - self.drag[1]) -1 185 self.sheet.set_shifted((x, y), raw, shift) 194 186 self.drag = None 195 187 196 188 def cancel_drag(self):
diff --git a/sheet/sheet.py b/sheet/sheet.py
@@ -1,6 +1,8 @@ 1 1 2 2 from .expression import ParseError 3 3 from .expression import parse -1 4 from .expression import shift_refs -1 5 from .expression import unparse 4 6 5 7 BLOCKS = [' ', '▏', '▎', '▍', '▌', '▋', '▊', '▉', '█'] 6 8 @@ -130,6 +132,13 @@ class Sheet: 130 132 del self.parsed[cell] 131 133 self.cache = {} 132 134 -1 135 def set_shifted(self, cell, raw: str, shift) -> str: -1 136 if raw.startswith('='): -1 137 expr = self.parse(raw) -1 138 shifted = shift_refs(expr, shift) -1 139 raw = '=' + unparse(shifted) -1 140 self.set(cell, raw) -1 141 133 142 def get_raw(self, cell) -> str: 134 143 return self.raw.get(cell, '') 135 144