Yggdroot / LeaderF

An efficient fuzzy finder that helps to locate files, buffers, mrus, gtags, etc. on the fly for both vim and neovim.
Apache License 2.0
2.14k stars 180 forks source link

新增g:Lf_Rg_Backend用于指定bin档作为搜索后端实现. #1055

Closed NasdaqGodzilla closed 7 months ago

NasdaqGodzilla commented 7 months ago

what: 新增g:Lf_Rg_Backend指令允许自定义搜索bin档,并且LeaderF直接传递参数给该bin档,不再处理参数 why: 使用g:Lf_Rg可以配置rg命令,但是在搜索过程中默认地给g:Lf_Rg指定的bin档设置了参数,对于低版本的rg或不兼容rg参数的搜索指令而言不能正常工作 how: 当配置了g:Lf_Rg_Backend时调用其指定的bin档,并直接传递参数,不在内部处理参数

Yggdroot commented 7 months ago

最好写一下帮助文档。

NasdaqGodzilla commented 7 months ago

最好写一下帮助文档。

补充了doc/leaderf.txt的说明

Yggdroot commented 6 months ago

Leaderf rg有个bug。举例如下: 文件里有很多'if id'这样的字符串。 在leaderf rg --live输入,if\sid,可以搜到 但输入if id就搜不到。

把rgExpl.py里面的下面几行注释掉,好像就没有重复的-e了,并且if id和if\sid都能搜到了。

        #if lfEval("get(g:, 'Lf_Rg_Backend', '')") == '':
        #    pattern += r'-e %s ' % i
        #else:
        #    pattern += r'%s ' % i

这个pr引入了bug。

仔细看了下代码,感觉这个PR不是很有必要。 首先,Lf_Rg_Backend 要求脚本必须接受两个参数pattern 和path。使用起来也不是很方便。 并且LeaderF直接传递参数给该bin档,不再处理参数 这个功能已经有了,可以配置g:Lf_RgConfig,把想要传的参数都先配置好,就不用传参了。 也可以设置g:Lf_Rg, 让let g:Lf_Rg = 'rg -xxx -xxx -xxx', 也可以达到同样的效果。 对于低版本的rg或不兼容rg参数的搜索指令而言不能正常工作 最好升级一下rg。