Describe the bug
shift+alt+right (_editor.action.smartSelect.expand_) doesn't propagate the selection to vim extension in normal mode properly
To Reproduce
Steps to reproduce the behavior:
shift+alt+right in normal modec doesn't workExpected behavior
In 2. I would expect the selection to be cut.
Additional context
Add any other context about the problem here.
Duplicate of https://github.com/VSCodeVim/Vim/issues/1806, fixed in master
@J-Fields This specific command is fixed in master but if the user tries to use Shift+arrowKeys or Shift+Home/End that is only fixed on PR #5050.
Also I've just discovered a bug in master related to selection changes with visual mode multicursor that I'm currently trying to fix.
Ah, I didn't notice the mention of shift+arrowkeys - yeah that'll be fixed once I get around to reviewing that PR.
Also I've just discovered a bug in master related to selection changes with visual mode multicursor that I'm currently trying to fix.
馃憤 lmk if you need any input on how that should be handled
馃憤 lmk if you need any input on how that should be handled
Actually I might need some help. This is quite a tricky situation! Here is the issue:
updateView logic sets the selections and checks if they are different from the current ones in the editor to know if it will trigger a selection change event. For example we might set something like this:[1, 5; 4, 5][2, 5; 3, 5] where [1, 5; 4, 5] is the first cursor (from position (1, 5) to position (4, 5)) and [2, 5; 3, 5] is the second cursor (from position (2, 5) to position (3, 5))[1, 5; 4, 5] (although sometimes (usually when moving up) it actually returns [1, 5; 3, 5] and that one I don't understand yet, but it might be related to the same issue and disappear once that one is fixed)If you happen to know this last part it would be great, if not I'll have to dive deep into vscode source. I think they check if there is an intersect between selections and then create a union of those selections but I'm not sure.
Sorry, I thought I responded to this. I'm not sure exactly how VSCode combines selections, but I'm surprised that it seems to be nondeterministic. This is a very annoying case that I'd considered briefly at one point before deciding it was niche enough to not warrant the effort until bigger fish were fried 馃檭
Sorry, I thought I responded to this. I'm not sure exactly how VSCode combines selections, but I'm surprised that it seems to be nondeterministic. This is a very annoying case that I'd considered briefly at one point before deciding it was niche enough to not warrant the effort until bigger fish were fried 馃檭
I think I've got it working. It pretty much makes a union on intersected ranges. So far from manual tests it seems to work fine, I'm just trying to make a test for this to push a PR. If I can't manage to create a test I'll push it without one.
Most helpful comment
I think I've got it working. It pretty much makes a union on intersected ranges. So far from manual tests it seems to work fine, I'm just trying to make a test for this to push a PR. If I can't manage to create a test I'll push it without one.