QScintilla/MiniEditor.py

branch
5_1_x
changeset 1200
9de155b28f40
parent 882
34b86be88bf0
child 1201
62682782b620
equal deleted inserted replaced
1194:9a54fec8559d 1200:9de155b28f40
2030 (self.lexer_.lexer() == "container" or self.lexer_.lexer() is None): 2030 (self.lexer_.lexer() == "container" or self.lexer_.lexer() is None):
2031 self.__textEdit.SCN_STYLENEEDED.disconnect(self.__styleNeeded) 2031 self.__textEdit.SCN_STYLENEEDED.disconnect(self.__styleNeeded)
2032 2032
2033 filename = os.path.basename(filename) 2033 filename = os.path.basename(filename)
2034 language = Preferences.getEditorLexerAssoc(filename) 2034 language = Preferences.getEditorLexerAssoc(filename)
2035 if language == "Python":
2036 if self.__isPy2File():
2037 language = "Python2"
2038 else:
2039 language = "Python3"
2035 if language.startswith("Pygments|"): 2040 if language.startswith("Pygments|"):
2036 pyname = language.split("|", 1)[1] 2041 pyname = language.split("|", 1)[1]
2037 language = "" 2042 language = ""
2038 2043
2039 self.lexer_ = Lexers.getLexer(language, self.__textEdit, pyname = pyname) 2044 self.lexer_ = Lexers.getLexer(language, self.__textEdit, pyname = pyname)
2060 self.lexer_.readSettings(Preferences.Prefs.settings, "Scintilla") 2065 self.lexer_.readSettings(Preferences.Prefs.settings, "Scintilla")
2061 2066
2062 # now set the lexer properties 2067 # now set the lexer properties
2063 self.lexer_.initProperties() 2068 self.lexer_.initProperties()
2064 2069
2070 def __isPy2File(self):
2071 """
2072 Private method to return a flag indicating a Python 2 file.
2073
2074 @return flag indicating a Python 2 file (boolean)
2075 """
2076 if self.filetype in ["Python", "Python2"]:
2077 return True
2078
2079 if self.filetype == "":
2080 line0 = self.__textEdit.text(0)
2081 if line0.startswith("#!") and \
2082 ("python2" in line0 or \
2083 ("python" in line0 and not "python3" in line0)):
2084 return True
2085
2086 if self.__curFile is not None:
2087 exts = []
2088 for ext in Preferences.getDebugger("PythonExtensions").split():
2089 if ext.startswith("."):
2090 exts.append(ext)
2091 else:
2092 exts.append(".{0}".format(ext))
2093
2094 ext = os.path.splitext(self.__curFile)[1]
2095 if ext in exts:
2096 return True
2097
2098 return False
2099
2065 def __styleNeeded(self, position): 2100 def __styleNeeded(self, position):
2066 """ 2101 """
2067 Private slot to handle the need for more styling. 2102 Private slot to handle the need for more styling.
2068 2103
2069 @param position end position, that needs styling (integer) 2104 @param position end position, that needs styling (integer)
2081 if line0.startswith("<?xml"): 2116 if line0.startswith("<?xml"):
2082 # override extension for XML files 2117 # override extension for XML files
2083 bindName = "dummy.xml" 2118 bindName = "dummy.xml"
2084 2119
2085 # check filetype 2120 # check filetype
2086 if self.filetype in ["Python", "Python3"]: 2121 if self.filetype in ["Python", "Python2", "Python3"]:
2087 bindName = "dummy.py" 2122 bindName = "dummy.py"
2088 elif self.filetype == "Ruby": 2123 elif self.filetype == "Ruby":
2089 bindName = "dummy.rb" 2124 bindName = "dummy.rb"
2090 elif self.filetype == "D": 2125 elif self.filetype == "D":
2091 bindName = "dummy.d" 2126 bindName = "dummy.d"

eric ide

mercurial