diff options
| author | Adam <[email protected]> | 2025-09-24 12:40:54 -0500 |
|---|---|---|
| committer | Adam <[email protected]> | 2025-09-24 12:40:54 -0500 |
| commit | f589fc2327dd807a82ce6f756231fdb8eb43dd59 (patch) | |
| tree | 0adc4c7fb38e5b41bba95e3de6e84f2c46cbc7f6 /packages/app/src/context | |
| parent | d3b6545e7c6069c9db031634b7890e6b8eb4de2a (diff) | |
| download | opencode-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.tsx | 6 |
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, } })() |
