内部状態とバッファの状態の相違を検出するコードの考慮漏れについて
tyru opened this issue · 10 comments
#171 でのフェイルセーフ実装にマッピングで待ち状態になった後に2キー以上同時に処理された場合の考慮が抜けていた。
(2キー目以降ではまだ1キー目の結果がバッファに挿入されてないみたい)
了解です。とはいえ、もうtyruさんのところで原因がわかったらしいのでこちらでやることはなさそうです。
補完についての問題は再現できましたでしょうか。そちらもここに書いたほうが良いでしょうか。
そちらはまだ再現できていませんので、
- 前提条件(neocompleteを有効化した場合等)
- 再現手順
- それによってどのようなエラーが発生するのか(おそらくもう片方のエラーと同じでしょうか)
- 求める結果は何か
等を書いておいてもらえると助かります。
2013/12/09 8:33 "Shougo" notifications@github.com:
了解です。とはいえ、もうtyruさんのところで原因がわかったらしいのでこちらでやることはなさそうです。
補完についての問題は再現できたのでしょうか。そちらもここに書いたほうが良いでしょうか。—
Reply to this email directly or view it on GitHubhttps://github.com//issues/172#issuecomment-30096528
.
- 前提条件(neocompleteを有効化した場合等)
neocompleteとeskk.vimを同時に有効化する。
もしかすると、Vimのバージョンに依存するかも知れません。私のVimは7.4.103です。
独自パッチを当ててなくても再現するので、それは関係ないと思われます。 - 再現手順 - それによってどのようなエラーが発生するのか(おそらくもう片方のエラーと同じでしょうか)
neocompleteによりeskk.vimの補完候補が出てきたら、<C-n>
で候補を選択し、<CR>
を押す。発生するエラーはもう片方のエラーと同じです。 - 求める結果は何か
エラーなく、選択した補完結果が挿入される
補完についての問題は最新版で直っているようです。
これ、直る目処など立っているんでしょうか?
すいません、まだです。
thincaさんのLingrでの書き込みも偶然見たのですが、
自分の方でも高速にタイプすると再現する事が分かっただけですね。
2人とも再現方法が同じなので間違いないようです。
ただ原因が分かっていません。
2014/01/14 18:28 "thinca" notifications@github.com:
これ、直る目処など立っているんでしょうか?
—
Reply to this email directly or view it on GitHubhttps://github.com//issues/172#issuecomment-32249742
.
了解です。時間が取れたら調べてみます。
助かります。
よろしくお願いします。
On Tue, Jan 14, 2014 at 11:35 PM, thinca notifications@github.com wrote:
了解です。時間が取れたら調べてみます。
—
Reply to this email directly or view it on GitHubhttps://github.com//issues/172#issuecomment-32268944
.
メモより。
[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されてるのでは?