Beispiel #1
0
    def insertString(self, offset, str, a, addUndoEvent=1):
        if self.needToSetEnvironment:
            #Give the environment and key words to the Highlighting Document
            HighlightingStyledDocument.setEnvironmentWords(
                self,
                self.editor.program.getVarsToHighlight().keys())
            HighlightingStyledDocument.setKeywords(self, keyword.kwlist)
            self.needToSetEnvironment = 0
        if self.errorLineStart >= 0:
            self.removeErrorHighlighting()
        if self.highlightLineStart >= 0:
            self.removeLineHighlighting()
        if str == '\t':
            str = JESConstants.TAB
#Added to make auto indent work
        if str == '\n':
            defaultElement = self.getDefaultRootElement()
            rowIndex = defaultElement.getElementIndex(offset)
            rowStart = defaultElement.getElement(rowIndex).getStartOffset()
            rowEnd = defaultElement.getElement(rowIndex).getEndOffset() - 1
            rowText = self.getText(rowStart, rowEnd - rowStart)  #.expandtabs()
            newRowText = rowText.lstrip()
            numSpaces = (len(rowText) - len(newRowText))
            str = "\n" + (" " * numSpaces)
        self.editor.modified = 1
        self.editor.gui.loadButton.enabled = 1
        if addUndoEvent:
            self.addUndoEvent(INSERT_EVENT, offset, str)
        HighlightingStyledDocument.insertString(self, offset, str,
                                                self.textAttrib)
    def insertString(self, offset, str, a, addUndoEvent=1):
        if self.needToSetEnvironment:
            #Give the environment and key words to the Highlighting Document
            HighlightingStyledDocument.setEnvironmentWords(self, self.editor.program.getVarsToHighlight().keys())
            HighlightingStyledDocument.setKeywords(self, keyword.kwlist)
            self.needToSetEnvironment = 0
        if self.errorLineStart >= 0:
	    self.removeErrorHighlighting()
        if self.highlightLineStart >= 0:
            self.removeLineHighlighting()
        if str == '\t':
            str = JESConstants.TAB
	#Added to make auto indent work
	if str == '\n':
	    defaultElement = self.getDefaultRootElement()
	    rowIndex = defaultElement.getElementIndex(offset)
	    rowStart = defaultElement.getElement(rowIndex).getStartOffset()
	    rowEnd = defaultElement.getElement(rowIndex).getEndOffset() - 1
	    rowText = self.getText(rowStart, rowEnd - rowStart)#.expandtabs()
	    newRowText = rowText.lstrip()
	    numSpaces = (len(rowText) - len(newRowText))
	    str = "\n" + (" " * numSpaces)
        self.editor.modified = 1
        self.editor.gui.loadButton.enabled = 1
        if addUndoEvent:
            self.addUndoEvent(INSERT_EVENT,
                              offset,
                              str)
        HighlightingStyledDocument.insertString(self, offset, str, self.textAttrib)