Robe 如何不自动触发显示光标所在位置的函数信息?


#1
I18n.config.enforce_available_locales # 把光标放在函数上

minibuffer 就会显示如图所见的信息 %E6%88%AA%E5%9B%BE_2018-09-13_19-44-02

有时候会有非常卡,怎么设置可以用手动触发不让它自动触发?

@lukertty


#2

disable/enable eldoc?


#3

是的,就是Eldoc,这个东西手动触发完全没必要啊。

全局把 eldoc 禁用掉就行了,加入到 ruby-mode-hook / enh-ruby-mode-hook 里就行了。

不过我用着从来没觉得卡过。。。


事实上我这里写 ruby 的时候,eldoc-documentation-function 的值是还有一个 yard-eldoc-message,如果只想去掉 robe-eldoc 的话,可以尝试反着写下面这句

(add-function :after-until (local 'eldoc-documentation-function)
                          #'robe-eldoc)

具体我没试过。也许你应该profiler一下卡的原因,我觉得是robe的可能性不大


#4

感谢,回去试试。


别的库里的函数显示的倒是很流畅。碰到自己项目里的函数就卡卡卡卡。。。。 是因为什么呢?


#5

没遇见过这个问题 profiler一下看看什么在卡


#6

看完没发现什么, 可能是我项目比较大, 执行 eldoc 时间比较长.现在只能先关掉了.
关掉之后真的丝般顺滑…╮(╯▽╰)╭


话说我用的 use-package 是直接 (eldoc-mode 0) 了. 按你说的我没整明白怎么搞…

(use-package robe
  :ensure t
  :hook (enh-ruby-mode . robe-mode)
  :config
  (eldoc-mode 0)
  (push 'company-robe company-backends))

这样和你说的那样有什么区别没?


#7

有区别 这样全局的eldoc都没有了 你应该只加到enh ruby 的hook里