def test_1(self): self.qpart.lines = \ [ 'func(param,', ' "text ( param"))'] self.qpart.detectSyntax(language = 'Python') while self.qpart.isHighlightingInProgress(): QTest.qWait(20) firstBlock = self.qpart.document().firstBlock() secondBlock = firstBlock.next() bh = BracketHighlighter() self._verify(bh.extraSelections(self.qpart, firstBlock, 1), []) self._verify(bh.extraSelections(self.qpart, firstBlock, 4), [(4, 5, True), (31, 32, True)]) self._verify(bh.extraSelections(self.qpart, firstBlock, 5), [(4, 5, True), (31, 32, True)]) self._verify(bh.extraSelections(self.qpart, secondBlock, 11), []) self._verify(bh.extraSelections(self.qpart, secondBlock, 19), [(31, 32, True), (4, 5, True)]) self._verify(bh.extraSelections(self.qpart, secondBlock, 20), [(31, 32, True), (4, 5, True)]) self._verify(bh.extraSelections(self.qpart, secondBlock, 21), [(32, 33, False)])
def __init__(self, *args): QPlainTextEdit.__init__(self, *args) # toPlainText() takes a lot of time on long texts, therefore it is cached self._cachedText = None self._eol = self._DEFAULT_EOL self._indenter = Indenter(self) self.lineLengthEdge = None self.lineLengthEdgeColor = Qt.red self._atomicModificationDepth = 0 self.drawIncorrectIndentation = True self.drawAnyWhitespace = False self._rectangularSelection = RectangularSelection(self) """Sometimes color themes will be supported. Now black on white is hardcoded in the highlighters. Hardcode same palette for not highlighted text """ palette = self.palette() palette.setColor(QPalette.Base, QColor('#ffffff')) palette.setColor(QPalette.Text, QColor('#000000')) self.setPalette(palette) self._highlighter = None self._bracketHighlighter = BracketHighlighter() self._lines = Lines(self) self.completionThreshold = self._DEFAULT_COMPLETION_THRESHOLD self.completionEnabled = self._DEFAULT_COMPLETION_ENABLED self._completer = Completer(self) self._initActions() self._lineNumberArea = qutepart.sideareas.LineNumberArea(self) self._countCache = (-1, -1) self._markArea = qutepart.sideareas.MarkArea(self) self._bookmarks = qutepart.bookmarks.Bookmarks(self, self._markArea) self._userExtraSelections = [ ] # we draw bracket highlighting, current line and extra selections by user self._userExtraSelectionFormat = QTextCharFormat() self._userExtraSelectionFormat.setBackground(QBrush(QColor('#ffee00'))) self._lintMarks = {} self.blockCountChanged.connect(self._updateLineNumberAreaWidth) self.updateRequest.connect(self._updateSideAreas) self.cursorPositionChanged.connect(self._updateExtraSelections) self.textChanged.connect(self._dropUserExtraSelections) self.textChanged.connect(self._resetCachedText) self.textChanged.connect(self._clearLintMarks) fontFamilies = {'Windows': 'Courier New', 'Darwin': 'Menlo'} fontFamily = fontFamilies.get(platform.system(), 'Monospace') self.setFont(QFont(fontFamily)) self._updateLineNumberAreaWidth(0) self._updateExtraSelections()