Make ANSI sanitizer pattern re-useable

This commit is contained in:
Kovid Goyal
2022-02-15 22:14:14 +05:30
parent 711f8b024e
commit e9f49a3292
2 changed files with 9 additions and 8 deletions

View File

@@ -61,6 +61,11 @@ def sgr_sanitizer_pat(for_splitting: bool = False) -> 're.Pattern[str]':
return re.compile(pat)
@run_once
def ansi_sanitizer_pat() -> 're.Pattern[str]':
return re.compile(r'\x1b(?:\[.*?m|\].*?\x1b\\)')
def platform_window_id(os_window_id: int) -> Optional[int]:
if is_macos:
from .fast_data_types import cocoa_window_id

View File

@@ -42,11 +42,12 @@ from .notify import NotificationCommand, handle_notification_cmd
from .options.types import Options
from .rgb import to_color
from .terminfo import get_capabilities
from .types import MouseEvent, WindowGeometry, ac, run_once
from .types import MouseEvent, WindowGeometry, ac
from .typing import BossType, ChildType, EdgeLiteral, TabType, TypedDict
from .utils import (
get_primary_selection, load_shaders, log_error, open_cmd, open_url,
parse_color_set, resolve_custom_file, sanitize_title, set_primary_selection
ansi_sanitizer_pat, get_primary_selection, load_shaders, log_error,
open_cmd, open_url, parse_color_set, resolve_custom_file, sanitize_title,
set_primary_selection
)
MatchPatternType = Union[Pattern[str], Tuple[Pattern[str], Optional[Pattern[str]]]]
@@ -282,11 +283,6 @@ def setup_colors(screen: Screen, opts: Options) -> None:
)
@run_once
def ansi_sanitizer_pat() -> 're.Pattern[str]':
return re.compile(r'\x1b(?:\[.*?m|\].*?\x1b\\)')
def text_sanitizer(as_ansi: bool, add_wrap_markers: bool) -> Callable[[str], str]:
pat = ansi_sanitizer_pat()
ansi, wrap_markers = not as_ansi, not add_wrap_markers