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
try:
for lexer in get_all_lexers():
try:
lexers.append(lexer[1][0])
except IndexError:
l = None
# If the tuple has one-word aliases
# (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])
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:
logging.warning("error while executing the pygment module, syntax coloring is not available")