Idea征集:改进lsp-ui-doc

插件的质量和作者的功力有关, bug也是, 而不是我的 commit 多, 我的插件就好这种说法.

Anyway, 我就是给大家一种选择, 不喜欢的也无所谓啦, 每个人都有自己的选择.

不是不喜欢,而是不像以前那么爱尝试和折腾了,现在有新的东西,如果功能差别不大的就不想折腾了。以前用emacs感觉怎么用都没有bug,纳闷bug列表里那么多bug都怎么来的,最近几年就遇到了不少bug,大部分是插件的,还有很多是emacs自身的,在这上面花了挺多时间。

其实就是折腾好了, 不要天天去追 git , 除非有必须的新功能和自己在乎的 issue 修复. 我一般都是装好一个插件以后, 只要折腾好就轻易不更新 git , 追太新的 git 确实会遇到蛋疼的很多问题, 浪费更多时间.

1 个赞

确实如此,最近在golang里用yasnippet就遇到一个问题,0.13和0.12都会出现,0.13出现频率更高,出现时,yasnippet的hook函数报错,被emacs移出post-command-hook。company-mode也遇到了罕见的bug,他的作者也遇到过,但很难重现,也是输入过程中报错。

color-rg-unfilter

其实 color-rg 现在已经满足你所有的期望了 . :slight_smile:

在lsp还没有成熟的时候,这种简单的重构工具还是挺常用的,经常用,用的ag.el,调用的命令是rg。它的搜索结果buffer是基于compilation-mode,不太好定制,因为不是专门的major-mode,功能有一些局限,比如不能记住搜索的关键词,不能在搜索结果里的关键词之间跳转,不能二次过滤和手动删除不想要的结果项。

二次过滤和手动删除,这个功能比较需要,喜欢的体验是类似dired的效果,可以先标记,再删除。标记好之后方便检查一遍有没有标记错误,避免删错,如果能只显示标记项,暂时隐藏其他,这样更方便检查。还可以用搜索的方式来标记,也类似dired

大多数功能 color-rg.el 已经有了, 可以体验一下. :slight_smile:

里面的filter是直接删除匹配项吗?能做成标记后再统一删除吗? 另外,替换操作是输入替换文本后直接全部替换?还是类似query-replace一个个询问?或者类似iedit实时预览?

删除的地方是先标记, 最后 C-c C-c 再删除 filter 是过滤显示结果, 不是删除 替换操作就是 query-replace 操作, 当然也有那种全部一键替换的操作.

color-rg.el 的功能非常复杂, 我建议你尝试一下, 不喜欢就不用. 这样一个一个的问, 也没有直观的认识.

color-rg搜索之后的文件名路径有问题,出现反斜杠

您现在是即用color-mcoour,也用你自己写的color-rg? 两者你是怎么区分使用?

color-rg.el 写完后, 我只用color-rg.el

color-rg.el 已经满足了 color-moccur.el 的所有功能, 而且速度要快超级多.

感觉是 ripgrep 在 windows 版本的输出有问题, 我在 Mac/Linux 下, 每一个匹配文件的那一行都只显示 row:column 不会显示文件路径.

用了一下, 发现一些小问题,

  1. let: Symbol’s function definition is void: grep-expand-template (需要(require 'grep) ?)
  2. command-execute: Wrong type argument: commandp, color-rg-change-search-customized (好像是m键的功能)
  3. and: Wrong type argument: stringp, nil (x键的功能)

第二个和第三个问题重现方式或者backtrace发给我瞅瞅

前两个问题都修复了, 第三个问题有时间发给我一下重现方式和 backtrace 吧.

1 个赞

ag用的相对路径(基于当前project路径),现在color-rg数出来的是绝对路径(需要exec-path-from-shell库)

你没有看懂我说的问题, ripgrep 在 Mac/Linux 下是不会在左边显示路径的, 这也是 color-rg.el 期望的工作方式.

应该从 “为什么 ripgrep 在 windows 下会在左边显示路径, 什么参数可以让他不显示路径” 着手.

ripgrep的结果是正常的 。按照你说的去查看color-rg.el ,从color-rg-search-project-> color-rg-search-input(color-rg-read-input) 产生keyword ad directory–>color-up-search(core function开始调用rg)–> 接着color-rg-search-create以及color-rg-update-header-line,grep-expand-template就是执行重复字段删除,只保留一个,但是原因还没查出来。

(grep-expand-template
    (mapconcat 'identity (cons "rg" (delete-dups command-line)) " ")
    keyword
    ))

:joy: