microsoft / vscode

Visual Studio Code
https://code.visualstudio.com
MIT License
162.97k stars 28.77k forks source link

Add / Revert / Next / Previous git isn't ergonomic #153230

Closed jsoref closed 2 years ago

jsoref commented 2 years ago

Issue Type: Bug

There's a mode where one can add (stage) / revert / go to next / go to previous change in a file based on git diff (roughly the equivalent of git add -i ...).

  1. The buttons for add/revert/next/previous are on the opposite side from the anchor to trigger the bar
  2. While there is a next option, it sometimes shifts the next code point to the same spot on the scren, and sometimes moves the bar to elsewhere on the screen.

Ideally it would be easy to perform all of these actions w/ minimal "cursor travel".

image image image image

Notice how this one is in a different spot on the screen which means that even though I've been able to click revert and then press option-f3 for the last couple, I now need to move my mouse to get to this spot

image

And now my mouse has to travel back to the previous spot.

I've intentionally narrowed my screen to a very very very very tiny size so that I can perform some of these actions w/ reduced travel. But here, let's consider using the right bar to jump and then the left edge to trigger the bar instead of using option-f3:

image

jumping:

image

oops, I missed.

image

let's scroll back to where I was supposed to hit:

image

At this width, clicking the left marker: isn't terribly painful wrt travel to choose the revert button.

But, let's consider the case where my window is normally sized:

image image

Now my cursor must travel from the far left edge of the document to the far right edge of the document in order to hit revert:

image image

Now, if i'm using that right bar to jump to the next item, it's (kinda) close to where my cursor is....

image

But, now I get to jump to the far left again just to open that bar.

image image image image

Ideally:

  1. when using the next / previous buttons/keystrokes, the bar position shouldn't shift -- even if that means some empty space needs to be provided above. -- yes this means that the document should still scroll even if the next target was visible onscreen.
  2. it'd be good to be able to hit the right side instead of the left gutter in order to trigger the bar, that'd mean one could do position jumping, followed by opening the bar, followed by picking an action w/ minimal travel.

VS Code version: Code 1.68.1 (Universal) (30d9c6cd9483b2cc586687151bcbcd635f373630, 2022-06-14T12:52:13.188Z) OS version: Darwin arm64 21.5.0 Restricted Mode: No

System Info |Item|Value| |---|---| |CPUs|Apple M1 Max (10 x 24)| |GPU Status|2d_canvas: enabled
canvas_oop_rasterization: disabled_off
direct_rendering_display_compositor: disabled_off_ok
gpu_compositing: enabled
metal: disabled_off
multiple_raster_threads: enabled_on
oop_rasterization: enabled
opengl: enabled_on
rasterization: enabled
raw_draw: disabled_off_ok
skia_renderer: enabled_on
video_decode: enabled
video_encode: enabled
webgl: enabled
webgl2: enabled| |Load (avg)|2, 3, 3| |Memory (System)|64.00GB (0.77GB free)| |Process Argv|--crash-reporter-id 1fc67ee2-0174-4598-9f98-4537df0dd32c| |Screen Reader|no| |VM|0%|
Extensions (23) Extension|Author (truncated)|Version ---|---|--- quitcontrol-vscode|art|4.0.0 open-in-macdown|Cod|1.0.0 dhall-lang|dha|0.0.4 vscode-dhall-lsp-server|dha|0.0.4 EditorConfig|Edi|0.16.4 go|gol|0.34.0 haskell|has|2.2.0 cmake-language-support-vscode|jos|0.0.4 language-haskell|jus|3.6.0 vscode-dotnet-runtime|ms-|1.5.0 python|ms-|2022.8.0 vscode-pylance|ms-|2022.6.30 jupyter|ms-|2022.5.1001601848 jupyter-keymap|ms-|1.0.0 jupyter-renderers|ms-|1.0.8 vscode-dhall-lsp-server|pan|0.0.4 vscode-xml|red|0.20.0 vscode-yaml|red|1.8.0 scala|sca|0.5.5 metals|sca|1.17.0 code-spell-checker|str|2.2.5 simple-rst|tro|1.5.2 markdown-all-in-one|yzh|3.4.3
A/B Experiments ``` vsliv368:30146709 vsreu685:30147344 python383cf:30185419 vspor879:30202332 vspor708:30202333 vspor363:30204092 vswsl492:30256859 vslsvsres303:30308271 pythonvspyl392:30443607 vserr242:30382549 pythontb:30283811 vsjup518:30340749 pythonptprofiler:30281270 vshan820:30294714 vstes263cf:30335440 vscoreces:30445986 pythondataviewer:30285071 vscod805cf:30301675 binariesv615:30325510 bridge0708:30335490 bridge0723:30353136 vsaa593:30376534 vsc1dst:30438360 pythonvs932:30410667 wslgetstarted:30449410 vscscmwlcmt:30465135 cppdebug:30492333 vsclangdc:30486549 c4g48928:30516488 ```
VSCodeTriageBot commented 2 years ago

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.

Happy Coding!

VSCodeTriageBot commented 2 years ago

This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our documentation.

Happy Coding!

VSCodeTriageBot commented 2 years ago

:slightly_frowning_face: In the last 60 days, this feature request has received less than 20 community upvotes and we closed it. Still a big Thank You to you for taking the time to create this issue! To learn more about how we handle feature requests, please see our documentation.

Happy Coding!