summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/context
diff options
context:
space:
mode:
authorAdam <[email protected]>2025-09-24 12:40:54 -0500
committerAdam <[email protected]>2025-09-24 12:40:54 -0500
commitf589fc2327dd807a82ce6f756231fdb8eb43dd59 (patch)
tree0adc4c7fb38e5b41bba95e3de6e84f2c46cbc7f6 /packages/app/src/context
parentd3b6545e7c6069c9db031634b7890e6b8eb4de2a (diff)
downloadopencode-f589fc2327dd807a82ce6f756231fdb8eb43dd59.tar.gz
opencode-f589fc2327dd807a82ce6f756231fdb8eb43dd59.zip
feat: fuzzy file open
Diffstat (limited to 'packages/app/src/context')
-rw-r--r--packages/app/src/context/local.tsx6
1 files changed, 5 insertions, 1 deletions
diff --git a/packages/app/src/context/local.tsx b/packages/app/src/context/local.tsx
index c52fe0db4..c74ae21ab 100644
--- a/packages/app/src/context/local.tsx
+++ b/packages/app/src/context/local.tsx
@@ -163,7 +163,7 @@ function init() {
})
}
- const open = async (path: string) => {
+ const open = async (path: string, options?: { pin?: boolean }) => {
const relative = path.replace(sync.data.path.directory + "/", "")
if (!store.node[relative]) {
const parent = relative.split("/").slice(0, -1).join("/")
@@ -181,6 +181,7 @@ function init() {
]
})
setStore("active", relative)
+ if (options?.pin) setStore("node", path, "pinned", true)
if (store.node[relative].loaded) return
return load(relative)
}
@@ -199,6 +200,8 @@ function init() {
})
}
+ const search = (query: string) => sdk.find.files({ query: { query } }).then((x) => x.data!)
+
const bus = useEvent()
bus.listen((event) => {
switch (event.type) {
@@ -303,6 +306,7 @@ function init() {
!x.path.replace(new RegExp(`^${path + "/"}`), "").includes("/"),
)
},
+ search,
}
})()