Open gwymor opened 1 year ago
Thanks for this PR! I remember that when we last touched the sw/ts/sts material there were some corner cases around Tab and Backspace behaviour. What scenarios have you tested with this new code?
I've been using these changes in my Vim configuration for a couple years without issues with any editorconfigs I've come across so far. I don't set softtabstop
though, so I just noticed an issue with that:
If you set softtabstop
to 8 and edit a file whose editorconfig specifies 4-space indentation, Vim will insert 8 spaces, because editorconfig-vim will not touch softtabstop
at all. To fix this, we can disable softtabstop
when editorconfig indentation options are present so it does not conflict (setting softtabstop
to 0, the default). Users who want to delete a block of spaces as if it were a single character can enable smarttab
.
I'll fix the merge conflicts and that issue.
The current behavior is to set both shiftwidth and tabstop/softtabstop. shiftwidth gets set to the same value as tabstop. If I open a file that editorconfig indents with 8-space hard tabs, then ":set tabstop=4", my shiftwidth will still be 8, meaning that when I indent I will get two tabs. Set shiftwidth to 0, which defaults to the value of tabstop, and disable softtabstop so it doesn't conflict. This should have the same end result with less complication.
This removes the g:EditorConfig_softtabstop_space and g:EditorConfig_softtabstop_tab options. Users who want to delete multiple spaces as a single character can enable smarttab.