diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 11:33:32 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 11:33:32 +0000 |
commit | 1f403ad2197fc7442409f434ee574f3e6b46fb73 (patch) | |
tree | 0299c6dd11d5edfa918a29b6456bc1875f1d288c /scripts/detect_missing_analyse_text.py | |
parent | Initial commit. (diff) | |
download | pygments-upstream.tar.xz pygments-upstream.zip |
Adding upstream version 2.14.0+dfsg.upstream/2.14.0+dfsgupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'scripts/detect_missing_analyse_text.py')
-rw-r--r-- | scripts/detect_missing_analyse_text.py | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/scripts/detect_missing_analyse_text.py b/scripts/detect_missing_analyse_text.py new file mode 100644 index 0000000..c377b0b --- /dev/null +++ b/scripts/detect_missing_analyse_text.py @@ -0,0 +1,48 @@ +""" + detect_missing_analyse_text + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS. + :license: BSD, see LICENSE for details. +""" + +import sys + +from pygments.lexers import get_all_lexers, find_lexer_class +from pygments.lexer import Lexer + +import argparse + + +def main(args): + uses = {} + + for name, aliases, filenames, mimetypes in get_all_lexers(plugins=False): + cls = find_lexer_class(name) + if not cls.aliases and not args.skip_no_aliases: + print(cls, "has no aliases") + for f in filenames: + uses.setdefault(f, []).append(cls) + + ret = 0 + for k, v in uses.items(): + if len(v) > 1: + # print("Multiple for", k, v) + for i in v: + if i.analyse_text is None: + print(i, "has a None analyse_text") + ret |= 1 + elif Lexer.analyse_text.__doc__ == i.analyse_text.__doc__: + print(i, "needs analyse_text, multiple lexers for", k) + ret |= 2 + return ret + + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument('--skip-no-aliases', + help='Skip checks for a lexer with no aliases', + action='store_true', + default=False) + args = parser.parse_args() + sys.exit(main(args)) |