blob: 7b3790199083670a77f1579426073b193a1c0804 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
import sublime, sublime_plugin
clipboard_stack = []
class ClipboardStackPushCommand(sublime_plugin.WindowCommand):
def run(self):
global clipboard_stack
clipcontent = sublime.get_clipboard()
clipboard_stack.append(clipcontent)
r = repr(clipcontent)[1:-1]
sublime.status_message("\'{content}{ellipsis}\' pushed to stack ({num} elements total).".format(content=r[:10], ellipsis="..." if len(r) > 10 else "", num=len(clipboard_stack)))
class ClipboardStackPopCommand(sublime_plugin.WindowCommand):
def run(self):
global clipboard_stack
if len(clipboard_stack) == 0:
sublime.status_message("Error: Clipboard stack is empty, can not pop.")
else:
el = clipboard_stack.pop()
r = repr(el)[1:-1]
sublime.set_clipboard(el)
sublime.status_message("Clipboard is now '{content}{ellipsis}', stack has now {num} elements.".format(content=r[:10], ellipsis="..." if len(r) > 10 else "", num=len(clipboard_stack)))
class ClipboardStackSelectCommand(sublime_plugin.WindowCommand):
def run(self):
global clipboard_stack
if len(clipboard_stack) == 0:
sublime.status_message("Stack is empty.")
self.window.show_quick_panel([ repr(x)[1:-1] for x in clipboard_stack[::-1] ], self.qp_response)
def qp_response(self, idx):
global clipboard_stack
if idx == -1:
return
addr = -(idx+1)
el = clipboard_stack[addr]
r = repr(el)[1:-1]
clipboard_stack = clipboard_stack[:addr] + clipboard_stack[addr+1:]
sublime.set_clipboard(el)
sublime.status_message("Clipboard is now '{content}{ellipsis}', stack has now {num} elements.".format(content=r[:10], ellipsis="..." if len(r) > 10 else "", num=len(clipboard_stack)))
class ClipboardStackClearCommand(sublime_plugin.WindowCommand):
def run(self):
global clipboard_stack
clipboard_stack = []
sublime.status_message("Clipboard stack is now empty.")
|