我是不是应该把lsp给关了。。关了的话 跳转怎么办
还有我org-mode也不补全 我把lsp关了 啥也不补全了 无限提示左下角 难受
免费版索引上限 100400KB,会不会很容易达到?
我怎么关了 lsp 啥也不提示了。左下角无限TabNine process restart limit rached 啊啊啊 为啥你们都是好的。我又跪了。我的心好累
是不是要把二进制 放在项目根目录?
免费版是400kb,只是大型项目会超过,但是超过还是提供补全,只是没那么多而已,也够用。
大家用都没问题 我这个二进制文件一直报超过上限 是不是要换个位置 它怎么确定项目根目录
默认位置是 ~/.Tabnine 直接爆了
重新下载了二进制 好了 感觉还不错 没有lsp了跳转怎么办
试用过,免费版还是太弱
tabnine是我学校一位大神同学做的😂
我觉得完整版卖太贵了,而且还是闭源的,一个补全软件不应该卖这么贵。我也考虑一段时间了,这里有没有人感兴趣一起做个开源版?
company-tabnine在没有补全的情况下不能fallback到其他后端,没法配合使用……提了个issue给作者
卧虎藏龙啊
有啊有啊,交流下?
看了下这段介绍,感觉得装个N卡lol
Deep TabNine requires a lot of computing power: running the model on a laptop would not deliver the low latency that TabNine’s users have come to expect. So we are offering a service that will allow you to use TabNine’s servers for GPU-accelerated autocompletion. It’s called TabNine Cloud, it’s currently in beta, and you can sign up for it here.
巨好用啊,平时工作使用 VSCode ,一直超希望加入 Emacs 的本地代码方面的补全,现在真是完美解决了,Thanks
你用的是免费版还是收费版的?差别大吗?
目前使用的免费版,VSCode 的一个插件,刚大概进行了一些功能性的测试,还没有展开使用,不过光是有这个功能,已经让我很开心了, ,毕竟在此之前,只能默默忍受
用下来感觉不错 大家能搞个开源版本就更好了
那么问题来了。补全有了 跳转怎么解决呢~
我用了TabNine 把lsp给关了 lsp不是依赖后端的么。。我怕有冲突
我记得tabnine官网说和lsp是兼容的。
现在tab9可以和其他后端配合使用了,tab9后端我放在最前面,其他后端后备顶上
(defun use-package-list-insert (elem xs &optional anchor after test)
"Insert ELEM into the list XS.
If ANCHOR is also a keyword, place the new KEYWORD before that
one.
If AFTER is non-nil, insert KEYWORD either at the end of the
keywords list, or after the ANCHOR if one has been provided.
If TEST is non-nil, it is the test used to compare ELEM to list
elements. The default is `eq'.
The modified list is returned. The original list is not modified."
(let (result)
(dolist (k xs)
(if (funcall (or test #'eq) k anchor)
(if after
(setq result (cons k result)
result (cons elem result))
(setq result (cons elem result)
result (cons k result)))
(setq result (cons k result))))
(if anchor
(nreverse result)
(if after
(nreverse (cons elem result))
(cons elem (nreverse result))))))
(with-eval-after-load 'lsp-mode
(require 'company-lsp)
(setq company-backends
(use-package-list-insert #'company-lsp company-backends
'company-tabnine t)))
(with-eval-after-load 'company
(push #'company-tabnine company-backends))
好的 我等会试试
你在加拿大读书?富人呀
可以通过 company-transformers
实现 TabNine 和 lsp 同时用
(defun company//sort-by-tabnine (candidates)
(if (or (functionp company-backend)
(not (and (listp company-backend) (memq 'company-tabnine company-backend))))
candidates
(let ((candidates-table (make-hash-table :test #'equal))
candidates-1
candidates-2)
(dolist (candidate candidates)
(if (eq (get-text-property 0 'company-backend candidate)
'company-tabnine)
(unless (gethash candidate candidates-table)
(push candidate candidates-2))
(push candidate candidates-1)
(puthash candidate t candidates-table)))
(setq candidates-1 (nreverse candidates-1))
(setq candidates-2 (nreverse candidates-2))
(nconc (seq-take candidates-1 2)
(seq-take candidates-2 2)
(seq-drop candidates-1 2)
(seq-drop candidates-2 2)))))
(add-to-list 'company-transformers 'company//sort-by-tabnine t)
;; `:separate` 使得不同 backend 分开排序
(add-to-list 'company-backends '(company-lsp :with company-tabnine :separate))
以上代码效果就是, 前 2 个 candidates 是 company-lsp 的, 接着的 2 个是 TabNine 的.