【问题标题】:Emacs, quick-jump and go-mode: point not updated during navigationEmacs、快速跳转和 go-mode:导航期间未更新点
【发布时间】:2015-04-09 10:43:05
【问题描述】:

我想将 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 完全有效......

【问题讨论】:

  • 您可能需要考虑迁移到Emacs.SE。
  • 啊,我什至不知道它的存在。是不是把这个删了再发一个新的? - 虽然我可能是盲人,但我看不到迁移这个问题的方法......

标签: emacs elisp


【解决方案1】:

回答我自己的问题,基本上看我做的公关和讨论:https://github.com/dominikh/go-mode.el/pull/85

这个问题是 go-mode 特有的,现在已经解决了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-30
    • 1970-01-01
    • 2014-11-07
    • 1970-01-01
    • 2023-03-26
    相关资源
    最近更新 更多