def generateCharMatchedSettings(self,lineIndex): lineStr = self.getLineText(lineIndex) retuArr = [] arr = len(lineStr) * [0] for metaObj in re.finditer( r'\b[a-zA-Z]+\b' , lineStr): if keyword.kwlist.count( lineStr[metaObj.span()[0]:metaObj.span()[1]] ) != 0: for index in range( metaObj.span()[0],metaObj.span()[1] ): arr[index] = 1 descPos = self.getDescPosByYPos(lineIndex) for descPos in descPos: for i in range( descPos[0],len(self.getLineText(lineIndex)) ): arr[i] = 2 strPos = self.getStrPosByYPos(lineIndex) for index in range( int(len(strPos)/2) ): start = strPos[index*2] end = strPos[index*2+1] for i in range( start[0],end[0] ): arr[i] = 3 for index in range(len(arr)): if FUF.isChineseChar(lineStr[index]): font = self.getChineseCharFont() else: font = self.getFont() retuArr.append( ( PythonTextDocument.PENARR[ arr[index] ] ,font) ) return retuArr