QScintilla/Editor.py

branch
5_1_x
changeset 1296
c4574e31bfc4
parent 1113
95d837803666
child 1493
876e068d632d
equal deleted inserted replaced
1293:df49ba5a3103 1296:c4574e31bfc4
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

eric ide

mercurial