好的,应该tabnine路径不一样
我发现如果在 ~/.TabNine 下有旧版本的 tabnine 目录,这个插件就会 break 掉 lsp-bridge 的自动补全,需要把旧版本的 binary 目录全部手动删掉,更新 tabnine 貌似不会自动删除旧版本的目录
这个我还没试过,运行 tabnine-bridge-install-binary 这个后也会有问题吗
那个解析tabnine 路径的函数是不是有啥问题。
我这边执行完tabnine-bridge-install-binary之后报错了
报的什么错误,实在不行可以像楼上一样删掉~/.TabNine,然后重新运行试下,或者设置下tabnine-bridge-binaries-folder,这个我还没测试过
tabnine 有什么优势吗? 我始终没有get到 tabnine 的意义
当语言的lsp提供补全不给力的时候就很有用,例如swift。另外在写业务代码时候,很多代码是重复用的,tabnine就可以进行比较长的补全(目前copilot更给力)。
我这里用不了,安装和启动的时候都会报错
File mode specification error: (void-variable it)
lsp-bridge 今天支持了 citre 后端, 对于一些语言如硬件描述语言(VHDL, Verilog, Systemverilog) 还没有成熟的LSP后端, 绝大部分硬件描述语言的插件还是利用Tags来补全和跳转。
做硬件设计的同学有福啦, 感谢 @wcq062821 大佬的高质量补丁。
看下~/.TabNine目录是否存在,存在的话就整个删掉,然后重新运行 tabnine-bridge-install-binary 。另外你的系统是什么,我只在mac上测试过。
我是 arch,删掉重来也是不行
那你先把bridge里面的禁用,然后使用tabnine-capf这个包,看下这个能不能下载,我里面的逻辑跟这个是一致的。
请问一下在windows下能执行tabnine-bridge-install-binary这个命令吗? 我M-x找补到这个命令
大佬, 我有一个问题,在按回车键完成补全之后
(defun lsp-bridge-not-follow-complete ()
"Hide completion if last command is `acm-complete'."
(not (eq last-command 'acm-complete)))
接着按点(.) 这个函数会返回nil 直接导致不能补全, 按道理类似补全完结构体名再按. 或者 → 应该是可以接着补全才对的吧? 不知道这个函数是解决什么场景的问题?
lsp补全后,lsp服务器有可能继续返回新的补全项,比如补全了string这个候选词,还会弹出stringfoo的候选词。
为了避免用户补全后继续弹出补全窗口,acm-complete后就不显示补全窗口,直到用户继续输入新的字符
用这个后端需要配置啥吗?还是开箱即用? 怎么决定一个项目里用citre还是lsp-server?
可以请教一下 @wcq062821
- citre 后端的候选词会排在lsp的后面, 一般来说有lsp就不会用citre了吧?
- M-x: describe-variable 然后搜索 acm-enable-citre 在里面把 acm-enable-citre 设成 t 可以使能 citre,也可以用 add-hook 在对应的 prog-mode 里配置 acm-enable-citre
- 使能citre 后端前, 个人的配置文件中应该要有类似
(use-package citre)
的citre的配置, 不然在lsp-bridge 中调用citre的函数时会报错
得先用lsp-bridge补全打几个字,这个是在补全的时候加载的,补全后再找就有了,我看后面能不能优化下。