Align eskk#is_enabled() with keep-state mappings to fix command-line toggle desync#270
Align eskk#is_enabled() with keep-state mappings to fix command-line toggle desync#270Copilot wants to merge 8 commits into
eskk#is_enabled() with keep-state mappings to fix command-line toggle desync#270Conversation
Agent-Logs-Url: https://github.com/vim-skk/eskk.vim/sessions/7f17574e-5a80-4f2b-8073-0997f4bbdd87 Co-authored-by: Shougo <41495+Shougo@users.noreply.github.com>
eskk#is_enabled() with keep-state mappings to fix command-line toggle desync
|
@copilot 試しましたが直っていません |
Agent-Logs-Url: https://github.com/vim-skk/eskk.vim/sessions/40c0e4d6-7c32-4184-a23e-ac64d410280c Co-authored-by: Shougo <41495+Shougo@users.noreply.github.com>
Agent-Logs-Url: https://github.com/vim-skk/eskk.vim/sessions/40c0e4d6-7c32-4184-a23e-ac64d410280c Co-authored-by: Shougo <41495+Shougo@users.noreply.github.com>
41af440 で追加修正しました。 |
|
@copilot Neovimで試していますが直ってません Vimでも駄目。 |
Agent-Logs-Url: https://github.com/vim-skk/eskk.vim/sessions/7a0de3f6-f857-487d-b56b-c04a8104144f Co-authored-by: Shougo <41495+Shougo@users.noreply.github.com>
Agent-Logs-Url: https://github.com/vim-skk/eskk.vim/sessions/7a0de3f6-f857-487d-b56b-c04a8104144f Co-authored-by: Shougo <41495+Shougo@users.noreply.github.com>
Agent-Logs-Url: https://github.com/vim-skk/eskk.vim/sessions/7a0de3f6-f857-487d-b56b-c04a8104144f Co-authored-by: Shougo <41495+Shougo@users.noreply.github.com>
Agent-Logs-Url: https://github.com/vim-skk/eskk.vim/sessions/7a0de3f6-f857-487d-b56b-c04a8104144f Co-authored-by: Shougo <41495+Shougo@users.noreply.github.com>
995b831 で修正しました。command-line mode では |
Original prompt
Fix issue #267 in
vim-skk/eskk.vim: command-line mode cannot be toggled on/off correctly wheng:eskk#keep_stateis enabled.Issue: #267
Problem summary:
With
let g:eskk#keep_state=1enabled, SKK state does not transition correctly between insert mode, normal mode, and command-line mode.Reported reproduction cases:
let g:eskk#keep_state=1<C-j><ESC>to return to normal mode<C-j>againAdditional reproduction case:
<plug>(eskk:enable)<ESC>to return to normal mode<plug>(eskk:disable)<plug>(eskk:enable)does not actually enable SKK, and the color also does not recover correctlyExpected behavior:
g:eskk#keep_state=1, enabling/disabling SKK should behave consistently across insert mode, normal mode, and command-line mode.<plug>(eskk:enable)and<plug>(eskk:disable)should not leave command-line mode in a visually inconsistent or logically broken state.Implementation guidance:
g:eskk#keep_statepreserves state across mode transitions.<C-j>) and plug mappings (<plug>(eskk:enable)/<plug>(eskk:disable)).g:eskk#keep_stateis disabled.Acceptance criteria:
g:eskk#keep_state=1, command-line mode can correctly enable and disable SKK after returning from insert mode without text entry.<plug>(eskk:enable)and<plug>(eskk:disable)behave correctly in command-line mode.g:eskk#keep_stateis disabled.The following is the prior conversation context from the user's chat exploration (may be truncated):
User: @vim-skk/eskk.vim/pull/266 このプルリクエストをチェックしてください
Assistant: 結論: 大きな設計方針は良く、機能追加として妥当ですが、現時点では 1 点気になる挙動があるので「その確認が取れるまでは approve は保留」が安全です。
特に
back-to-henkanの復帰処理が、候補選択前の入力状態を正確に再現できるかを確認したいです。PR サマリー
mergeable_state = cleanこの PR の意図は明確です。
候補一覧表示 (
phase:henkan-select) 中のキャンセル操作を固定の<C-g>にせず、用途別に切り替えられるようにしています。追加された選択肢は次の 3 つです。
phase:henkan-select:escape従来動作
phase:henkan-select:back-to-henkan変換前の
▽ひらがな相当へ戻すphase:henkan-select:clear入力をクリアする
コア変更
この PR の中心は 2 つです。
マッピング定義の拡張
autoload/eskk.vimでphase:henkan-select向けにclearback-to-henkanを追加
候補選択中の入力処理分岐の追加
autoload/eskk/dictionary.vimの候補選択プロンプトで、をそれぞれ別動作に分岐
加えて、
doc/eskk.jaxに FAQ 形式で設定例が追加されていて、ユーザー向けの導線もあります。小さな機能追加としてまとまりは良いです。
変更点レビュー
1. マップ定義の追加は自然
autoload/eskk.vimでは、既存のphase:henkan-select:*の流れに沿って新しいキー種別を足しており、拡張の仕方として自然です。また各モードの
MODE_LOCAL_KEYSにも追加されているため、設定として露出させる経路は揃っています。この部分は問題なさそうです。
2. 候補一覧中の escape / clear 分岐は分かりやすい
autoload/eskk/dictionary.vim側では、従来の固定<C-g>判定をやめて、ユーザー設定された lhs を見ています。