Content Search
Search file contents with ripgrep-backed matching, syntax‑highlighted snippets, and caret markers.
Content Search
lla provides fast content search powered by ripgrep (rg). It shows syntax‑highlighted code snippets with line numbers and bright caret markers pointing to exact matches.
Usage
# Search current directory (literal match by default)
lla --search "TODO"
# Search a specific directory
lla src/ --search "main()"
# Control context lines (default: 2)
lla --search "TODO" --search-context 5
Search Patterns
By default lla treats the pattern as a literal (safe for special characters). To use regex, prefix your pattern with regex:
.
# Literal (default)
lla --search "main()"
# Regex (use regex: prefix)
lla --search "regex:^func.*\("
Search Options
Options supported by lla’s CLI for content search:
- Context lines:
--search-context <n>
(applies symmetrically before/after, default 2) - Case sensitivity:
--case-sensitive
(default is case‑insensitive) - File/name filter:
-f ".ext"
or-f "glob:pattern"
(mapped to ripgrep--glob
) - Directory target: pass a directory as the first positional argument
Advanced Features
What you’ll see:
- Syntax‑highlighted snippets based on file extension
- Line numbers for each snippet line
- Bright yellow carets marking exact match spans
Integration with lla Features
Content search honors your other lla settings:
- Works with
--filter
,--files-only
, etc. (eligible files are passed to ripgrep) - Respects configured
exclude_paths
- Honors dotfile visibility flags (
--no-dotfiles
,-A/--almost-all
)
Practical Use Cases
Development Workflows
Finding API usage:
lla --search "regex:api\\.fetch\("
lla --search "regex:^use .*" -f ".rs"
Tracking TODOs and FIXMEs:
lla --search "regex:(TODO|FIXME|HACK):" --search-context 2
Finding dependencies:
lla --search "regex:^import.*from" -f "glob:*.{js,ts,jsx,tsx}"
lla --search "regex:^use " -f ".rs"
Code Review
Finding console logs:
lla --search "regex:console\\.(log|warn|error)" -f "glob:*.{js,ts,jsx,tsx}"
Checking error handling:
lla --search "regex:try\\s*\{|catch\\s*\(" --search-context 5
Finding deprecated code:
lla --search "@deprecated" --search-context 3
Configuration Management
Finding configuration keys:
lla --search "regex:api_key|secret|password" -f "glob:*.{toml,yaml,yml,json}"
Checking environment variables:
lla --search "process\.env\." -f "glob:*.{js,ts,jsx,tsx}"
lla --search "std::env::" -f ".rs"
Machine Output
For automation and tooling, lla passes through ripgrep’s JSON and also supports CSV:
# Ripgrep JSON events (pass-through)
lla --search "FIXME" --json
lla --search "TODO" --ndjson
# CSV (header: file,line,column,kind,text)
lla --search "TODO" --csv
Notes:
- Literal matching is the default; use
regex:
to enable regex. - Some ripgrep CLI flags (e.g.,
--type
,--before-context/--after-context
) are not exposed directly; use-f
for globs and--search-context
for symmetric context.
Ignoring Files and Directories
lla honors .gitignore
via its internal walker and your configured exclude_paths
. Use --no-dotfiles
/-A
/--dotfiles-only
to control hidden files.
Quick Reference
# Basics
lla --search "TODO" # Literal search
lla --search "regex:^func\(" # Regex search
lla --search "Error" --case-sensitive # Case‑sensitive
lla --search "TODO" --search-context 3 # Context lines
# Scope
lla src/ --search "main" # Target directory
lla --search "Error" -f ".rs" # Filter by extension
lla --search "import" -f "glob:*.{js,ts,jsx,tsx}"
# Machine output
lla --search "FIXME" --json
lla --search "TODO" --csv