Conversation
A single tab is one character, so the existing "step then classify" loop treated it like an inter-word space and consumed the following word. Skip leading whitespace instead so a tab indent lands on the same character as a space indent.
Repository owner
locked as spam and limited conversation to collaborators
Aug 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #237.
^-Rightfrom column 0 on a tab-indented line jumped into/through the word, while the same line indented with spaces landed on the first character. A tab is a single whitespace character, so the existing "step once, then keep going while the type matches" loop classified the first letter of the word and consumed it.When the prefix through the current character is still whitespace, skip the rest of that leading whitespace instead. Mid-line word jumps (including a space between words) are unchanged.
tests/features/movement_test.py::test_ctrl_right_tab_indent_lands_on_wordcovers the tab vs spaces case from the issue. The existing movement tests still pass.