Skip to content

Commit 1bfa970

Browse files
committedJun 11, 2013
[pyqgis-console] improving to auto closing bracket
1 parent 12fcea1 commit 1bfa970

File tree

2 files changed

+27
-4
lines changed

2 files changed

+27
-4
lines changed
 

‎python/console/console_editor.py

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -643,12 +643,29 @@ def syntaxCheck(self, filename=None, fromContextMenu=True):
643643

644644
def keyPressEvent(self, e):
645645
if self.settings.value("pythonConsole/autoCloseBracketEditor", True, type=bool):
646+
startLine, _, endLine, _ = self.getSelection()
646647
t = unicode(e.text())
647648
## Close bracket automatically
648649
if t in self.opening:
649650
i = self.opening.index(t)
650-
self.insert(self.closing[i])
651-
QsciScintilla.keyPressEvent(self, e)
651+
if self.hasSelectedText():
652+
self.beginUndoAction()
653+
selText = self.selectedText()
654+
self.removeSelectedText()
655+
if startLine == endLine:
656+
self.insert(self.opening[i] + selText + self.closing[i])
657+
return
658+
elif startLine < endLine and self.opening[i] in ("'", '"'):
659+
self.insert("'''" + selText + "'''")
660+
return
661+
else:
662+
self.insert(self.closing[i])
663+
self.endUndoAction()
664+
else:
665+
self.insert(self.closing[i])
666+
QsciScintilla.keyPressEvent(self, e)
667+
else:
668+
QsciScintilla.keyPressEvent(self, e)
652669

653670
def focusInEvent(self, e):
654671
pathfile = self.parent.path

‎python/console/console_sci.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ def showNext(self):
349349
#self.SendScintilla(QsciScintilla.SCI_DELETEBACK)
350350

351351
def keyPressEvent(self, e):
352-
startLine, _, endLine, _ = self.getSelection()
352+
startLine, startPos, endLine, _ = self.getSelection()
353353

354354
# handle invalid cursor position and multiline selections
355355
if not self.is_cursor_on_edition_zone() or startLine < endLine:
@@ -411,7 +411,13 @@ def keyPressEvent(self, e):
411411
## Close bracket automatically
412412
if t in self.opening:
413413
i = self.opening.index(t)
414-
self.insert(self.closing[i])
414+
if self.hasSelectedText() and startPos != 0:
415+
selText = self.selectedText()
416+
self.removeSelectedText()
417+
self.insert(self.opening[i] + selText + self.closing[i])
418+
return
419+
else:
420+
self.insert(self.closing[i])
415421
QsciScintilla.keyPressEvent(self, e)
416422

417423
def contextMenuEvent(self, e):

0 commit comments

Comments
 (0)
Please sign in to comment.