jednano / vscode-tabsanity

Arrow-key navigation through soft tabs as if they were hard tabs.
MIT License
12 stars 2 forks source link

Oddities with Multiple Cursors #10

Open Dessix opened 8 years ago

Dessix commented 8 years ago

I saw that you mentioned these anomalies on VSCode issue #2798 and I have been experiencing them myself.

I've added this entry for tracking purposes, since no issue thread existed on the subject, and will be digging into the source sometime this weekend in case I stand a shot at fixing them myself. Any related info would be welcome.

jednano commented 8 years ago

@Dessix, I've actually fixed most of the issues I was having with multiple cursors myself, but I know there's more work to be done. Also, the vscode API has changed a bit since then and I think there are now much more unobtrusive ways of achieving the goals of this plugin; though, I haven't found the time or desire to pursue them as of yet.

I'm afraid that's all the context I can give you for now. For starters, it might be helpful to call-out all the different "odd" scenarios in this ticket.

Dessix commented 8 years ago

I will try to find reproducible means of causing the issues so I can determine minimum-reproducible circumstances.

jednano commented 8 years ago

Even better if we can get failing tests to start.

jednano commented 8 years ago

@Dessix, this is the new API I was talking about...

const success = await commands.executeCommand(
    'cursorMove',
    {
        to: 'up',
        by: 'wrappedLine',
        value: 1, // default
        revealCursor: true
    }
);

Should be able to delete a lot of code in this plugin once this new API is implemented. It should also, perhaps, get rid of some side effects or bugs.

ghost commented 7 years ago

Adding a repro where multiple cursors on the same line have broken deletion behavior:

type:

abc abc abc

select all the a's and hit delete. Expect:

bc bc bc

With a tab-width of 2 I end up with:

bc ac ab
jethroflanagan commented 7 years ago

Disable the keyboard shortcuts for Tabsanity's delete commands to bypass the issue