Просмотр исходного кода

fix: issue where you couldn't @ folders/files that started with a "." (#11553)

Aiden Cline 2 месяцев назад
Родитель
Сommit
d4c90b2dfb
2 измененных файлов с 40 добавлено и 1 удалено
  1. 1 1
      packages/opencode/src/file/ripgrep.ts
  2. 39 0
      packages/opencode/test/file/ripgrep.test.ts

+ 1 - 1
packages/opencode/src/file/ripgrep.ts

@@ -215,7 +215,7 @@ export namespace Ripgrep {
 
     const args = [await filepath(), "--files", "--glob=!.git/*"]
     if (input.follow) args.push("--follow")
-    if (input.hidden) args.push("--hidden")
+    if (input.hidden !== false) args.push("--hidden")
     if (input.maxDepth !== undefined) args.push(`--max-depth=${input.maxDepth}`)
     if (input.glob) {
       for (const g of input.glob) {

+ 39 - 0
packages/opencode/test/file/ripgrep.test.ts

@@ -0,0 +1,39 @@
+import { describe, expect, test } from "bun:test"
+import fs from "fs/promises"
+import path from "path"
+import { tmpdir } from "../fixture/fixture"
+import { Ripgrep } from "../../src/file/ripgrep"
+
+describe("file.ripgrep", () => {
+  test("defaults to include hidden", async () => {
+    await using tmp = await tmpdir({
+      init: async (dir) => {
+        await Bun.write(path.join(dir, "visible.txt"), "hello")
+        await fs.mkdir(path.join(dir, ".opencode"), { recursive: true })
+        await Bun.write(path.join(dir, ".opencode", "thing.json"), "{}")
+      },
+    })
+
+    const files = await Array.fromAsync(Ripgrep.files({ cwd: tmp.path }))
+    const hasVisible = files.includes("visible.txt")
+    const hasHidden = files.includes(path.join(".opencode", "thing.json"))
+    expect(hasVisible).toBe(true)
+    expect(hasHidden).toBe(true)
+  })
+
+  test("hidden false excludes hidden", async () => {
+    await using tmp = await tmpdir({
+      init: async (dir) => {
+        await Bun.write(path.join(dir, "visible.txt"), "hello")
+        await fs.mkdir(path.join(dir, ".opencode"), { recursive: true })
+        await Bun.write(path.join(dir, ".opencode", "thing.json"), "{}")
+      },
+    })
+
+    const files = await Array.fromAsync(Ripgrep.files({ cwd: tmp.path, hidden: false }))
+    const hasVisible = files.includes("visible.txt")
+    const hasHidden = files.includes(path.join(".opencode", "thing.json"))
+    expect(hasVisible).toBe(true)
+    expect(hasHidden).toBe(false)
+  })
+})