我在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>更新菜单,但没有做到这一点.如何更新快速栏框架?
最佳答案 Speedbar默认使用imenu从缓冲区中获取标签,而imenu对于重新分析缓冲区非常懒惰.此外,一旦speedbar有一个标签列表,它就会继续使用该列表,直到您“关闭”该文件为止.下次打开文件以查看标签时,它将从imenu(或用于标签的任何工具)中重新获取标签.
由于imenu甚至比speedbar更懒惰,你可以使用speedbar shift-click重新打开文件,speedbar将强制imenu重新分析.