Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from collections import deque
- from cudatext import *
- class Command:
- def __init__(self):
- self.edited_lines = {} # filename:deque of line indexes
- self.deque_inds = dict() # filename:current index in deque of edited line indexes
- def to_last_edit(self):
- f = ed.get_filename()
- if f in self.edited_lines:
- ind = self.deque_inds.setdefault(f, 0)
- if ind < len(self.edited_lines[f]):
- target_line = self.edited_lines[f][ind]
- ed.set_caret(0, target_line)
- self.deque_inds[f] += 1
- def on_change(self, ed_self):
- line = ed_self.get_carets()[0][1] # y of first caret
- f = ed_self.get_filename()
- if f not in self.edited_lines:
- self.edited_lines[f] = deque([], 30)
- self.deque_inds[f] = 0 # reset
- ## store edited line index (or move to start of deque)
- if line in self.edited_lines[f]:
- self.edited_lines[f].remove(line)
- self.edited_lines[f].appendleft(line)
Advertisement
Add Comment
Please, Sign In to add comment