2013-01-10 26 views
1

我正在爲一種語言編寫主要模式,並且我想在'。'之後提供補全,或者按下按鍵。通過使用process-send-stringset-process-filter向背景處理髮送請求來確定完成。返回的完成列表取決於後臺進程解析文件的當前狀態並被指示在該特定點完成。Emacs「on-request」完成界面,用於編寫主要模式

我曾嘗試使用流行的autocomplete軟件包,但實際上並未考慮到此用例。這部分是因爲它提供了自動暗示(即沒有按鍵),這是我不需要的一個很好的功能。您提供它調用的函數需要同步調用,並且emacs過程控制是異步的。我沿着https://github.com/Golevka/emacs-clang-complete-async的方向編碼了一些東西,但它一點都不健壯,並且一直非常花時間才能使它工作。

我喜歡autocomplete中使用的菜單,並想知道什麼最適合我的用例,最好是同時看起來不錯。

回答

2

您可以使用accept-process-output同步等待後臺進程的輸出。您可能會喜歡gud-gdb-completionsgud-gdb-run-command-fetch-lines在最近的版本gud.el

+0

謝謝。我通過'gud.el'進行了拖網,並發現使用'accept-process-output'。它使用'completion-at-point',我知道這是標準的emacs這樣做的方式,但我覺得它有點限制(不容易看到所有完成,不能在每次完成時顯示文檔)。也許我可以使用'accept-process-output'和自動完成來同步執行。 – rneatherway

+0

是的,gud代碼是'完成點',但其原則應該是相同的自動完成支持。 – Stefan

相關問題