diff options
author | Adam Turner <9087854+AA-Turner@users.noreply.github.com> | 2024-07-18 18:38:29 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-18 18:38:29 (GMT) |
commit | 7431c3799efbd06ed03ee70b64420f45e83b3667 (patch) | |
tree | 129a43fa5c8fb84b78ae41b5fb1b98ce805f43b8 | |
parent | 12c1afa9d153fbdf78c970054c08c755f504c5e9 (diff) | |
download | cpython-7431c3799efbd06ed03ee70b64420f45e83b3667.zip cpython-7431c3799efbd06ed03ee70b64420f45e83b3667.tar.gz cpython-7431c3799efbd06ed03ee70b64420f45e83b3667.tar.bz2 |
GH-121970: Combine custom Pygments lexers into a package (#121976)
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
-rw-r--r-- | Doc/conf.py | 3 | ||||
-rw-r--r-- | Doc/tools/extensions/lexers/__init__.py | 15 | ||||
-rw-r--r-- | Doc/tools/extensions/lexers/asdl_lexer.py (renamed from Doc/tools/extensions/asdl_highlight.py) | 23 | ||||
-rw-r--r-- | Doc/tools/extensions/lexers/peg_lexer.py (renamed from Doc/tools/extensions/peg_highlight.py) | 7 |
4 files changed, 22 insertions, 26 deletions
diff --git a/Doc/conf.py b/Doc/conf.py index 6ab8e8c..7f925dc 100644 --- a/Doc/conf.py +++ b/Doc/conf.py @@ -18,11 +18,10 @@ from pyspecific import SOURCE_URI # --------------------- extensions = [ - 'asdl_highlight', 'c_annotations', 'escape4chm', 'glossary_search', - 'peg_highlight', + 'lexers', 'pyspecific', 'sphinx.ext.coverage', 'sphinx.ext.doctest', diff --git a/Doc/tools/extensions/lexers/__init__.py b/Doc/tools/extensions/lexers/__init__.py new file mode 100644 index 0000000..e12ac5b --- /dev/null +++ b/Doc/tools/extensions/lexers/__init__.py @@ -0,0 +1,15 @@ +from .asdl_lexer import ASDLLexer +from .peg_lexer import PEGLexer + + +def setup(app): + # Used for highlighting Parser/Python.asdl in library/ast.rst + app.add_lexer("asdl", ASDLLexer) + # Used for highlighting Grammar/python.gram in reference/grammar.rst + app.add_lexer("peg", PEGLexer) + + return { + "version": "1.0", + "parallel_read_safe": True, + "parallel_write_safe": True, + } diff --git a/Doc/tools/extensions/asdl_highlight.py b/Doc/tools/extensions/lexers/asdl_lexer.py index 42863a4..2cea058 100644 --- a/Doc/tools/extensions/asdl_highlight.py +++ b/Doc/tools/extensions/lexers/asdl_lexer.py @@ -1,15 +1,6 @@ -import sys -from pathlib import Path +from pygments.lexer import RegexLexer, bygroups, include +from pygments.token import Comment, Keyword, Name, Operator, Punctuation, Text -CPYTHON_ROOT = Path(__file__).resolve().parent.parent.parent.parent -sys.path.append(str(CPYTHON_ROOT / "Parser")) - -from pygments.lexer import RegexLexer, bygroups, include, words -from pygments.token import (Comment, Keyword, Name, Operator, - Punctuation, Text) - -from asdl import builtin_types -from sphinx.highlighting import lexers class ASDLLexer(RegexLexer): name = "ASDL" @@ -34,7 +25,10 @@ class ASDLLexer(RegexLexer): r"(\w+)(\*\s|\?\s|\s)(\w+)", bygroups(Name.Builtin.Pseudo, Operator, Name), ), - (words(builtin_types), Name.Builtin), + # Keep in line with ``builtin_types`` from Parser/asdl.py. + # ASDL's 4 builtin types are + # constant, identifier, int, string + ('constant|identifier|int|string', Name.Builtin), (r"attributes", Name.Builtin), ( _name + _text_ws + "(=)", @@ -46,8 +40,3 @@ class ASDLLexer(RegexLexer): (r".", Text), ], } - - -def setup(app): - lexers["asdl"] = ASDLLexer() - return {'version': '1.0', 'parallel_read_safe': True} diff --git a/Doc/tools/extensions/peg_highlight.py b/Doc/tools/extensions/lexers/peg_lexer.py index 4bdc2ee..827af20 100644 --- a/Doc/tools/extensions/peg_highlight.py +++ b/Doc/tools/extensions/lexers/peg_lexer.py @@ -1,8 +1,6 @@ from pygments.lexer import RegexLexer, bygroups, include from pygments.token import Comment, Keyword, Name, Operator, Punctuation, Text -from sphinx.highlighting import lexers - class PEGLexer(RegexLexer): """Pygments Lexer for PEG grammar (.gram) files @@ -79,8 +77,3 @@ class PEGLexer(RegexLexer): (r".", Text), ], } - - -def setup(app): - lexers["peg"] = PEGLexer() - return {"version": "1.0", "parallel_read_safe": True} |