From 4a52a71956a8d46fcb7294ac71734504bb09bcc2 Mon Sep 17 00:00:00 2001 From: S. Solomon Darnell Date: Fri, 28 Mar 2025 21:52:21 -0500 Subject: two version of R2R are here --- .../site-packages/pip/_vendor/pygments/modeline.py | 43 ++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/modeline.py (limited to '.venv/lib/python3.12/site-packages/pip/_vendor/pygments/modeline.py') diff --git a/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/modeline.py b/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/modeline.py new file mode 100644 index 00000000..e4d9fe16 --- /dev/null +++ b/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/modeline.py @@ -0,0 +1,43 @@ +""" + pygments.modeline + ~~~~~~~~~~~~~~~~~ + + A simple modeline parser (based on pymodeline). + + :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS. + :license: BSD, see LICENSE for details. +""" + +import re + +__all__ = ['get_filetype_from_buffer'] + + +modeline_re = re.compile(r''' + (?: vi | vim | ex ) (?: [<=>]? \d* )? : + .* (?: ft | filetype | syn | syntax ) = ( [^:\s]+ ) +''', re.VERBOSE) + + +def get_filetype_from_line(l): # noqa: E741 + m = modeline_re.search(l) + if m: + return m.group(1) + + +def get_filetype_from_buffer(buf, max_lines=5): + """ + Scan the buffer for modelines and return filetype if one is found. + """ + lines = buf.splitlines() + for line in lines[-1:-max_lines-1:-1]: + ret = get_filetype_from_line(line) + if ret: + return ret + for i in range(max_lines, -1, -1): + if i < len(lines): + ret = get_filetype_from_line(lines[i]) + if ret: + return ret + + return None -- cgit v1.2.3