可以选择一个区域再高亮吗?而不是当前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扩展设计目标就另当别论,但我不认为是个好主意
一个是在当前文件中搜索符号
一个是在目录中搜索符号
文件和目录不是一回事吗?
我Baidu了一下
看看你的理解力吧
做出了第一版
凑活能用
有时间发个图片
好吧,角度不同。你要这么理解也没办法。 symbol-overlay主要是当前buffer内多个关键字的高亮,color-rg主要是目录或者项目内搜索。没猜错的话你是想搜索高亮的多个关键字,这种场景并不多见,而且真要搜索多个关键字没必要先去高亮。搜索光标下的符号是最常见的。当然非要这么做也是可以的,我是想说,高亮和搜索其实是两件事,不一定非要混到一起用。如果把逻辑弄复杂了不如回归到本质。当然你也可以按照自己的需求实现,毕竟Emacs是个自由的世界。只是之前的比喻实在不恰当。
你把他看成高亮
我把他看成跳转
完善了第一版
找到了一个bug
发现了两个新需求
多谢亲,有劳了
目录搜索确实不是symbol-overlay的设计目标。而且它会把项目变得复杂,边际成本过高。
但是在emacs世界中还有什么是不可能的呢,你完全可以按照自己喜好融合不同插件,且欢迎提merge request上来。
谢谢老铁一直以来的支持,说实话我自己都没想到现在会有这么多人用
好吧 可能是因为我不用lsp的缘故
lsp本身就有跳转到引用的功能 也就不用搜索目录了
我可能需要的是symbol-search 或者是叫 discover 更好
dumb-jumb
正解~~~~