Tiny improvement (IMO) for bullet list: now it only copies spaces, no punctuation:
from Npp import editor, SCINTILLANOTIFICATION import re class NA(object): def __init__(self): self.eol = ['\r\n', '\r', '\n'][editor.getEOLMode()] editor.callback(self.callback_sci_CHARADDED, [SCINTILLANOTIFICATION.CHARADDED]) def callback_sci_CHARADDED(self, args): if chr(args['ch']) == self.eol[-1]: caret_pos = editor.getCurrentPos() curr_line_num = editor.lineFromPosition(caret_pos) if curr_line_num > 0: prev_line = editor.getLine(curr_line_num - 1) m = re.match(r'\s*(\d+)([^\w\r\n]+)', prev_line) if m: full = str(m.group(1)) + str(m.group(2)) full_prev = prev_line.rstrip('\r\n') if (len(full_prev) > len(full)): # if m: prev_number = int(m.group(1)) symbols_after = m.group(2) new_number = prev_number + 1 text_to_insert = str(new_number) + symbols_after editor.insertText(caret_pos, text_to_insert) new_caret_pos = caret_pos + len(text_to_insert) editor.setEmptySelection(new_caret_pos) return m = re.match(r'\s*(\+)([\s*]+)', prev_line) if m: full = str(m.group(1)) + str(m.group(2)) full_prev = prev_line.rstrip('\r\n') if (len(full_prev) > len(full)): # if m: bullet = m.group(1) symbols_after = m.group(2) text_to_insert = bullet + symbols_after editor.insertText(caret_pos, text_to_insert) new_caret_pos = caret_pos + len(text_to_insert) editor.setEmptySelection(new_caret_pos) return if __name__ == '__main__': try: na except NameError: na = NA()-
0 Votes23 Posts8k Views
-
0 Votes12 Posts3k Views
-
0 Votes11 Posts984 Views
-
0 Votes2 Posts273 Views
-
0 Votes9 Posts806 Views
-
0 Votes9 Posts3k Views
-
0 Votes4 Posts2k Views
-
0 Votes5 Posts355 Views
-
0 Votes3 Posts500 Views
-
0 Votes8 Posts1k Views
-
0 Votes12 Posts3k Views
-
0 Votes4 Posts7k Views
-
0 Votes3 Posts1k Views
-
0 Votes8 Posts2k Views
-
0 Votes6 Posts509 Views
-
0 Votes11 Posts723 Views
-
0 Votes2 Posts284 Views
-
0 Votes8 Posts2k Views
-
0 Votes3 Posts327 Views
-
0 Votes3 Posts582 Views