-
Notifications
You must be signed in to change notification settings - Fork 19
Open
Labels
component: Rubbeduck.UIIssue involves UI componentsIssue involves UI componentsskill:xamlIssues that involve XAML markup and WPFIssues that involve XAML markup and WPF
Description
UI work to do around the Rubberduck Editor main window, at a high level.
-
Initializes LSP server (client: addin process)
-
Initializes VBA LSP client
-
Initializes JSON LSP client
-
Accepts workspace root and client process id as command-line arguments
- Opens workspace provided by command-line args on startup
-
Can load settings from file
- Can merge with defaults
-
Selectable/dynamic theming (JSON)
- Light/blue theme (ref.Visual Studio)
- Looks awesome
- Dark theme (ref.Visual Studio)
- Looks awesome
- Dark/blue theme (ref.VSC/"Abyss")
- Looks awesome
- Theme settings
- ThemeColorSetting record and UI (color picker?)
- Can render a preview
- Accents (4)
- Gradients (4) (auto?)
- Syntax highlighting palette
- Client-side regex-based simple rules
- Semantic highlighting from LSP server
- Looks awesome
- ThemeColorSetting record and UI (color picker?)
- Light/blue theme (ref.Visual Studio)
-
Docking panels (side, bottom)
- Can be hidden/collapsed
- Can be expanded
- Can be pinned to remain expanded
- Option to expand on hover (vs only on click)
- Looks awesome
-
Tooltabs
- Can be pinned from frame header
- Can be closed from frame header
- Can be dragged from frame header
- Tooltab header styling respects theme
- Shows title in frame header
- Shows settings command in frame header
- Frame header context menu
- Can undock tooltab
- Can pin tooltab
- Can close tooltab
-
Document/editor tabs
- Can be pinned (from tab header)
- Can be closed (from tab header)
- Tab header styling respects theme
- Tab header context menu
- Can undock tab
- Can pin tab
- Can close tab
- Can close all tabs but this one
- Can close all unpinned tabs
-
Status bar UI
- Shows server connection status
- Icon/button shows the server trace toolwindow
- Shows progress indicator for server-side (LSP) progress reports
- Can cancel cancellable server operations
- Document status template
- Document name
- Document type
- IsModified indicator
- Number of lines
- Number of characters (bytes?)
- L1C1 caret location / current selection
- Source file status template
- Shows module/component type
- Shows number of diagnostics in module
- Button shows diagnostics toolwindow
- Shows server connection status
-
Menu bar UI
- File menu commands
- Synchronize workspace
- Edit menu commands
- View menu commands
- Project menu commands
- Debug menu commands
- Test menu commands
- Analyze menu commands
- Tools menu commands
- Windows menu commands
- Help menu commands
- Looks awesome
- File menu commands
-
Floating/undocked document windows
- Can be re-docked to main window's document tab host
- Can accept/dock other document tabs
- Has a status bar
- Looks awesome
-
Floating/undocked toolwindows
- Can be re-docked on either side or bottom tooltab areas
- Toolwindows have a horizontal template when docked at the bottom
- Can accept/dock other document tabs
- Looks awesome
- Can be re-docked on either side or bottom tooltab areas
-
Base toolwindow UI ("ThunderFrame")
- Can bind close, pin, and show [that tool's] settings commands
- Shows title
- Can bind accept/cancel commands
- Looks awesome
-
Document tab templates
- Text document template
- Markdown document template
- Shows a preview pane
- JSON document template
- Source file document template
- Looks awesome
-
MessageBox dialog +service
- ShowMessage/ShowMessageRequest LSP handlers
- Can render markdown
- Can be ignored ("do not show again")
- Can be expanded to show additional markdown content
- Looks awesome
-
New Project dialog
- Shows VBA projects from VBE add-in
- Hides projects drop-down when running without the VBE add-in
- Can create a project from a template
- Creates workspace folders
- Opens the created project
- Looks awesome
-
Workspace Explorer toolwindow
- Represents workspaces in a tree view
- ...without glitchy nodes that shouldn't be there
- Toolbar shortcuts to create new project/workspace, open existing
- Open file command (LSP)
- Bind ENTER and double-click
- Bind drop into editor document tab host
- Folder icons change on expand
- Can be shown (empty) on startup
- Can rename files/folders
- Bind to F2 and selected-click
- Sends LSP notifications
- Can create files/folders
- Sends LSP notifications
- Can delete files/folders
- Bind to DELETE key
- Sends LSP notifications
- Can move (drag/drop) files/folders
- Sends LSP notifications
- Can drop files/folders from Windows Explorer (copies them to workspace)
- Looks awesome
- Represents workspaces in a tree view
-
Code (Project?) Explorer toolwindow
- Shows project folders and source files in a tree view
- Can show all opened projects (like workspaces for workspace explorer)
- Can show module members
- Can show/hide signatures
- Can search/filter nodes
- Can add/remove modules (LSP)
- Can add/remove forms (LSP)
- Can add/remove folders (LSP)
- Can open documents (LSP)
- Looks awesome
-
Settings dialog
- Boolean settings template
- String setting template
- Numeric setting template
- TimeSpan setting template
- Enum setting template (per enum)
- List setting template
- Can remove items from UI
- Merge and serialize settings, defaults
- Saves to disk/apply on change
- Option to save/apply on close
- Can drag-resize sections
- Can drag-move/reorder sections
- Can save/load section layout
- Can show+focus specific settings
- Looks awesome
-
Language Server toolwindow
- Can be paused
- Can select verbosity
- Command to open log file
- Shows LSP LogTrace messages
- Autoscrolls to bottom
- Looks awesome
-
Update Server Toolwindow
- Can be stopped, restarted
- Can select verbosity
- Command to open log file
- Shows update server stdout
- Autoscrolls to bottom
- Can check for updates
- Can schedule to update on close
- Can skip an update (that would be a "list"-type setting, already exists)
- Can browse tags, release notes
- Can rollback an update, install any previous release
- Looks awesome
-
About dialog
- Shows version info for RD Editor
- Shows version info for all servers
- Lists contributors
- Lists libraries
- Credits artworks
- Links to website, repo, org, shop/ko-fi
- Looks awesome
Metadata
Metadata
Assignees
Labels
component: Rubbeduck.UIIssue involves UI componentsIssue involves UI componentsskill:xamlIssues that involve XAML markup and WPFIssues that involve XAML markup and WPF