macos – Emacs Haskell模式 – Speedbar不更新

我在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重新分析.

点赞