やりたいこと
画像のような提案がされたときに、Tabで補完してほしい。
逆にインデントの入力をしないでほしい。
現状だと編集提案エリアにテキストカーソル、またはマウスカーソルを持っていく必要があるようで大変。
でも、キー割り当ては変えたくない。
応急処置
とりあえずこの変更で期待していた動作になりました。
-
コマンドパレット(
ctrlshiftp)からPreferences: Open Keyboard Shortcuts (JSON)で
keybindings.jsonを開く

-
以下を追加(whenを変更)
{
"key": "tab",
"command": "editor.action.inlineSuggest.commit",
"when": "inlineEditIsVisible && tabShouldAcceptInlineEdit && !editorHoverFocused && !editorTabMovesFocus && !suggestWidgetVisible || inlineEditIsVisible && inlineSuggestionVisible && tabShouldAcceptInlineEdit && !editorHoverFocused && !editorTabMovesFocus && !suggestWidgetVisible || inlineSuggestionHasIndentationLessThanTabSize && inlineSuggestionVisible && !editor.hasSelection && !editorHoverFocused && !editorTabMovesFocus && !suggestWidgetVisible || inlineEditIsVisible && inlineSuggestionHasIndentationLessThanTabSize && inlineSuggestionVisible && !editor.hasSelection && !editorHoverFocused && !editorTabMovesFocus && !suggestWidgetVisible"
},
補足
when式を雑に変更してうまくいくやつを探しました。
デフォルトのwhen式をorでブロック分けするとこんな感じ↓でして
デフォルトのwhen式
inlineEditIsVisible && tabShouldAcceptInlineEdit && !editorHoverFocused && !editorTabMovesFocus && !suggestWidgetVisible ||
inlineEditIsVisible && inlineSuggestionVisible && tabShouldAcceptInlineEdit && !editorHoverFocused && !editorTabMovesFocus && !suggestWidgetVisible ||
inlineSuggestionHasIndentationLessThanTabSize && inlineSuggestionVisible && !editor.hasSelection && !editorHoverFocused && !editorTabMovesFocus && !suggestWidgetVisible ||
inlineEditIsVisible && inlineSuggestionHasIndentationLessThanTabSize && inlineSuggestionVisible && !editor.hasSelection && !editorHoverFocused && !editorTabMovesFocus && !suggestWidgetVisible
一番初めのブロックのtabShouldAcceptInlineEditを消すと、自分の想定通りの挙動になりました。
