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 " 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('')