5

私は emacs のオートコンプリート モードに非常に興奮しています。しかし、私のコードベースは大きく、入力すると補完を提案しようとすると、可能なすべての単語を検索してハングすることがあります。とても迷惑です。

並列プロセスでバックグラウンドで検索を実行する方法はありますか?そのため、emacs は引き続きユーザー アクションに応答します。そして、クエリが終了したときにポイントがその場所に保持されている場合にのみ、オートコンプリートを提案しますか?

同様に、キーボード入力は主要なプロセスであり、遅延することはありません。オートコンプリートはマシン リソースの残りとして機能します。

4

1 に答える 1

3

emacs-jediは、Python のオートコンプリートに対して正確にそれを行います。initプロパティを使用してバックグラウンド プロセスにリクエストを送信し、結果をどこかに保存できます。プロパティではcandidate、保存された結果を処理してオートコンプリートに渡すことができます。ac-source の定義は次のとおりです。詳しくはソースを見てください。

(ac-define-source jedi-direct
  '((candidates . jedi:ac-direct-matches)
    (prefix . jedi:ac-direct-prefix)
    (init . jedi:complete-request)
    (requires . -1)))

emacs-ipython-notebookも同様の手法を使用していますが、emacs-jedi の方が読みやすいと思います。

于 2013-02-10T05:03:25.443 に答える