tmuxp.cli.search.evaluate_match
Python
- Python
- Ruby Unavailable
- Lua Unavailable
- TypeScript Unavailable
- Rust Unavailable
- Go Unavailable
- Java Unavailable
- .NET Unavailable
- C++ Unavailable
- Swift Unavailable
- tmuxp.cli.search.evaluate_match ( fields : WorkspaceFields , patterns : list[SearchPattern] , match_any : bool = False ) tuple[bool, dict[str, list[str]]]
-
Evaluate if workspace fields match search patterns.
Examples
>>> import re>>> fields: WorkspaceFields = {... "name": "dev-project",... "path": "~/.tmuxp/dev-project.yaml",... "session_name": "development",... "windows": ["editor", "shell"],... "panes": ["vim", "git status"],... }Single pattern match:
>>> pattern = SearchPattern(... fields=("name",),... raw="dev",... regex=re.compile("dev"),... )>>> matched, matches = evaluate_match(fields, [pattern])>>> matchedTrue>>> "name" in matchesTrueAND logic (default) - all patterns must match:
>>> p1 = SearchPattern(fields=("name",), raw="dev", regex=re.compile("dev"))>>> p2 = SearchPattern(fields=("name",), raw="xyz", regex=re.compile("xyz"))>>> matched, _ = evaluate_match(fields, [p1, p2], match_any=False)>>> matchedFalseOR logic - any pattern can match:
>>> matched, _ = evaluate_match(fields, [p1, p2], match_any=True)>>> matchedTrueWindow field search:
>>> p_win = SearchPattern(... fields=("window",),... raw="editor",... regex=re.compile("editor"),... )>>> matched, matches = evaluate_match(fields, [p_win])>>> matchedTrue>>> "window" in matchesTrue- Parameters
-
-
fields ( WorkspaceFields ) – Extracted workspace fields to search.
-
patterns ( list[SearchPattern] ) – Compiled search patterns.
-
match_any ( bool ) – If True, match if ANY pattern matches (OR logic). If False, ALL patterns must match (AND logic). Default False.
-
- Returns
-
tuple[bool, dict[str, list[str]]] Tuple of (matched, {field_name: [matched_strings]}). The matches dict contains actual matched text for highlighting.