forked from oslabs-beta/sapling
-
Notifications
You must be signed in to change notification settings - Fork 10
Open
Description
Features
- Persist webview tree state within sessions, and across editor restarts. Persist expand collapse state on tab switch #12
- Webview Persistence:
WebviewPanelSerializer(preferred),retainContextWhenHidden(high memory usage, last resort) - Approach originally used by Sapling:
vscode.ExtensionContext.WorkspaceState,Memento API
- Webview Persistence:
- Change current tab file on node click, and only open new tab on double/middle click.
- Consistent with the VSCode file explorer behavior.
- Spawning a new tab for every click accumulates too many open tabs and makes it difficult to browse the tree freely.
Search
- Make entire tree searchable, not just the currently visible nodes.
- Highlight search matches.
- User should be able to tell search matches and ancestor nodes apart at a glance.
Duplicate Nodes
- Handle duplicate nodes by highlighting all when one is selected
- Don't expand hidden nodes -- user can use expand all if identifying all duplicate nodes is ther intention.
- The clicked node should have higher opacity or otherwise be emphasized.
- FIX: extension not updating duplicate nodes in other subtrees on file save.
Keyboard Navigation
- PageUp/PageDown support.
- Skip through subtrees with Ctrl/Cmd + arrow
- Navigate to top/bottom of tree with Home/End.
- Global hotkey for switching focus between extension and active tab.
Webview Design
- Bold file nodes to distinguish from react router and third party nodes.
- Consolidate Expand/Collapse icons into one button with two states.
- Replace "Navigates to that file" tooltip with some info specific to hovered node.
- Implement line connectors.
Props
- Don't show props icon for components with no props.
- Move props icon and redux store icon to right of node name for consistent indenting.
- For TypeScript components, show type definitions for props.
- When a typed prop is clicked, open file and scroll to definition.
These ideas are intended as a starting point for discussion. Any feedback, suggestions, criticism is welcome.
Clicking on the ◎ icon will let you convert a task entry into a new issue.
Metadata
Metadata
Assignees
Labels
No labels