Project search and tasks
Search and replace across the group's folder from the side panel, and run the folder's own build, test and run commands from the command palette.
Project search
Project search looks through the files of the selected group's folder from the side panel, as text or a regular expression, and can replace what it finds after showing each change.
Open it with Cmd+Shift+F.
Type in "Search in files". The search runs shortly after you stop typing, and results are grouped by file, each line with its number and the matches marked. Click a file to open it, or a line to open the file at that place.
Options
| Button | Tooltip | Effect |
|---|---|---|
Aa | Match case | Off by default: case does not matter |
ab | Match whole word | Matches only whole words |
.* | Use regular expression | The pattern is an extended regular expression instead of plain text |
The filters drawer, "Toggle files to include and exclude", adds two fields. Each takes globs separated by commas, such as *.rs, src/** to include or target, *.lock to exclude. A glob without a / matches at any depth, and a folder's name also matches everything inside it.
What is searched
- The search runs
git grepin the group's folder. In a repository it covers tracked and untracked files and skips what git ignores; outside one it searches the folder as it is. - Binary files are skipped.
- Results stop at 2,000 lines; the count then says more are not shown.
- An invalid regular expression shows git's error.
Replace
Open the replace field
"Toggle replace" opens the Replace field. While it holds text, each result shows the matched text struck through next to its replacement, so you see every change before it is made.
Replace in one file or all of them
"Replace in this file", on a file's row, changes that file. "Replace in all files" asks for a second confirmation, Replace or Cancel.
Check the outcome
The app says how many matches it replaced in how many files. Lines that changed since the search are left as they are and counted apart.
The replacement is inserted as written, also with a regular expression. Replace all is refused when the search stopped at its result limit, since it would miss files: narrow the search with the files to include or exclude first.
Undo replace restores the files as they were before the last replacement. Files edited since the replacement are left as they are. A replacement whose files add up to more than 16 MiB cannot be undone from the app; review it with git.
Project tasks
A project task is a command the group's folder already declares for building, testing or running it. The command palette lists them under Tasks, as "Run task:" followed by the command, and runs the one you pick in a new terminal in the group.
| Source | Found in the group's folder | Tasks |
|---|---|---|
package.json scripts | package.json | One per script, run with the package manager its lockfile names |
| Cargo | Cargo.toml | cargo build, cargo test and cargo run |
| just | justfile, Justfile or .justfile | One per recipe, run with just; private recipes are left out |
| make | GNUmakefile, makefile or Makefile | One per target, run with make |
The package manager follows the lockfile next to package.json: pnpm-lock.yaml for pnpm, yarn.lock for Yarn, bun.lock or bun.lockb for bun, and npm otherwise. A script runs as, for example, pnpm run build.
Tasks are read from the root of the selected group, not from folders inside it. They run on the environment's host, so a group on a remote host runs them there.
See Keyboard for the command palette and Editor mode for working on the files.