# tmuxp.cli.search.parse_query_terms

- **Module:** tmuxp.cli.search
- **Package:** tmuxp
- **Language:** Python
- **Kind:** function
- **Source:** https://github.com/tmux-python/tmuxp/blob/153acdf6ff1268b14d3d03ed488f545a7123c8f1/src/tmuxp/cli/search.py#L238
- **Page:** https://libtmux.org/en/py/latest/workspace/reference/tmuxp-cli-search-parse_query_terms/

```
tmuxp.cli.search.parse_query_terms(terms: list[str], default_fields: tuple[str, ...] = DEFAULT_FIELDS) -> list[SearchToken]
```

Parse query terms into search tokens.

Each term can optionally have a field prefix (e.g., "name:dev").
Terms without prefixes search the default fields.

## Parameters

- `terms` (list[str]): Query terms to parse.
- `default_fields` (tuple[str, ...]): Fields to search when no prefix is specified.

## Returns

list[SearchToken]
    List of parsed search tokens.

## Raises

- `InvalidFieldError`: If a field prefix is not recognized.

## Example

```python
>>> tokens = parse_query_terms(["dev"])
>>> tokens[0].fields
('name', 'session_name', 'path', 'window', 'pane')
>>> tokens[0].pattern
'dev'
```

## Example

```python
>>> tokens = parse_query_terms(["name:dev", "s:prod"])
>>> tokens[0]
SearchToken(fields=('name',), pattern='dev')
>>> tokens[1]
SearchToken(fields=('session_name',), pattern='prod')
```

## Example

```python
>>> tokens = parse_query_terms(["window:editor", "shell"])
>>> tokens[0].fields
('window',)
>>> tokens[1].fields
('name', 'session_name', 'path', 'window', 'pane')
```

## Example

Unknown prefixes are treated as literal patterns (allows URLs, etc.):

```python
>>> tokens = parse_query_terms(["http://example.com"])
>>> tokens[0].pattern
'http://example.com'
>>> tokens[0].fields  # Searches default fields
('name', 'session_name', 'path', 'window', 'pane')
```
