feat: files pane like VS Code: tree, tabs, go to file
- Explorer tree with inline expand/collapse and keyboard navigation, git colours, change dots, dimmed gitignored entries (fs-list now flags them), file-type badges, resizable explorer. - Editor tabs: preview tab semantics, instant switching with scroll kept, in-place reload when Claude changes an open file. - Go to file: devdesk attach --fs-find (git ls-files or capped find) and a fuzzy-ranked palette (CommandPalette gained custom search/async lists). - Per-session memory of folders and tabs; empty state with recents. Closes #37 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -594,3 +594,23 @@ blob_body() {
|
||||
[ "$status" -ne 0 ]
|
||||
done
|
||||
}
|
||||
|
||||
@test "fs-list flags gitignored entries; fs-find lists files for go-to-file (#37)" {
|
||||
p="$DEVDESK_PROJECTS_ROOT/alpha"
|
||||
git -C "$p" init -q -b main
|
||||
mkdir -p "$p/src" "$p/build" "$p/node_modules/x"
|
||||
printf 'build/\n*.log\n' >"$p/.gitignore"
|
||||
echo a >"$p/src/a.js"
|
||||
echo b >"$p/debug.log"
|
||||
echo c >"$p/node_modules/x/i.js"
|
||||
run devdesk attach --fs-list alpha
|
||||
[ "$(jq -r '[.entries[] | select(.ig) | .n] | join(",")' <<<"$output")" = "build,debug.log" ]
|
||||
run devdesk attach --fs-find alpha
|
||||
[ "$(jq -r '.files | sort | join(",")' <<<"$output")" = ".gitignore,node_modules/x/i.js,src/a.js" ]
|
||||
# Outside git: find, without node_modules
|
||||
rm -rf "$p/.git"
|
||||
run devdesk attach --fs-find alpha
|
||||
[ "$(jq -r '.files | sort | join(",")' <<<"$output")" = ".gitignore,debug.log,src/a.js" ]
|
||||
run env DEVDESK_FS_FIND_MAX=1 "$REPO/bin/devdesk" attach --fs-find alpha
|
||||
[ "$(jq -r '[(.files | length), .truncated] | @tsv' <<<"$output")" = "$(printf '1\ttrue')" ]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user