QScintilla/MiniEditor.py

changeset 1197
59fa9eae9123
parent 1131
7781e396c903
child 1198
214fb8967707
equal deleted inserted replaced
1196:77da430b4080 1197:59fa9eae9123
2045 (self.lexer_.lexer() == "container" or self.lexer_.lexer() is None): 2045 (self.lexer_.lexer() == "container" or self.lexer_.lexer() is None):
2046 self.__textEdit.SCN_STYLENEEDED.disconnect(self.__styleNeeded) 2046 self.__textEdit.SCN_STYLENEEDED.disconnect(self.__styleNeeded)
2047 2047
2048 filename = os.path.basename(filename) 2048 filename = os.path.basename(filename)
2049 language = Preferences.getEditorLexerAssoc(filename) 2049 language = Preferences.getEditorLexerAssoc(filename)
2050 if language == "Python":
2051 if self.__isPy2File():
2052 language = "Python2"
2053 else:
2054 language = "Python3"
2050 if language.startswith("Pygments|"): 2055 if language.startswith("Pygments|"):
2051 pyname = language.split("|", 1)[1] 2056 pyname = language.split("|", 1)[1]
2052 language = "" 2057 language = ""
2053 2058
2054 self.lexer_ = Lexers.getLexer(language, self.__textEdit, pyname=pyname) 2059 self.lexer_ = Lexers.getLexer(language, self.__textEdit, pyname=pyname)
2075 self.lexer_.readSettings(Preferences.Prefs.settings, "Scintilla") 2080 self.lexer_.readSettings(Preferences.Prefs.settings, "Scintilla")
2076 2081
2077 # now set the lexer properties 2082 # now set the lexer properties
2078 self.lexer_.initProperties() 2083 self.lexer_.initProperties()
2079 2084
2085 def __isPy2File(self):
2086 """
2087 Private method to return a flag indicating a Python 2 file.
2088
2089 @return flag indicating a Python 2 file (boolean)
2090 """
2091 if self.filetype in ["Python", "Python2"]:
2092 return True
2093
2094 if self.filetype == "":
2095 line0 = self.__textEdit.text(0)
2096 if line0.startswith("#!") and \
2097 ("python2" in line0 or \
2098 ("python" in line0 and not "python3" in line0)):
2099 return True
2100
2101 if self.__curFile is not None:
2102 exts = []
2103 for ext in Preferences.getDebugger("PythonExtensions").split():
2104 if ext.startswith("."):
2105 exts.append(ext)
2106 else:
2107 exts.append(".{0}".format(ext))
2108
2109 ext = os.path.splitext(self.__curFile)[1]
2110 if ext in exts:
2111 return True
2112
2113 return False
2114
2080 def __styleNeeded(self, position): 2115 def __styleNeeded(self, position):
2081 """ 2116 """
2082 Private slot to handle the need for more styling. 2117 Private slot to handle the need for more styling.
2083 2118
2084 @param position end position, that needs styling (integer) 2119 @param position end position, that needs styling (integer)
2096 if line0.startswith("<?xml"): 2131 if line0.startswith("<?xml"):
2097 # override extension for XML files 2132 # override extension for XML files
2098 bindName = "dummy.xml" 2133 bindName = "dummy.xml"
2099 2134
2100 # check filetype 2135 # check filetype
2101 if self.filetype in ["Python", "Python3"]: 2136 if self.filetype in ["Python", "Python2", "Python3"]:
2102 bindName = "dummy.py" 2137 bindName = "dummy.py"
2103 elif self.filetype == "Ruby": 2138 elif self.filetype == "Ruby":
2104 bindName = "dummy.rb" 2139 bindName = "dummy.rb"
2105 elif self.filetype == "D": 2140 elif self.filetype == "D":
2106 bindName = "dummy.d" 2141 bindName = "dummy.d"

eric ide

mercurial