跳转first和last的功能加好了,多谢
最初写这个插件就是因为highlight-symbol在大buffer的和某些语言(比如Haskell)的时候性能特别差, 它的font-lock机制太复杂了,如果font-lock关键词库大的话,比单纯的用overlay会慢上很多很多
建议iedit-mode
下把symbol-overlay-mode
禁用。
哇/这样太好用了/简直神器来的/生产率:top:
这个工具挺好的
要是能和
结合起来用就更好了
搜索完当前的文件 可以去搜别的文件的
哼, 我王境泽就是死也不会用这种东西!
能不能直接绑定一个函数,直接把当前高亮的symbol扔给color-rg?
那个很简单的
(color-rg-search-input (thing-at-point 'symbol))
在当前buffer中得到一个列表
再在那个列表中选择 跳转到其他文件
这个操作是很常见的
比如说我上面提到的color-rg
类似的还有ggtags的find-reference
geiser的symbol-location
应该弄个统一的方式
好像每一种语言的源码都会有一个test-suite
如果我能好好的利用它 应该能省不少的时间
求人不如求己 还是我自己来吧
可以选择一个区域再高亮吗?而不是当前symbol
我的意思是:你想把这个工具结合color-rg的话,是不是就是把 当前高亮的symbol 吐给color-rg?
而不是 当前symbol 。
就是把你写的这个 (thing-at-point 'symbol)
换成找到需要查找的高亮symbol就可以了。
不知道你说的结合是不是就是这个意思。
当前高亮可能不止一个欧
扔给color-rg也不难的
我想要的是查找下一个symbol不仅限于当前buffer
而是可以查其他buffer的
比如说 sql 里的SRLECT输出
(defvar symbol-overlay-color-rg-directory nil)
(defvar symbol-overlay-color-rg-literal nil)
(defvar symbol-overlay-color-rg-no-ignore nil)
(defvar symbol-overlay-color-rg-case-sensitive nil)
(defun symbol-overlay-color-rg-init (rg-buf symbol)
(with-current-buffer rg-buf
(goto-char 1)
(when (re-search-forward
(concat "\\_<" (regexp-quote symbol) "\\_>") )
(left-char 1)
(symbol-overlay-put)
(symbol-overlay-jump-next)
)))
(defun symbol-overlay-color-rg-buffer (symbol)
(let ((buf-name (color-rg-buffer symbol))
rg-buf)
(setq rg-buf (get-buffer buf-name))
(unless rg-buf
(setq color-rg-window-configuration-before-search
(current-window-configuration))
(add-hook 'color-rg-process-finish
'(lambda (rg-buf symbol)
(symbol-overlay-color-rg-init rg-buf symbol)))
(setq
rg-buf
(color-rg-search
symbol
(cond
((stringp symbol-overlay-color-rg-directory)
symbol-overlay-color-rg-directory)
((functionp symbol-overlay-color-rg-directory)
(funcall symbol-overlay-color-rg-directory))
(t default-directory))
symbol-overlay-color-rg-literal
symbol-overlay-color-rg-no-ignore
symbol-overlay-color-rg-case-sensitive
t
))
(set-window-configuration
color-rg-window-configuration-before-search)
)
rg-buf))
;;(symbol-overlay-color-rg-buffer "case-fold-search")
如果做成了 也就面目全非了
我觉得这根本就是两件事,为什么要混到一起来?
编辑器和shell是两回事 emacs里有个eshell
编辑器和数据库是两回事 emacs里有个sql
编辑器和浏览器是两回事 emacs里有个eww
这个类比就不合适了,纯粹抬杠。两者设计目标不同,强行混到一起只会把事情搞复杂。emacs和eshell/shell是包含关系,本身也是设计目标之一。如果两个包能行成良好互动可以考虑,否则就是得不偿失。个人浅见而已。
我说了三个类比
其他两个呢?
这不是一样的吗?理解力啊。现在说的是package 你却非要整个emacs来类比。如果symbol-overlay扩展设计目标就另当别论,但我不认为是个好主意