Guest User

CudaText Plugin

a guest
Nov 11th, 2020
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.04 KB | None | 0 0
  1. from collections import deque
  2.  
  3. from cudatext import *
  4.  
  5. class Command:
  6.    
  7.     def __init__(self):
  8.         self.edited_lines = {} # filename:deque of line indexes
  9.         self.deque_inds = dict() # filename:current index in deque of edited line indexes
  10.  
  11.  
  12.     def to_last_edit(self):
  13.       f = ed.get_filename()
  14.        
  15.       if f in self.edited_lines:
  16.         ind = self.deque_inds.setdefault(f, 0)
  17.        
  18.         if ind < len(self.edited_lines[f]):
  19.           target_line = self.edited_lines[f][ind]
  20.           ed.set_caret(0, target_line)
  21.           self.deque_inds[f] += 1
  22.  
  23.     def on_change(self, ed_self):
  24.       line = ed_self.get_carets()[0][1] # y of first caret
  25.       f = ed_self.get_filename()
  26.      
  27.       if f not in self.edited_lines:
  28.         self.edited_lines[f] = deque([], 30)
  29.  
  30.       self.deque_inds[f] = 0 # reset
  31.       ## store edited line index  (or move to start of deque)
  32.       if line in self.edited_lines[f]:
  33.         self.edited_lines[f].remove(line)
  34.       self.edited_lines[f].appendleft(line)
  35.      
  36.  
Advertisement
Add Comment
Please, Sign In to add comment