diff options
author | Georg Brandl <georg@python.org> | 2022-01-25 07:41:27 +0100 |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2022-01-25 07:41:27 +0100 |
commit | f6d3ce6f8d1f523b2f671a5f91d8a906c761685c (patch) | |
tree | 1713fec79b18f43c6f4c7420487d10f0944acafe | |
parent | ab4afd821aa41403f7a0b1e714112c40b2ad843b (diff) | |
download | pygments-git-f6d3ce6f8d1f523b2f671a5f91d8a906c761685c.tar.gz |
Add a "plugins" argument to get_all_lexers
and use it in the "duplicate filenames" checker.
-rw-r--r-- | CHANGES | 14 | ||||
-rw-r--r-- | pygments/lexers/__init__.py | 10 | ||||
-rw-r--r-- | scripts/detect_missing_analyse_text.py | 14 |
3 files changed, 24 insertions, 14 deletions
@@ -7,6 +7,9 @@ Version 2.12.0 -------------- (not released yet) +- Added ``plugins`` argument to ``get_all_lexers()``. + + Version 2.11.2 -------------- (released January 6th, 2022) @@ -20,6 +23,7 @@ Version 2.11.2 - Remove ``underline`` from ``Whitespace`` style in the ``Tango`` theme (#2020) - Fix ``IRC`` and ``Terminal256`` formatters not backtracking correctly for custom token types, resulting in some unstyled tokens (#1986) + Version 2.11.1 -------------- (released December 31st, 2021) @@ -30,6 +34,7 @@ Version 2.11.1 * JSON: Fix a regression which caused whitespace before ``:`` to result in ``Error`` tokens (#2010) * SPICE: Various improvements (#2009) + Version 2.11.0 -------------- (released December 30th, 2021) @@ -68,13 +73,13 @@ Version 2.11.0 * objdump-nasm: Improve handling of ``--no-show-raw-insn`` dumps (#1981) * Prolog: Support escaped ``\`` inside quoted strings (#1479) * Python: - + - Support ``~`` in tracebacks (#2004) - Support the pattern matching keywords (#1797, #1994) * RobotFramework: Improve empty brace handling (#1921, #1922) * Terraform - + - Add the 'set' type (#1909) - Support heredocs (#1909) @@ -130,7 +135,7 @@ Version 2.10.0 * LLVM (#1824) * Python (#1852) * Rust - + - Fix lexing of "break" and "continue" (#1843) - Improve attribute handling (#1813) @@ -215,6 +220,7 @@ Version 2.9.0 * Gruvbox light+dark (#1763) + Version 2.8.0 ------------- (released February 14, 2021) @@ -297,6 +303,7 @@ Version 2.8.0 - Improve ``analyze_text`` logic for ``CBM Basic V2`` (#1607) - Improve LaTeX formatter (#1708, #1709) + Version 2.7.4 ------------- (released January 12, 2021) @@ -333,6 +340,7 @@ Version 2.7.4 Thanks to Google's OSS-Fuzz project for finding many of these bugs. + Version 2.7.3 ------------- (released December 6, 2020) diff --git a/pygments/lexers/__init__.py b/pygments/lexers/__init__.py index 50add7e4..79c4e9bf 100644 --- a/pygments/lexers/__init__.py +++ b/pygments/lexers/__init__.py @@ -47,14 +47,18 @@ def _load_lexers(module_name): _lexer_cache[cls.name] = cls -def get_all_lexers(): +def get_all_lexers(plugins=True): """Return a generator of tuples in the form ``(name, aliases, filenames, mimetypes)`` of all know lexers. + + If *plugins* is true (the default), plugin lexers supplied by entrypoints + are also returned. Otherwise, only builtin ones are considered. """ for item in LEXERS.values(): yield item[1:] - for lexer in find_plugin_lexers(): - yield lexer.name, lexer.aliases, lexer.filenames, lexer.mimetypes + if plugins: + for lexer in find_plugin_lexers(): + yield lexer.name, lexer.aliases, lexer.filenames, lexer.mimetypes def find_lexer_class(name): diff --git a/scripts/detect_missing_analyse_text.py b/scripts/detect_missing_analyse_text.py index fa95c47a..c377b0b6 100644 --- a/scripts/detect_missing_analyse_text.py +++ b/scripts/detect_missing_analyse_text.py @@ -17,19 +17,17 @@ import argparse def main(args): uses = {} - for name, aliases, filenames, mimetypes in get_all_lexers(): + 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: - if f not in uses: - uses[f] = [] - uses[f].append(cls) + uses.setdefault(f, []).append(cls) ret = 0 for k, v in uses.items(): if len(v) > 1: - #print "Multiple for", k, v + # print("Multiple for", k, v) for i in v: if i.analyse_text is None: print(i, "has a None analyse_text") @@ -43,8 +41,8 @@ def main(args): 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) + help='Skip checks for a lexer with no aliases', + action='store_true', + default=False) args = parser.parse_args() sys.exit(main(args)) |