- "Backend"
- "gerrit credentials" command
- Implement gerrit API
- Caching?
- Infer URL, port, project from
.gitreview
file - [-] Join requests
- Make everything invalidatable
- Allow invalidating of changes, files etc
- [-] Sync up invalidations. For example if change with withValues A and B is invalidated at the same time, fetch one change with A&B at the same time.
- [-] Only update UI when changes made (in how far is this possible?)
- [-] If known that an update is coming, let the user decide
- Preserve
- Caching
- Proper garbage collection
- Allow invalidating of changes, files etc
- Better more central caching
- Instant updates
- Let the user decide whether to update the diff view if the latest patchset updates
- Visual
- Changes pane
- Changeset selection
- ... buttons
- Allow changing view. Presets:
- Dashboard
- Draft comments
- Starred changes
- Open
- Merged
- Or by just changing config in settings
- Allow changing view. Presets:
- Search bar at the top // Search bar in treeview is not possible (see microsoft/vscode-extension-samples#113). Instead we use a search icon
- Select active view
- Show changes under headers with following info:
- #ID
- Subject
- Owner
- [-] V (not possible)
- Maybe multiline?
- Rightclick on changes:
- Checkout
- Offer to stash and unstash
- Checkout & Review
- Toggle review mode
- Open on gerrit
- [-] Notify when verified by administrator? // Not really possible with Stream Events. Also hard to generalize because workflows differ a lot.
- Checkout
- Add "refresh" button
- Periodically refresh
- Add "fetch more" button
- Change expands to:
- Description
- [-] Clicking opens inline gerrit webview // Not possible because Gerrit doesn't allow iframes or unauthorized fetching of the HTML. (would also be hard with cookies etc).
- [-] Possible future TODO, create custom UI
- [-] Clicking opens inline gerrit webview // Not possible because Gerrit doesn't allow iframes or unauthorized fetching of the HTML. (would also be hard with cookies etc).
- Do something with comments that aren't inside of a file
- All changed files by path
- Badges:
- A (added)
- M (modified)
- D (deleted)
- Double-check standards here
- Add comment icon that shows whether you (or someone else) commented
- RMB:
- Open unmodified
- Open modified
- Open on gerrit
- [-] Mark reviewed
- What happens when you click:
- Diff view
- [-] Highlighting text and pressing "c" creates comment (not possible in VSCode)
- [-] Or right-click "create comment" (same as above)
- Add line on the left that allows creating comments
- If text highlighted when creating commnt, use that text
- [-] Highlighting text and pressing "c" creates comment (not possible in VSCode)
- Show comments
- Default-expand unresolved, collapse resolved
- Add the magic buttons (done etc)
- Inline text field etc
- Cancel, save, resolved
- Add "copy link" button (just like on the website)
- Diff view
- Badges:
- Description
- Reply pane
- Update draft comment counter when a comment is added
- Contains everything under the "reply" button and some more:
- Reviewers
- CC
- Main textfield
- Checkbox [resolved]
- All scores
- Code-review
- Others
- Checkbox [publish X drafts]
- [-] Attention set modifier
- if WIP, show "start review"
- [-] Show cancel (reset) button
- Shows this data for the currently checked-out change
- If clicking "review" instead of "checkout & review" in changes, show it as well. Shows the reviewing change in the bottom bar. Can click that to stop reviewing (or the change itself).
- Also a "stop reviewing X" button below reply button.
- If clicking "review" instead of "checkout & review" in changes, show it as well. Shows the reviewing change in the bottom bar. Can click that to stop reviewing (or the change itself).
- Add "review" button in source control
- If first patchset, automatically open reply pane
- Allow disabling this in settings
- This should also be a command
- Add a bunch of gerrit commands in the ... button
- Git review
- [-] Git add . && git commit --amend
- [-] Git add . && git commit --amend (no msg)
- Git rebase (sort of)
- Recursive rebase (sort of)
- If first patchset, automatically open reply pane
- Add bottom bar showing currently checked-out change
- [-] Rightclicking:
- [-] Uncheckout
- [-] Uncheckout & unstash previous
- [-] Cancel review (if just reviewing)
- Instead make bottom bar a patch-selector (like git branch selector)
- [-] Rightclicking:
- Commands
- Checkout patch X (from command panel)
- Open patch X in changes pane
- Add as startup events
- Rebase command
- Changes pane