# 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 overridden 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 $HOME/.gnatstudio/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 = "primary-t" def get_customization_string(suffix): return ( """ Copy the current selection to the named clipboard """ + suffix + """ clipboards.copy_to_clipboard(\"""" + suffix + """") Paste the contents of the named clipboard """ + suffix + """ clipboards.paste_from_clipboard(\"""" + suffix + """") ' + copy_key + " " + suffix + """ ' + paste_key + " " + suffix + """ """ ) 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 Exception: 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, )