eric6/QScintilla/Lexers/LexerPygments.py

branch
maintenance
changeset 8273
698ae46f40a4
parent 8176
31965986ecd1
parent 8240
93b8a353c4bf
equal deleted inserted replaced
8190:fb0ef164f536 8273:698ae46f40a4
4 # 4 #
5 5
6 """ 6 """
7 Module implementing a custom lexer using pygments. 7 Module implementing a custom lexer using pygments.
8 """ 8 """
9
10 import contextlib
9 11
10 from pygments.token import Token 12 from pygments.token import Token
11 from pygments.lexers import ( 13 from pygments.lexers import (
12 guess_lexer_for_filename, guess_lexer, find_lexer_class 14 guess_lexer_for_filename, guess_lexer, find_lexer_class
13 ) 15 )
180 Constructor 182 Constructor
181 183
182 @param parent parent widget of this lexer 184 @param parent parent widget of this lexer
183 @param name name of the pygments lexer to use (string) 185 @param name name of the pygments lexer to use (string)
184 """ 186 """
185 super(LexerPygments, self).__init__(parent) 187 super().__init__(parent)
186 188
187 self.__inReadSettings = False 189 self.__inReadSettings = False
188 190
189 if name.startswith("Pygments|"): 191 if name.startswith("Pygments|"):
190 self.__forcedPygmentsName = True 192 self.__forcedPygmentsName = True
325 @type QSettings 327 @type QSettings
326 @param prefix prefix for the settings key (defaults to "/Scintilla") 328 @param prefix prefix for the settings key (defaults to "/Scintilla")
327 @type str (optional) 329 @type str (optional)
328 """ 330 """
329 self.__inReadSettings = True 331 self.__inReadSettings = True
330 super(LexerPygments, self).readSettings(qs, prefix=prefix) 332 super().readSettings(qs, prefix=prefix)
331 self.__inReadSettings = False 333 self.__inReadSettings = False
332 334
333 def language(self): 335 def language(self):
334 """ 336 """
335 Public method returning the language of the lexer. 337 Public method returning the language of the lexer.
451 elif text: 453 elif text:
452 # step 1: guess based on filename and text 454 # step 1: guess based on filename and text
453 if self.editor is not None: 455 if self.editor is not None:
454 fn = self.editor.getFileName() 456 fn = self.editor.getFileName()
455 if fn: 457 if fn:
456 try: 458 with contextlib.suppress(ClassNotFound):
457 lexer = guess_lexer_for_filename(fn, text) 459 lexer = guess_lexer_for_filename(fn, text)
458 except ClassNotFound:
459 pass
460 460
461 # step 2: guess on text only 461 # step 2: guess on text only
462 if lexer is None: 462 if lexer is None:
463 try: 463 with contextlib.suppress(ClassNotFound):
464 lexer = guess_lexer(text) 464 lexer = guess_lexer(text)
465 except ClassNotFound:
466 pass
467 465
468 return lexer 466 return lexer
469 467
470 def canStyle(self): 468 def canStyle(self):
471 """ 469 """

eric ide

mercurial