簡體   English   中英

Emacs,快速跳轉和運行模式:導航過程中點未更新

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM