Make ANSI sanitizer pattern re-useable
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user