[英]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.