Global search
Ripgrep across the project, grouped per file, opening straight into the editor.
Global search reads file *contents* across the whole project. It is the counterpart to the palette's go-to-file, which matches file *names*.
Opening it
Press ctrl+shift+F. The tools panel opens on the search view with the field already focused, so you can type immediately. You can also reach it from the tools panel's icon strip.
Mel remembers that the panel was open and which view you were on, so it returns the way you left it.
What runs underneath
Mel prefers ripgrep (rg) and falls back to git grep when ripgrep is not installed. The search runs on a background thread, debounced by 300 ms, and is capped at 500 hits so a broad query cannot flood the panel. Nothing is sent anywhere — this is a local search of your own working tree.
The search is rooted at the same place as the project explorer: the active pane's git toplevel, or its working directory when there is no repository.
Options
Two toggles sit inside the input, and changing either re-runs the query:
Aa— case-sensitive matching.- **
.*** — treat the query as a regular expression rather than a literal.
Reading the results
Results are summarised as "N results in M files" and grouped per file, with a collapsible header showing the file name, its directory, and a count badge. Each row shows the matching line with the matched range highlighted, plus path:line.
Click a hit and the file opens in the built-in editor at that line, as a side panel — your terminal stays visible. Drag the editor's header out of the panel to promote the file into its own tab.
Which search do I want?
| I want to… | Use |
|---|---|
| Open a file whose name I roughly know | ctrl+P, then type part of the path |
| Find where something is defined or used | ctrl+shift+F |
| Read what just changed | ctrl+shift+= (the code review panel) |
| Browse a directory I do not know yet | The project explorer |