Snails超级快的模糊搜索框架


#144

windows 下面用 everything 搜索挺方便的,仿照 fd 之类的写了个 snails-backend-everything 的客户端,结果输入 “emacs-” 显示空白。

命令行 es emacs- 能返回好多东西,(executable-find es) 也没问题。 帮看看哪里有问题?

;;; Require
(require 'snails-core)

;;;Code:

(snails-create-async-backend
 :name
 "EVERYTHING"

 :build-command
 (lambda (input)
   (when (and (executable-find "es")
              (> (length input) 5))
     (list "es" input)))
 
 :candidate-filter
 (lambda (candidate-list)
   (let (candidates)
     (dolist (candidate candidate-list)
       (snails-add-candiate 'candidates (snails-wrap-file-icon candidate) candidate))
     candidates))

 :candiate-do
 (lambda (candidate)
   (find-file candidate)))

(provide 'snails-backend-everything)


#145

你把你命令行的命令和显示结果的截图发给我


#146

snails.el里面要加一下你的后端,应该就可以了。


#147

@cireu @manateelazycat 建议对比下 prescient。这几天试用下来发现体感比 flx 好。


#148

最新版用了渲染队列在固定时间渲染,而不是后端一有数据就渲染,大幅提升多个搜索后端时的渲染性能。

比之前的版本更快了。


#149

确实比之前快了


#150

今天基于 ripgrep 构建了一个搜索当前buffer的后端:https://github.com/manateelazycat/snails/commit/21d65ab6dd147f4d1b7bbd4622027c0818afdbe9

不管文件是否超级大,都可以秒搜当前buffer的内容。

这个要比 isearch 的性能好很多, 特别是搜索 org 这种大文件的时候。


#151

snails目前还不支持minibuffer的completing-read。一般eval的时候进行补全用什么呢。


#152

snails 就是不想给 minibuffer 给干扰才单独设计的 Input buffer 补全这种可以后面慢慢的加


#153

M-x功能有啥后端吗


#154

最新版让首次启动后端延迟50毫秒加载,把启动时间从 1~2秒 减少到瞬间启动。


#155

双屏的问题,刚才社区一位大佬发了一个补丁修复了双拼的问题,你试一下最新版?


#156

everything 这个还是没办法出来。


#157

你在你的插件各处加一下 message, 看看各个条件是什么?

我感觉你的插件在什么地方卡住了, message 可以帮助你定位问题,我没有 windows


#158

双屏显示正常了,谢谢!


#159

找到问题了,默认文件头开了 lexical-binding, 去掉就好了。。。。


#160

可以提交一个pr,哈哈哈哈


#161

与楼上一样,emacs-mac ,无内容:

Screen Shot 2019-07-30 at 6.23.59 PM.png


#162

use-package 好像不行,需要指定 load-path 然后 require。


#163

THX, 确实如此,但是为什么呢?