4

我在 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)))

当我调用 Speedbar 时,M-x speedbar我确实得到了一个 speedbar 框架,其中显示了 Haskell 文件的变量、导入、实例和数据类型。但是当我编辑 Haskell 文件时,速度条框架不会刷新以反映对文件的编辑。我尝试调用Speedbar > Update菜单,但这并没有成功。如何更新速度条框架?

4

1 回答 1

2

Speedbar 默认使用 imenu 从缓冲区中获取标签,而 imenu 非常懒惰地重新解析缓冲区。此外,一旦 speedbar 有标签列表,它就会继续使用该列表,直到您“关闭”文件。下次您打开文件以查看标签时,它将从 imenu(或您用于标签的任何工具)重新获取标签。

由于 imenu 比 speedbar 更懒惰,你可以使用 speedbar shift-click 重新打开文件,speedbar 会强制 imenu 重新解析。

于 2012-05-01T23:08:43.080 回答