File: clipboards.py

package info (click to toggle)
gnat-gps 4.3-5
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 49,096 kB
  • ctags: 20,461
  • sloc: ada: 274,120; ansic: 154,849; python: 9,890; tcl: 9,812; sh: 8,192; xml: 7,970; cpp: 4,737; yacc: 3,520; makefile: 2,136; lex: 2,043; java: 1,638; perl: 302; awk: 265; sed: 161; asm: 14; fortran: 2; lisp: 1
file content (61 lines) | stat: -rw-r--r-- 2,496 bytes parent folder | download | duplicates (3)
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
50
51
52
53
54
55
56
57
58
59
60
61
## This module implements multiple-clipboards in GPS.
##
## Pressing the keys "alt-e 0" to "alt-e 9" will copy the current
## selection into one of the name clipboards 0 to 9.
## These clipboards can in turn be pasted with "control-t 0" to "control-t 9"
##
## This package is also an example on how to add your on extensions to GPS.
## The keys indicated above are the default keys. These can be overriden at
## the user level through the Edit->Key Shortcuts editor, and will be
## automatically reloaded from one session to the next
##
## This file should be put in the ~/.gps/plug-ins directory, so that
## it is automatically loaded when GPS starts.
##
## By default, only 10 clipboards are provided. By modifying the call to
## parse_xml below, you can create any number of clipboards

import GPS

copy_key="alt-e"
paste_key="control-t"

def get_customization_string (suffix):
   return """
  <action name="copy_clipboard"""+suffix+"""" category="General">
    <filter id="Source editor" />
    <description>Copy the current selection to the named clipboard """+suffix+"""</description>
    <shell lang="python" >clipboards.copy_to_clipboard(\""""+suffix+"""")</shell>
  </action>
  <action name="paste_clipboard"""+suffix+"""" category="General">
    <filter id="Source editor" />
    <description>Paste the contents of the named clipboard """+suffix+"""</description>
    <shell lang="python">clipboards.paste_from_clipboard(\""""+suffix+"""")</shell>
  </action>
  <key action="copy_clipboard"""+suffix+"\">"+copy_key+" "+suffix+"""</key>
  <key action="paste_clipboard"""+suffix+"\">"+paste_key+" "+suffix+"""</key>"""


GPS.parse_xml (get_customization_string ("0") + \
               get_customization_string ("1") + \
               get_customization_string ("2") + \
               get_customization_string ("3") + \
               get_customization_string ("4") + \
               get_customization_string ("5") + \
               get_customization_string ("6") + \
               get_customization_string ("7") + \
               get_customization_string ("8") + \
               get_customization_string ("9"))
clipboard={}

def copy_to_clipboard (suffix):
   try:
     clipboard[suffix]=GPS.Editor.get_chars (GPS.current_context().file().name())
   except:
     pass

def paste_from_clipboard (suffix):
   context=GPS.current_context()
   GPS.Editor.replace_text (context.file().name(), context.location().line(), \
       context.location().column(), clipboard[suffix], 0, 0)