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