[英]Emacs, quick-jump and go-mode: point not updated during navigation
我想將go-mode godef-jump
與quick-jump結合使用,以便在跳轉之前和之后都放一個標記。
(defun my-go-quick-jump-push-def-hook (pnt)
(interactive "d")
(message "%s %d" (buffer-name) pnt)
(quick-jump-push-marker)
(godef-jump pnt)
(quick-jump-push-marker)
(message "%s %d" (buffer-name) (point))
)
(defun my-go-mode-hook ()
(local-set-key (kbd "M-.") 'my-go-quick-jump-push-def-hook)
)
但是, message
調用指示對godef-jump
的調用完成后,緩沖區尚未更新,並且(point)
也沒有提供與pnt
不同的值。 但是godef-jump
確實完成了,並且確實在必要時更改了緩沖區。 因此,我無法弄清楚評估順序的問題-就像實際的導航正在緩慢進行一樣。 這是預期的還是go-mode所做的事情有些奇怪?
go-mode位於https://github.com/dominikh/go-mode.el/blob/master/go-mode.el ,快速跳轉位於http://www.emacswiki.org/emacs/quick- jump.el
非常感謝。
更新:這個問題似乎僅在跳轉到另一個緩沖區時才會發生。 我對with-current-buffer
不太了解(用於godef--find-file-line-column
),以了解出了什么問題-我閱讀的文檔是with-current-buffer
不應導致該緩沖區一旦身體完成就被激活,所以我茫然地理解為什么godef-jump
起作用...
基本上回答我自己的問題,請參閱我進行的PR和討論: https : //github.com/dominikh/go-mode.el/pull/85
該問題特定於運行模式,現在已在此處解決。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.