We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
現在、unite-outline の見出し抽出は非同期ではないため、見出しの抽出中はユーザーは他の操作が行えない。 大抵の場合、見出しの抽出は瞬時に終わるため、これが問題となる局面は少ないが、
以下の場合に、抽出時の待ち時間が大きくなり、無視できなくなることがある。
このような場合でも、ユーザーをブロックすることなく見出しの抽出を行えるよう、 見出しの抽出を非同期に行えるようにすべきである。
一番有力な案。というか、これ以外にどういうやり方があるものかまったく思いつかないw
もし、ユーザーが vimproc をインストールしており、かつ、オプションで非同期な抽出を許可する設定をしていれば、vimproc を使って非同期に見出しを抽出する。この辺の設定は filetype_option としてファイルタイプごとに持たせられればいいかな。非同期な見出し抽出が必要になるファイルタイプって限られると思うので。
抽出結果はファイルを介して受け渡すのが無難か? とするならば、常時 FileCache から読むような感じになるか。もはやキャッシュではないなあ。
vimproc について理解を深める必要がある。ソースを読んで仕組みを把握しよう。neocomplcache がまさにこういった vimproc の使い方をしているとのことなので、参考にできるだろう。
結局 system() 経由でシェルを叩くんだから、シェルにバックグラウンド実行させるという方法もある。 vimproc は導入の敷居が高いので、なしでもいけるらそっちの方がいい。
The text was updated successfully, but these errors were encountered:
非同期は確かに魅力的ですが、neocomplcache+vimprocがあれだけ苦労したように、デバッグがかなり面倒です。 安定して動作させるにはかなりの苦労が必要になります。注意してください。
Sorry, something went wrong.
安定して動作させるにはかなりの苦労が必要
Shougoさんが言うからには相当厄介なんでしょうね…… 私はまだ neocomplcache が具体的にどのように vimproc を使っているのか、詳細を見ていないので その辺まだよくわかっていません。vimproc を使うかどうかもまだ検討段階です。
unite-outline で求められている非同期、ということだと、また違った選択肢があるかも知れません。 そういったことも含めて、しばらくは調査期間ということになりそうです。ご忠告感謝!
neocomplcacheの場合はかなりややこしいです。 なぜなら、裏でVimの別プロセスを起動していて、それがキャッシュをするという仕組みだからです。 そっちでエラーになると分からないので……。 厳密にはvimprocはいらないんですが、わざわざ引数をパースするのも面倒なのでvimprocが必要、ということにしています。直接通信できるんなら、まだマシだったんですけどね。
Merge pull request h1mesuke#13 from jenshimmelreich/master
1029e27
Simple Outlining for coffeescript and jade
No branches or pull requests
現在、unite-outline の見出し抽出は非同期ではないため、見出しの抽出中はユーザーは他の操作が行えない。
大抵の場合、見出しの抽出は瞬時に終わるため、これが問題となる局面は少ないが、
以下の場合に、抽出時の待ち時間が大きくなり、無視できなくなることがある。
200行程度のバッファからの見出し抽出に1秒以上を要するとの報告があった
このような場合でも、ユーザーをブロックすることなく見出しの抽出を行えるよう、
見出しの抽出を非同期に行えるようにすべきである。
案1: vimproc を使う
一番有力な案。というか、これ以外にどういうやり方があるものかまったく思いつかないwもし、ユーザーが vimproc をインストールしており、かつ、オプションで非同期な抽出を許可する設定をしていれば、vimproc を使って非同期に見出しを抽出する。この辺の設定は filetype_option としてファイルタイプごとに持たせられればいいかな。非同期な見出し抽出が必要になるファイルタイプって限られると思うので。
抽出結果はファイルを介して受け渡すのが無難か?
とするならば、常時 FileCache から読むような感じになるか。もはやキャッシュではないなあ。
vimproc について理解を深める必要がある。ソースを読んで仕組みを把握しよう。neocomplcache がまさにこういった vimproc の使い方をしているとのことなので、参考にできるだろう。
問題点
案2: シェルにバックグラウンド実行させる
結局 system() 経由でシェルを叩くんだから、シェルにバックグラウンド実行させるという方法もある。
vimproc は導入の敷居が高いので、なしでもいけるらそっちの方がいい。
問題点
The text was updated successfully, but these errors were encountered: