我在OS X上使用Emacs 23.4(来自http://emacsformacosx.com/)。我的~/.emacs
文件包含:
(load "/path/to/haskell-site-file")
(add-hook 'haskell-mode-hook 'turn-on-haskell-doc-mode)
(add-hook 'haskell-mode-hook 'turn-on-haskell-indent)
(require 'speedbar)
(speedbar-add-supported-extension ".hs")
(add-to-list 'load-path "/usr/local/share/ghc-mod-1.10.15")
(setq exec-path (append exec-path '("/usr/local/bin")))
(autoload 'ghc-init "ghc" nil t)
(add-hook 'haskell-mode-hook (lambda () (ghc-init) (flymake-mode)))
当我使用M-x speedbar
调用Speedbar时,我会得到一个快速栏框,其中显示了Haskell文件的变量,导入,实例和数据类型。但是当我编辑Haskell文件时,速度条框架不会刷新以反映对文件的编辑。我尝试调用Speedbar > Update
菜单,但这并没有成功。如何更新快速栏框架?
答案 0 :(得分:2)
Speedbar默认使用imenu从缓冲区中获取标签,而imenu对于重新分析缓冲区非常懒惰。此外,一旦speedbar有一个标签列表,它就会继续使用该列表,直到您“关闭”该文件为止。下次打开文件时要查看标签,它会从imenu(或者您用于标签的任何工具)中重新获取标签。
由于imenu甚至比speedbar更懒,你可以使用speedbar shift-click重新打开一个文件,speedbar将强制imenu重新分析。