Shougo / neocomplcache.vim

Ultimate auto-completion system for Vim.
http://www.vim.org/scripts/script.php?script_id=2620
1.72k stars 135 forks source link

n文字以下の場合にコード補完を行わないようにするのはどうか #385

Closed osyo-manga closed 11 years ago

osyo-manga commented 11 years ago

少し思いついたことがあったので投げてみます。

現在、g:neocomplcache_auto_completion_start_length でコード補完が呼び出される文字数を設定することが出来るんですが、これと対になるような『n文字以上であればコード補完を呼び出さない』みたいなオプションがあれば便利なんじゃないかと思いました。

つまり

のではなくて

ようにすれば無駄な処理が減るのではないかと思ったのです。 この時に6文字以上の場合はコード補完が呼ばれないんですが、5文字以上打てばだいぶ絞り込みもされている(と思う)のでそこまで困らないんじゃないかと思います。 そこら辺の調整はユーザ側で出来るといいかな。

利点としては長いテキストを入力する際にコード補完が呼ばれないのでだいぶ軽く感じるかと思います。 (長いテキストを入力している場合に重いと感じることが多いので…。

と、いう風な事を考えてみたのですがどうでしょうか。

Shougo commented 11 years ago

ver.8でAPIの整理をしているので、そういう実装を行うことは可能です。

ただし、

この時に6文字以上の場合はコード補完が呼ばれないんですが、5文字以上打てばだいぶ絞り込みもされている(と思う)のでそこまで困らないんじゃないかと思います。

Vim scriptの関数名はとても長くなることがよくあります。call neocomplcache#enable()とか。補完するときに不便になりませんか? 最大文字長でスキップするなら、「前回の入力時に候補がないときに限る」等、工夫が必要ではないでしょうか。

osyo-manga commented 11 years ago

Vim scriptの関数名はとても長くなることがよくあります。call neocomplcache#enable()とか。補完するときに不便になりませんか? 最大文字長でスキップするなら、「前回の入力時に候補がないときに限る」等、工夫が必要ではないでしょうか。

んー vim_complete の場合は判定する文字の長さを長くする(もしくは無効にする)みたいな設定をすれば回避できると思います。 逆に neosnippet は比較的に短いワードになると思うのでそういう補完だと有効なんじゃないかと思っています。

Shougo commented 11 years ago

ふーむ。そうなんですかね。どちらにせよ、sourceのインタフェースを整理した後でないとこの機能の実装は無理ですね。

Shougo commented 11 years ago

実装するかどうかは、今は保留しておきます。実装するなら少なくともver.8.0が安定化した時になるでしょう。

osyo-manga commented 11 years ago

はい。 実装の有無、タイミングに関しては Shougo さんにお任せします:)

Shougo commented 11 years ago

はい。ver.8の安定化にまずは尽力したいのです。

Shougo commented 11 years ago

neocomplcacheに新機能を実装する予定がないので、とりあえず却下。neocompleteの方に要望してください。