fix(syntax coloring): load all lexers, even those without aliases

Some Pygments’ lexers are registered without any alias, just with their long name.
This ensure that they are loaded, along with the others.
This commit is contained in:
Johann Dreo 2022-05-12 12:00:11 +02:00
commit a41eea11d2

View file

@ -306,11 +306,21 @@ def load_lexers():
from pygments.lexers import get_all_lexers from pygments.lexers import get_all_lexers
try: try:
for lexer in get_all_lexers(): for lexer in get_all_lexers():
try: l = None
lexers.append(lexer[1][0]) # If the tuple has one-word aliases
except IndexError: # (which are usually a better option than the long names
# for a command line argument).
if lexer[1]:
l = lexer[1][0] # Take the first one.
else:
assert(lexer[0])
l = lexer[0] # Take the long name, which should alway exists.
if not l:
logging.warning("cannot load lexer: %s" % lexer[1][0]) logging.warning("cannot load lexer: %s" % lexer[1][0])
pass pass # Forget about this lexer.
else:
assert(" " not in l) # Should be very rare, but probably a source of bugs.
lexers.append(l)
except: except:
logging.warning("error while executing the pygment module, syntax coloring is not available") logging.warning("error while executing the pygment module, syntax coloring is not available")