2012-02-24 94 views
17

這是相當不錯的ghci中通過劣等哈斯克爾模式Emacs的集成:這增加了一個奇妙的可能性,快速導航到編譯錯誤的地點,交互檢查類型,定義等。然而,我在此設置中缺少的主要功能是無法使用ghci tab-completion,這對完成導入模塊,語言擴展和ghci命令提供的功能非常有幫助。ghci的標籤完成在Haskell模式

我假定這個功能可以通過使未加工的「TAB」字符到ghci的過程中,讀出它的輸出背部和粘貼結果到Emacs的緩衝液而平凡實現。請注意,我沒有在Emacs中使用「comint-mode」,所以我可能完全錯誤。

最後,我們來到我的問題:爲什麼haskell模式中缺少此功能?是否有任何我不知道的明顯問題,難以實施,還是僅僅出於某些歷史原因? (比如「沒人會寫它」)。你有任何問題的解決方法? (除了在Emacs之外運行ghci)

回答

6

檢出ghc-mode構建在haskell模式之上,並添加了自動完成和其他一些功能。

還有一個haskell-emacs模式,這是從Haskell的模式不同。它也具有自動完成功能。雖然這是古怪的,並不總是當我嘗試它的工作。

+1

我剛剛安裝了ghc-mod,我喜歡它的autocompletion和hlint集成(儘管我必須根據需要調整它)。但是,它的自動完成功能在ghci緩衝區中無法正常工作:據我所知,「ghc-complete」函數會分析當前緩衝區(以查找導入),而ghci緩衝區不是它所期望的。所以它只建議一些關鍵字,並忽略我在ghci緩衝區中輸入的任何「:m + Data.List」。 – 2012-02-25 12:18:19

+0

我也試圖從克里斯完成「哈斯克爾-emacs的」,但它並不完全記錄了這些天(因爲它仍處於測試階段),所以我決定回來有點晚。 – 2012-02-25 12:19:20