eskk.vim icon indicating copy to clipboard operation
eskk.vim copied to clipboard

内部状態とバッファの状態の相違を検出するコードの考慮漏れについて

Open tyru opened this issue 10 years ago • 10 comments

#171 でのフェイルセーフ実装にマッピングで待ち状態になった後に2キー以上同時に処理された場合の考慮が抜けていた。

(2キー目以降ではまだ1キー目の結果がバッファに挿入されてないみたい)

tyru avatar Dec 08 '13 15:12 tyru

@Shougo #171 に書いてもらってましたが、これからはこっちに書いてもらえるようお願いします。

tyru avatar Dec 08 '13 15:12 tyru

了解です。とはいえ、もうtyruさんのところで原因がわかったらしいのでこちらでやることはなさそうです。 補完についての問題は再現できましたでしょうか。そちらもここに書いたほうが良いでしょうか。

Shougo avatar Dec 08 '13 23:12 Shougo

そちらはまだ再現できていませんので、

  • 前提条件(neocompleteを有効化した場合等)
  • 再現手順
  • それによってどのようなエラーが発生するのか(おそらくもう片方のエラーと同じでしょうか)
  • 求める結果は何か

等を書いておいてもらえると助かります。 2013/12/09 8:33 "Shougo" [email protected]:

了解です。とはいえ、もうtyruさんのところで原因がわかったらしいのでこちらでやることはなさそうです。 補完についての問題は再現できたのでしょうか。そちらもここに書いたほうが良いでしょうか。

— Reply to this email directly or view it on GitHubhttps://github.com/tyru/eskk.vim/issues/172#issuecomment-30096528 .

tyru avatar Dec 08 '13 23:12 tyru

  • 前提条件(neocompleteを有効化した場合等) neocompleteとeskk.vimを同時に有効化する。 もしかすると、Vimのバージョンに依存するかも知れません。私のVimは7.4.103です。 独自パッチを当ててなくても再現するので、それは関係ないと思われます。
  • 再現手順 - それによってどのようなエラーが発生するのか(おそらくもう片方のエラーと同じでしょうか) neocompleteによりeskk.vimの補完候補が出てきたら、<C-n>で候補を選択し、<CR>を押す。発生するエラーはもう片方のエラーと同じです。
  • 求める結果は何か エラーなく、選択した補完結果が挿入される

Shougo avatar Dec 09 '13 10:12 Shougo

補完についての問題は最新版で直っているようです。

Shougo avatar Dec 24 '13 13:12 Shougo

これ、直る目処など立っているんでしょうか?

thinca avatar Jan 14 '14 09:01 thinca

すいません、まだです。 thincaさんのLingrでの書き込みも偶然見たのですが、 自分の方でも高速にタイプすると再現する事が分かっただけですね。 2人とも再現方法が同じなので間違いないようです。 ただ原因が分かっていません。 2014/01/14 18:28 "thinca" [email protected]:

これ、直る目処など立っているんでしょうか?

— Reply to this email directly or view it on GitHubhttps://github.com/tyru/eskk.vim/issues/172#issuecomment-32249742 .

tyru avatar Jan 14 '14 14:01 tyru

了解です。時間が取れたら調べてみます。

thinca avatar Jan 14 '14 14:01 thinca

助かります。 よろしくお願いします。

On Tue, Jan 14, 2014 at 11:35 PM, thinca [email protected] wrote:

了解です。時間が取れたら調べてみます。

— Reply to this email directly or view it on GitHubhttps://github.com/tyru/eskk.vim/issues/172#issuecomment-32268944 .

tyru avatar Jan 14 '14 15:01 tyru

メモより。

[GVIM] [02/06/14 07:18:33] [DEBUG] eskk#filter(): char = ';', nested count = 1
[GVIM] [02/06/14 07:18:33] [DEBUG] eskk#filter(): char = 'g', nested count = 1
[GVIM] [02/06/14 07:18:33] [DEBUG] eskk#filter(): char = 'e', nested count = 1
[GVIM] [02/06/14 07:18:34] [DEBUG] eskk#filter(): char = 't', nested count = 1
[GVIM] [02/06/14 07:18:34] [DEBUG] eskk#filter(): char = 'u', nested count = 1
[GVIM] [02/06/14 07:18:34] [DEBUG] eskk#filter(): char = 'm', nested count = 1
[GVIM] [02/06/14 07:18:34] [DEBUG] eskk#filter(): char = 'a', nested count = 1
[GVIM] [02/06/14 07:18:34] [DEBUG] eskk#filter(): char = 't', nested count = 1
[GVIM] [02/06/14 07:18:34] [DEBUG] eskk#filter(): char = 'u', nested count = 1
[GVIM] [02/06/14 07:18:34] [DEBUG] eskk#filter(): char = ' ', nested count = 1
[GVIM] [02/06/14 07:18:35] [DEBUG] eskk#filter(): char = 'n', nested count = 1
[GVIM] [02/06/14 07:18:35] [DEBUG] eskk#filter(): char = 'i', nested count = 1
[GVIM] [02/06/14 07:18:35] [DEBUG] eskk#filter(): char = ';', nested count = 1
[GVIM] [02/06/14 07:18:35] [DEBUG] eskk#filter(): char = 'h', nested count = 1
[GVIM] [02/06/14 07:18:35] [DEBUG] eskk#filter(): char = 'e', nested count = 1
[GVIM] [02/06/14 07:18:35] [DEBUG] eskk#filter(): char = 'n', nested count = 1
[GVIM] [02/06/14 07:18:35] [DEBUG] eskk#filter(): char = 'k', nested count = 1
[GVIM] [02/06/14 07:18:36] [DEBUG] eskk#filter(): char = 'o', nested count = 1
[GVIM] [02/06/14 07:18:36] [WARN] invalid rewrite of buffer was detected. reset preedit status...: ['$へんk', '<ab>$へん']
[GVIM] [02/06/14 07:18:36] [INFO] current phase: 1
[GVIM] [02/06/14 07:18:36] [INFO] phase: 0
[GVIM] [02/06/14 07:18:36] [INFO] rom_str: ''
[GVIM] [02/06/14 07:18:36] [INFO] matched pairs: []
[GVIM] [02/06/14 07:18:36] [INFO] phase: 1
[GVIM] [02/06/14 07:18:36] [INFO] rom_str: 'k'
[GVIM] [02/06/14 07:18:36] [INFO] matched pairs: [['he', 'へ', {'converted': 1}], ['n', 'ん', {'converted': 1}]]
[GVIM] [02/06/14 07:18:36] [INFO] phase: 2
[GVIM] [02/06/14 07:18:36] [INFO] rom_str: ''
[GVIM] [02/06/14 07:18:36] [INFO] matched pairs: []
[GVIM] [02/06/14 07:18:36] [INFO] phase: 3
[GVIM] [02/06/14 07:18:36] [INFO] rom_str: ''
[GVIM] [02/06/14 07:18:36] [INFO] matched pairs: []
[GVIM] [02/06/14 07:18:37] [DEBUG] eskk#filter(): char = 'k', nested count = 1
[GVIM] [02/06/14 07:18:37] [DEBUG] eskk#filter(): char = 'u', nested count = 1
[GVIM] [02/06/14 07:18:37] [DEBUG] eskk#filter(): char = ' ', nested count = 1
[GVIM] [02/06/14 07:18:37] [DEBUG] eskk#filter(): char = '^H', nested count = 1
[GVIM] [02/06/14 07:18:37] [DEBUG] eskk#filter(): char = '^H', nested count = 1
[GVIM] [02/06/14 07:18:38] [DEBUG] eskk#filter(): char = '^H', nested count = 1
[GVIM] [02/06/14 07:18:38] [DEBUG] eskk#filter(): char = '^H', nested count = 1
[GVIM] [02/06/14 07:18:38] [DEBUG] eskk#filter(): char = '^H', nested count = 1
[GVIM] [02/06/14 07:18:38] [DEBUG] eskk#filter(): char = '^H', nested count = 1

→なぜ「henk」のkがeskk#filter()によって処理される(eskk#filter(): char = 'k')よりも前にrom_strにkが入っているのか? →自動補完が働いてcomplete.vimからrom_strがsetされてるのでは?

tyru avatar Mar 22 '14 14:03 tyru