There are some configuration features I miss about eric3, like setting the font for the pyshell or for brace highlighting, but I did not want to mess up the configuration dialogs (and I was to lazy, too), so I wrote no patch for that. Keep on hacking, eric3 is really great.
mfg
Torsten
--- Editor.py.old 2003-01-02 22:23:33.000000000 +0100 +++ Editor.py 2003-01-02 22:29:03.000000000 +0100 @@ -230,6 +230,40 @@ self.menu.insertItem(QIconSet(IconPrint), self.trUtf8('Print'), self.printFile) self.connect(self.menu, SIGNAL('aboutToShow()'), self.handleShowContextMenu) + self.connect(self, SIGNAL("SCN_CHARADDED(int)"), self.indentEngine) + + + def getline(self, line): + t = self.text(line).left(self.lineLength(line)) + return t.stripWhiteSpace() + + + def indentEngine(self, t): + # on newline + if t == 10: + (line, index) = self.getCursorPosition() + oldin = self.indentation(line-1) + l = self.getline(line) + l_1 = self.getline(line-1) + l_2 = self.getline(line-2) + # increase indentation level by one if line above ends on : + if str(l_1.right(1)) == ":": + oldin += self.indentationWidth() + # decrease on return or pass + elif str(l_1) in ("return", "pass"): + oldin -= self.indentationWidth() + # after to blank lines, return to indentation of last defun + elif l_1.length() == l_2.length() == l.length() == 0 and oldin > 0: + i = 3 + while(line - i > 0): + ltext = self.getline(line - i) + if str(ltext.section(" ", 0, 0)) == "def": + oldin = self.indentation(line - i) + break + i+=1 + self.setIndentation(line, oldin) + self.setCursorPosition(line, oldin) + def bindLexer(self, language): """
msg03613/pgp00000.pgp
Description: PGP signature