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、Haskell ファイルの変数、インポート、インスタンス、およびデータ型を示すスピードバー フレームが表示されます。しかし、Haskell ファイルを編集すると、スピードバー フレームが更新されず、ファイルへの編集が反映されません。メニューを呼び出してみましSpeedbar > Updateたが、うまくいきませんでした。スピードバー フレームを更新するにはどうすればよいですか?

4

1 に答える 1

2

Speedbar はデフォルトで imenu を使用してバッファからタグをフェッチしますが、imenu はバッファの再解析を非常に怠っています。さらに、speedbar がタグのリストを取得すると、ファイルを「閉じる」までそのリストを使用し続けます。次にタグを確認するためにファイルを開くと、imenu (またはタグに使用しているツール) からタグが再取得されます。

imenu はスピードバーよりも遅延が大きいため、スピードバーの Shift キーを押しながらクリックしてファイルを再度開くことができます。スピードバーは imenu を強制的に再解析します。

于 2012-05-01T23:08:43.080 に答える