feat(vscode): cycle reasoning effort variants with Shift+Tab - #12403
Conversation
| </> | ||
| <Tooltip | ||
| value={ | ||
| <div data-slot="tooltip-keybind"> |
There was a problem hiding this comment.
SUGGESTION: Reinvents TooltipKeybind instead of reusing it
This hand-rolls a tooltip body with data-slot="tooltip-keybind" / data-slot="tooltip-keybind-key", but no CSS exists anywhere in the repo for these slots (only referenced here). @kilocode/kilo-ui/tooltip already exports a TooltipKeybind component built for exactly this "title + keybind chip" pattern, and it's already used elsewhere in this package (e.g. SessionTab.tsx, WorktreeItem.tsx) with proper styling via openDelay, gutter, etc.
Suggest replacing the manual Tooltip + div/span markup with TooltipKeybind (title={language.t("prompt.thinking.tooltip")} and keybind={props.cycleHint ? "Shift+Tab" : ""}) so the hint gets consistent, already-styled presentation instead of unstyled plain text.
Reply with @kilocode-bot fix it to have Kilo Code address this issue.
There was a problem hiding this comment.
Yes — worth fixing. The suggestion points out real dead/unstyled code (custom data-slot=tooltip-keybind markup with no matching CSS) when an existing, already-styled TooltipKeybind component does the same job and is used elsewhere in the package. Low risk, small change, improves consistency.
Want me to spawn a Cloud Agent to apply the fix (swap the manual Tooltip/div markup for TooltipKeybind in ThinkingSelector.tsx)?
Code Review SummaryStatus: 1 Issue Found | Recommendation: Address before merge Overview
Issue Details (click to expand)SUGGESTION
Files Reviewed (35 files)
Fix these issues in Kilo Cloud Reviewed by claude-sonnet-5 · Input: 72 · Output: 14.8K · Cached: 2.8M Review guidance: REVIEW.md from base branch |
…ariant-navigation feat(vscode): cycle reasoning effort variants with Shift+Tab
Switching reasoning effort currently requires opening the variant dropdown and picking the next level by hand, which is tedious when comparing outputs across effort levels. The CLI already offers variant cycling in the TUI; the VS Code extension had no keyboard path for it.
This adds Shift+Tab cycling to every prompt input that shows the reasoning variant selector:
PromptInput)Pressing Shift+Tab selects the next variant and wraps after the last one, matching the selector order. When a slash-command or file-mention dropdown is open it keeps its own Tab handling, and the ghost-text Tab accept is unaffected.
Because Shift+Tab is also the default backwards focus-navigation key, the behavior is gated by a new
kilo-code.new.chat.shiftTabCyclesVariantsetting (default on). Turning it off restores native focus navigation instantly, without reloading the webview. The toggle is also surfaced under Settings > Display in the Kilo settings panel. To keep the shortcut discoverable, the variant selector now shows a hover tooltip with the current meaning ("Reasoning effort") and a Shift+Tab keybind chip; the chip disappears when cycling is disabled.The setting follows the existing extension-settings pipeline: a
chatSettingsLoaded/requestChatSettingsmessage pair, a config watcher pushing live updates, and validation inhandleUpdateSetting. Includes translations for all 20 locales and unit tests for the cycle helper, the settings message, and validation.