lsp-bridge -- 速度最快的语法补全插件

Tabnine, 你可以在这一行 lsp-bridge/tabnine.py at 97dfa6076b7cb11c091d52eb110e9acceccd4c34 · manateelazycat/lsp-bridge · GitHub 下面加一句 print(self.path)

保持和 98 行一样的缩进, 然后再重启 Emacs 看看 *lsp-bridge* 打印的 TabNine 路径是否存在?

不存在

os.path.expanduser("~/.TabNine/")

我这里的user目录扩展为C:\Users\Administrator/

我系统环境变量中的HOME值为C:\msys64\home\

我检查了,下载的tabnine执行程序在我的 msys64的目录中,所以python去C:\Users\Administrator/找不到可执行文件

就是读取单词啊,但是这里明显没有读取到另一个buffer和上面一行的pauseSpine这个单词。我记得dabb是可以的 ,而且补全出的_beorg我也没见过这单词,我color-rg搜了一下工程没有搜到。

这种没有语义的单词是要空闲1秒才会更新的, 如果你一直在敲代码没有停, lsp-bridge是不会索引这些没有语义的单词。

停了,我等了他很久。。而且不是出来了一个奇怪的search word的 _beorg么。。

beorg是肯定有这个单词, 可能在某个 buffer 中, color-rg 只会搜索文件 buffer, 那种没有文件路径的 buffer 是不会搜索的。

能告诉我你的TabNine实际安装到什么路径? Python打印的是什么路径吗?

这个需要对比一下, 应该是 Windows HOME 环境变量导致 lsp-bridge 找不到 TabNine 的原因。

python os.path.expanduser("~/.TabNine/")C:\Users\Administrator/.TabNine/

emacs 安装 C:\msys64\home\Administrator\.TabNine

系统变量 HOME C:\msys64\home\Administrator

tabnine我直接拷贝到 os.path.expanduser("~/.TabNine/")C:\Users\Administrator/.TabNine/ 这里了,重启后tabnine生效了,基本可以覆盖dabb的使用需求了,dabb就不折腾了,虽然我还是很纳闷,我用vscode全目录搜了一下还是没搜到哪个单词。

yasnippet使用的一点改进,懒猫看一下。

我有好几个snippet 目录,原来的用的时候总是找不到snippets,才发现你只解析第一个目录,所以重构了一下,再加了几个自定义选项。话说trigger-keyword这个词好别扭,要不要换个词,shortkey,yaskey之类的,只要区别于 keyword,key 就行了吧。

不是我只解析了一个补录, 而是 yas--get-snippet-tables 这个函数太卡了, 这个函数会导致 acm 奇卡无比。

所以我最后只扫描了一个目录。

是吗? 我试一下感觉还不错呀,难道是因为我的snippets比较少还是别的原因。不过我的snippets确实分别放在好几个地方。

我最开始就是用的 yas–get-snippet-tables 这个函数, 确实可以扫描所有 snippet, 但是在我的机器上 i7 处理器, 太卡了, 查询一次2秒, 完全没法忍受。

(expand-file-name “~/.TabNine/”) 这行代码在 Windows 上返回的是什么结果?

我的也是i7,不过确实不卡。查询一次两秒是什么意思呢,是你按一次键就得等两秒才刷新列表吗?不知道你的snippet规模如何。

就是单单执行 yas–get-snippet-tables 这个函数要花费2秒

我试了一下, 一执行结果立刻就出来了。 按理说获取一个mode的snippet也不会太多吧,总量多应该不影响。建议你有时间测试一下那个分支,如果还是耗费时间长的话,那我不如加个选项,解析哪个目录让人自己选。

还是说,可以每切换一个major-mode,就把哪个snippet-tables缓存一下,这样只有第一次卡,后面不用每更新一次列表就重新查询,不知道这样能缓解多少

对, 按道理搜索模板就和我现在实现一下, listdir 就好了。 不知道为什么我这么卡, 估计和我有很多古老插件有关, 我过几天升级一下 yasnippet 看看。

但是你怎么知道用户没有更新模板呢?