import geany
class AutoCloseBracketPlugin(geany.Plugin):
__plugin_name__ = "Auto Close Bracket Plugin"
__plugin_version__ = "0.01"
__plugin_description__ = "Inserts the close bracket automatically in a context sensitive way."
__plugin_author__ = "Francesco Pasqua <cesconix87@gmail.com>"
bracket = {
'{' : '}',
'[' : ']',
'(' : ')'
}
openedBracket = bracket.keys()
closedBracket = bracket.values()
sci = None # ScintillaObject
def __init__(self):
geany.Plugin.__init__(self)
geany.signals.connect("editor-notify", self.onEditorNotify)
def onEditorNotify(self, obj, editor, nt):
self.sci = editor.scintilla
if nt.nmhdr.code == 2001: # modify: SCN_CARHADDED
self.onCharAdded(nt.ch)
def onCharAdded(self, char):
if char in self.openedBracket:
self.onOpenedBracket(char)
if char in self.closedBracket:
self.onClosedBracket(char)
def onOpenedBracket(self, char):
self.sci.insert_text(self.bracket[char])
def onClosedBracket(self, char):
currentPosition = self.sci.get_current_position()
if (char == self.sci.get_char_at(currentPosition)):
print dir(self.sci)
self.sci.send_command('')