diff options
| author | Kenny <[email protected]> | 2026-01-10 11:57:18 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-01-10 10:57:18 -0600 |
| commit | d5738f542c222bb5832a21f54e8348db88a3f7ba (patch) | |
| tree | a58c6227bcbf52a54ab07c4b9607cd8dd8a4dd7d | |
| parent | 02b7eb59f8ce9d80a9a80210c0a8ca9de716962e (diff) | |
| download | opencode-d5738f542c222bb5832a21f54e8348db88a3f7ba.tar.gz opencode-d5738f542c222bb5832a21f54e8348db88a3f7ba.zip | |
fix(grep): follow symlinks by default in ripgrep searches (#7501)
| -rw-r--r-- | packages/opencode/src/file/ripgrep.ts | 9 | ||||
| -rw-r--r-- | packages/opencode/src/tool/grep.ts | 2 |
2 files changed, 9 insertions, 2 deletions
diff --git a/packages/opencode/src/file/ripgrep.ts b/packages/opencode/src/file/ripgrep.ts index 841f5f305..834cbee1e 100644 --- a/packages/opencode/src/file/ripgrep.ts +++ b/packages/opencode/src/file/ripgrep.ts @@ -367,8 +367,15 @@ export namespace Ripgrep { return lines.join("\n") } - export async function search(input: { cwd: string; pattern: string; glob?: string[]; limit?: number }) { + export async function search(input: { + cwd: string + pattern: string + glob?: string[] + limit?: number + follow?: boolean + }) { const args = [`${await filepath()}`, "--json", "--hidden", "--glob='!.git/*'"] + if (input.follow !== false) args.push("--follow") if (input.glob) { for (const g of input.glob) { diff --git a/packages/opencode/src/tool/grep.ts b/packages/opencode/src/tool/grep.ts index 4cbc5347f..b7cba1674 100644 --- a/packages/opencode/src/tool/grep.ts +++ b/packages/opencode/src/tool/grep.ts @@ -33,7 +33,7 @@ export const GrepTool = Tool.define("grep", { const searchPath = params.path || Instance.directory const rgPath = await Ripgrep.filepath() - const args = ["-nH", "--field-match-separator=|", "--regexp", params.pattern] + const args = ["-nH", "--hidden", "--follow", "--field-match-separator=|", "--regexp", params.pattern] if (params.include) { args.push("--glob", params.include) } |
