1111 @return name of the selected pygments lexer (string) |
1111 @return name of the selected pygments lexer (string) |
1112 """ |
1112 """ |
1113 from pygments.lexers import get_all_lexers |
1113 from pygments.lexers import get_all_lexers |
1114 lexerList = sorted([l[0] for l in get_all_lexers()]) |
1114 lexerList = sorted([l[0] for l in get_all_lexers()]) |
1115 try: |
1115 try: |
1116 lexerSel = lexerList.index(self.getLanguage(normalized = False)) |
1116 lexerSel = lexerList.index( |
|
1117 self.getLanguage(normalized=False, forPygments=True)) |
1117 except ValueError: |
1118 except ValueError: |
1118 lexerSel = 0 |
1119 lexerSel = 0 |
1119 lexerName, ok = QInputDialog.getItem( |
1120 lexerName, ok = QInputDialog.getItem( |
1120 self, |
1121 self, |
1121 self.trUtf8("Pygments Lexer"), |
1122 self.trUtf8("Pygments Lexer"), |
1343 language = "" |
1344 language = "" |
1344 if self.project.isOpen() and self.project.isProjectFile(filename): |
1345 if self.project.isOpen() and self.project.isProjectFile(filename): |
1345 language = self.project.getEditorLexerAssoc(os.path.basename(filename)) |
1346 language = self.project.getEditorLexerAssoc(os.path.basename(filename)) |
1346 if not language: |
1347 if not language: |
1347 ext = os.path.splitext(filename)[1] |
1348 ext = os.path.splitext(filename)[1] |
1348 if ext in [".py", ".pyw"] and \ |
1349 if ext in [".py", ".pyw"]: |
1349 Preferences.getProject("DeterminePyFromProject")and \ |
1350 if self.isPy2File(): |
1350 self.project.isOpen() and \ |
|
1351 self.fileName is not None and \ |
|
1352 self.project.isProjectFile(self.fileName): |
|
1353 if self.project.getProjectLanguage() in ["Python", "Python2"]: |
|
1354 language = "Python2" |
1351 language = "Python2" |
|
1352 elif self.isPy3File(): |
|
1353 language = "Python3" |
1355 else: |
1354 else: |
|
1355 # default is Python 3 |
1356 language = "Python3" |
1356 language = "Python3" |
1357 else: |
1357 else: |
1358 filename = os.path.basename(filename) |
1358 filename = os.path.basename(filename) |
1359 language = Preferences.getEditorLexerAssoc(filename) |
1359 language = Preferences.getEditorLexerAssoc(filename) |
1360 if language == "Python": |
1360 if language == "Python": |
|
1361 # correction for Python |
1361 if self.isPy2File(): |
1362 if self.isPy2File(): |
1362 language = "Python2" |
1363 language = "Python2" |
1363 else: |
1364 else: |
1364 language = "Python3" |
1365 language = "Python3" |
1365 if language.startswith("Pygments|"): |
1366 if language.startswith("Pygments|"): |
1420 |
1421 |
1421 @return the lexer object (Lexer) |
1422 @return the lexer object (Lexer) |
1422 """ |
1423 """ |
1423 return self.lexer_ |
1424 return self.lexer_ |
1424 |
1425 |
1425 def getLanguage(self, normalized = True): |
1426 def getLanguage(self, normalized=True, forPygments=False): |
1426 """ |
1427 """ |
1427 Public method to retrieve the language of the editor. |
1428 Public method to retrieve the language of the editor. |
1428 |
1429 |
1429 @keyparam normalized flag indicating to normalize some Pygments |
1430 @keyparam normalized flag indicating to normalize some Pygments |
1430 lexer names (boolean) |
1431 lexer names (boolean) |
|
1432 @keyparam forPygments flag indicating to normalize some lexer |
|
1433 names for Pygments (boolean) |
1431 @return language of the editor (string) |
1434 @return language of the editor (string) |
1432 """ |
1435 """ |
1433 if self.apiLanguage == "Guessed" or self.apiLanguage.startswith("Pygments|"): |
1436 if self.apiLanguage == "Guessed" or self.apiLanguage.startswith("Pygments|"): |
1434 lang = self.lexer_.name() |
1437 lang = self.lexer_.name() |
1435 if normalized: |
1438 if normalized: |
1436 # adjust some Pygments lexer names |
1439 # adjust some Pygments lexer names |
1437 if lang == "Python": |
1440 if lang == "Python": |
1438 lang = "Python2" |
1441 lang = "Python2" |
1439 elif lang == "Python 3": |
1442 elif lang == "Python 3": |
1440 lang = "Python3" |
1443 lang = "Python3" |
1441 return lang |
1444 else: |
1442 else: |
1445 lang = self.apiLanguage |
1443 return self.apiLanguage |
1446 if forPygments: |
|
1447 # adjust some names to Pygments lexer names |
|
1448 if lang == "Python2": |
|
1449 lang = "Python" |
|
1450 elif lang == "Python3": |
|
1451 lang = "Python 3" |
|
1452 return lang |
1444 |
1453 |
1445 def __bindCompleter(self, filename): |
1454 def __bindCompleter(self, filename): |
1446 """ |
1455 """ |
1447 Private slot to set the correct typing completer depending on language. |
1456 Private slot to set the correct typing completer depending on language. |
1448 |
1457 |