Skip to content

fix(query): Tab inserts a real tab character#267

Merged
Maxteabag merged 3 commits into
Maxteabag:mainfrom
probeldev:fix-query-tab-autocomplete
Jul 14, 2026
Merged

fix(query): Tab inserts a real tab character#267
Maxteabag merged 3 commits into
Maxteabag:mainfrom
probeldev:fix-query-tab-autocomplete

Conversation

@probeldev

Copy link
Copy Markdown
Contributor
Screen.Recording.2026-07-07.at.15.32.31.mov

probeldev and others added 2 commits July 7, 2026 15:29
…still works

- QueryTextArea now inserts "\t" on Tab in INSERT mode.

- When the autocomplete dropdown is open, Tab accepts the suggestion instead.

- Escape closes autocomplete when leaving INSERT mode.

- Added unit and UI tests for Tab/autocomplete behavior.
Add focused UI coverage for replacing an active selection with Tab and for inserting Tab after autocomplete acceptance is rebound. Both tests intentionally fail against the current PR implementation so the behavior remains reproducible while the fix is developed.

Constraint: This branch contains regression tests only and is based on PR 267 head
Confidence: high
Scope-risk: narrow
Directive: Keep both tests when fixing the corresponding QueryTextArea behavior
Tested: Both targeted tests fail for the expected production assertions; Ruff passes
Not-tested: Production fix, because this commit intentionally adds failing regressions only
Related: Maxteabag#267
@Maxteabag

Copy link
Copy Markdown
Owner

Thanks for the PR!

Could you merge test/pr-267-tab-regressions into this PR? It adds two failing regression tests for Tab selection replacement and custom autocomplete keybindings.

@Maxteabag

Maxteabag commented Jul 14, 2026

Copy link
Copy Markdown
Owner

If you have the capacity to adress the tests - it would be great.

@probeldev

Copy link
Copy Markdown
Contributor Author

Done. Merged the test branch and fixed both regressions. All tests pass.

@Maxteabag
Maxteabag merged commit f23227e into Maxteabag:main Jul 14, 2026
pull Bot pushed a commit to Mu-L/sqlit that referenced this pull request Jul 14, 2026
Autocomplete key bindings should keep working when users assign Tab to navigation or closing rather than acceptance. Dispatch the active binding once through Textual's guarded action system before falling back to literal tab insertion.

Constraint: QueryTextArea intercepts Tab before normal key routing
Rejected: Yield the event to bubbling | Textual handlers can process navigation twice
Confidence: high
Scope-risk: narrow
Directive: Keep custom autocomplete bindings ahead of literal Tab insertion
Tested: 15 focused tests; full suite 1716 passed and 646 skipped
Not-tested: Three unrelated baseline failures reproduced on origin/main
Related: Maxteabag#267
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants