1147 self.setLanguage("dummy.pygments", pyname = language) |
1147 self.setLanguage("dummy.pygments", pyname = language) |
1148 else: |
1148 else: |
1149 language = act.data() |
1149 language = act.data() |
1150 if language: |
1150 if language: |
1151 self.setLanguage(self.supportedLanguages[language][1]) |
1151 self.setLanguage(self.supportedLanguages[language][1]) |
|
1152 self.filetype = language |
|
1153 self.__autoSyntaxCheck() |
1152 |
1154 |
1153 def __languageChanged(self, language, propagate = True): |
1155 def __languageChanged(self, language, propagate = True): |
1154 """ |
1156 """ |
1155 Private slot handling a change of a connected editor's language. |
1157 Private slot handling a change of a connected editor's language. |
1156 |
1158 |
1164 elif language.startswith("Pygments|"): |
1166 elif language.startswith("Pygments|"): |
1165 pyname = language.split("|", 1)[1] |
1167 pyname = language.split("|", 1)[1] |
1166 self.setLanguage("dummy.pygments", pyname = pyname) |
1168 self.setLanguage("dummy.pygments", pyname = pyname) |
1167 else: |
1169 else: |
1168 self.setLanguage(self.supportedLanguages[language][1], propagate = propagate) |
1170 self.setLanguage(self.supportedLanguages[language][1], propagate = propagate) |
|
1171 self.filetype = language |
|
1172 self.__autoSyntaxCheck() |
1169 |
1173 |
1170 def __resetLanguage(self, propagate = True): |
1174 def __resetLanguage(self, propagate = True): |
1171 """ |
1175 """ |
1172 Private method used to reset the language selection. |
1176 Private method used to reset the language selection. |
1173 |
1177 |
1341 |
1345 |
1342 language = "" |
1346 language = "" |
1343 if self.project.isOpen() and self.project.isProjectFile(filename): |
1347 if self.project.isOpen() and self.project.isProjectFile(filename): |
1344 language = self.project.getEditorLexerAssoc(os.path.basename(filename)) |
1348 language = self.project.getEditorLexerAssoc(os.path.basename(filename)) |
1345 if not language: |
1349 if not language: |
1346 filename = os.path.basename(filename) |
1350 ext = os.path.splitext(filename)[1] |
1347 language = Preferences.getEditorLexerAssoc(filename) |
1351 if ext in [".py", ".pyw"] and \ |
|
1352 Preferences.getProject("DeterminePyFromProject")and \ |
|
1353 self.project.isOpen() and \ |
|
1354 self.project.isProjectFile(self.fileName): |
|
1355 if self.project.getProjectLanguage() in ["Python", "Python2"]: |
|
1356 language = "Python2" |
|
1357 else: |
|
1358 language = "Python3" |
|
1359 else: |
|
1360 filename = os.path.basename(filename) |
|
1361 language = Preferences.getEditorLexerAssoc(filename) |
|
1362 if language == "Python": |
|
1363 if self.isPy2File(): |
|
1364 language = "Python2" |
|
1365 else: |
|
1366 language = "Python3" |
1348 if language.startswith("Pygments|"): |
1367 if language.startswith("Pygments|"): |
1349 pyname = language.split("|", 1)[1] |
1368 pyname = language.split("|", 1)[1] |
1350 language = "" |
1369 language = "" |
1351 |
1370 |
1352 self.lexer_ = Lexers.getLexer(language, self, pyname = pyname) |
1371 self.lexer_ = Lexers.getLexer(language, self, pyname = pyname) |
1567 """ |
1586 """ |
1568 Public method to return a flag indicating a Python file. |
1587 Public method to return a flag indicating a Python file. |
1569 |
1588 |
1570 @return flag indicating a Python file (boolean) |
1589 @return flag indicating a Python file (boolean) |
1571 """ |
1590 """ |
1572 return self.filetype in ["Python", "Python2"] or \ |
1591 if self.filetype in ["Python", "Python2"]: |
1573 (self.filetype == "" and \ |
1592 return True |
1574 self.fileName is not None and \ |
1593 |
1575 os.path.splitext(self.fileName)[1] in self.dbs.getExtensions('Python2')) |
1594 if self.filetype == "" and self.fileName is not None: |
|
1595 ext = os.path.splitext(self.fileName)[1] |
|
1596 if ext in [".py", ".pyw"] and \ |
|
1597 Preferences.getProject("DeterminePyFromProject") and \ |
|
1598 self.project.isOpen() and \ |
|
1599 self.project.isProjectFile(self.fileName): |
|
1600 return self.project.getProjectLanguage() in ["Python", "Python2"] |
|
1601 |
|
1602 if ext in self.dbs.getExtensions('Python2'): |
|
1603 return True |
|
1604 |
|
1605 return False |
|
1606 ## return self.filetype in ["Python", "Python2"] or \ |
|
1607 ## (self.filetype == "" and \ |
|
1608 ## self.fileName is not None and \ |
|
1609 ## os.path.splitext(self.fileName)[1] in self.dbs.getExtensions('Python2')) |
1576 |
1610 |
1577 def isPy3File(self): |
1611 def isPy3File(self): |
1578 """ |
1612 """ |
1579 Public method to return a flag indicating a Python3 file. |
1613 Public method to return a flag indicating a Python3 file. |
1580 |
1614 |
1581 @return flag indicating a Python3 file (boolean) |
1615 @return flag indicating a Python3 file (boolean) |
1582 """ |
1616 """ |
1583 return self.filetype == "Python3" or \ |
1617 if self.filetype in ["Python3"]: |
1584 (self.filetype == "" and \ |
1618 return True |
1585 self.fileName is not None and \ |
1619 |
1586 os.path.splitext(self.fileName)[1] in self.dbs.getExtensions('Python3')) |
1620 if self.filetype == "" and self.fileName is not None: |
|
1621 ext = os.path.splitext(self.fileName)[1] |
|
1622 if ext in [".py", ".pyw"] and \ |
|
1623 Preferences.getProject("DeterminePyFromProject") and \ |
|
1624 self.project.isOpen() and \ |
|
1625 self.project.isProjectFile(self.fileName): |
|
1626 return self.project.getProjectLanguage() in ["Python3"] |
|
1627 |
|
1628 if ext in self.dbs.getExtensions('Python3'): |
|
1629 return True |
|
1630 |
|
1631 return False |
|
1632 ## return self.filetype == "Python3" or \ |
|
1633 ## (self.filetype == "" and \ |
|
1634 ## self.fileName is not None and \ |
|
1635 ## os.path.splitext(self.fileName)[1] in self.dbs.getExtensions('Python3')) |
1587 |
1636 |
1588 def isRubyFile(self): |
1637 def isRubyFile(self): |
1589 """ |
1638 """ |
1590 Public method to return a flag indicating a Ruby file. |
1639 Public method to return a flag indicating a Ruby file. |
1591 |
1640 |
4172 msg = err.text.strip() |
4221 msg = err.text.strip() |
4173 else: |
4222 else: |
4174 msg = err.msg |
4223 msg = err.msg |
4175 self.toggleSyntaxError(err.lineno, True, msg) |
4224 self.toggleSyntaxError(err.lineno, True, msg) |
4176 elif self.isPy2File(): |
4225 elif self.isPy2File(): |
4177 syntaxError, _fn, errorline, _code, _error = \ |
4226 syntaxError, _fn, errorline, _code, _error, warnings = \ |
4178 Utilities.py2compile(self.fileName) |
4227 Utilities.py2compile( |
|
4228 self.fileName, |
|
4229 checkFlakes = Preferences.getFlakes("IncludeInSyntaxCheck")) |
4179 if syntaxError: |
4230 if syntaxError: |
4180 self.toggleSyntaxError(int(errorline), True, _error) |
4231 self.toggleSyntaxError(int(errorline), True, _error) |
|
4232 else: |
|
4233 for warning in warnings: |
|
4234 self.toggleFlakesWarning(int(warning[1]), True, warning[2]) |
4181 |
4235 |
4182 def __showCodeMetrics(self): |
4236 def __showCodeMetrics(self): |
4183 """ |
4237 """ |
4184 Private method to handle the code metrics context menu action. |
4238 Private method to handle the code metrics context menu action. |
4185 """ |
4239 """ |