在company -mode和lsp-bridge 会同时补全,补全的弹出窗口会重叠。除了手动M+company mode disable 关闭外。怎么样直接在init.el中设置关闭company -mode?我设置(setq global-company-mode nil) 好像不起作用。
直接删除 company-mode 就好了, 如果缺啥补全后端可以直接提 issue .
company/corfu 这种依赖 capf 的补全前端以后都应该废弃, 因为 capf 本质上根本就解决不了卡顿的问题(主要原因就是单线程和GC的限制)。
今天回顾了一下 lsp-bridge 的开发提交历史, 72位开发者提交了1338个commit, 反馈了497个issue, 合并了493个PR。
感谢社区开发者, 才有可能让 lsp-bridge 从2022-05-01构思到2023-01-08现在的成熟使用。
如果用的是doom的话, 可以这样设, 其他的参考这个设置就可以了
(after! company
(setq company-global-modes '(not erc-mode circe-mode message-mode help-mode gud-mode vterm-mode c-mode c++-mode python-mode emacs-lisp-mode verilog-mode org-mode))
)
猫哥这 youtube 的头像是20年前的吧。偷笑。
2011年的,岁月是把杀猪刀,不堪回首。
由于各种原因,一个go的项目使用了以下目录结构
~/Workspace/project
~/Workspace/project/src
~/Workspace/project/src/mod/foobar.go
因而需要projectile工作在~/Workspace/project
, lsp-bridge工作在~/Workspace/project/src
,在配置中加入
(use-package lsp-bridge
:custom
(lsp-bridge-get-project-path-by-filepath
(lambda (filepath)
(let ((vcdir (vc-call-backend (vc-responsible-backend filepath) 'root filepath)))
(if (not (string-empty-p vcdir))
(if (file-exists-p (concat vcdir "src/go.mod"))
(expand-file-name (concat vcdir "src"))
vcdir)
filepath)))))
但我觉得这样太死板了,有没有好的方法呢?
- Archlinux
- Emacs 28.2(Emacs 30 上也可以复现,并且更明显)
在c++
文件中输入快了会感觉到lsp-bridge
的反应比输入慢一拍,会有点卡手
这是特性吗?
emacs啥分支?开了日志选项了吗?
啥桌面环境,特别是不是pgtk版本?
而且开发版我不建议用,我去年发现emacs的pgtk版本在frame现实合隐藏有明显的性能问题。
- archlinux 官方仓库中提供的
emacs
,未开启nativecomp
和pgtk
- KDE Plasma
- 刚才没有开启日志选项,现在开启后问题更明显
日志见此:
开日志主要是看是不是你的 LSP Server有啥问题没, 默认肯定不能开。
第一, 你要测试一下 emacs -Q, 避免配置影响
第二, 你要看一下, 是不是原来流程, 最近变卡和你最近升级系统是否有关?
第三, 如果都不是上面问题, 就要看 frame 相关的性能影响
奇怪,这个问题在lisp-mode
中不存在,可是在c++-mode
中很突出
我这里C++工程也会有类似的问题,不过我用的是ccls。我觉得就是Server的原因,而不是配置的原因,为啥会这么想是因为我的lsp相关配置很复杂,但python那边pyright从来没觉得慢过,这种事情只在C++出现
我也用的ccls
,clangd
总是会 trying to get preamble for non-added document
但我测试了一下,clangd
也有这个问题
-
emacs -Q
测试过了,问题仍然存在,和配置无关 - 原来没太注意,应该是流畅的,但最近有点卡
- 其他mode没有问题,只有
c++-mode
会卡顿,所以和 frame 也没关系吧
所以应该是lsp-bridge
与 c++ 的 LSP Server 之间的信息传输有问题?(胡乱猜的)
先发issue吧,我有空看看,不一定修的了
lsp-bridge 在python中,导入库后np.在输入点后会补全函数如array等么?
from numpy import np
后续为了输入np.array()
我输入点之后的弹出窗如下:只有5条。没有看到你的截图中的候选项?
我的配置如下:
(require 'posframe) ;; ;;
(require 'markdown-mode)
(add-to-list 'load-path "/Users/apple/.emacs.d/elpa/lsp-bridge") ;; ;; ;; ;; ;;
(require 'yasnippet) ;; ;; ;; ;; ;;
(yas-global-mode 1) ;; ;; ;; ;; ;;
;; ;; ;; ;; ;;
(require 'lsp-bridge) ;; ;; ;; ;; ;;
(setq lsp-bridge-default-mode-hooks ;; ;; ;; ;;
(remove 'org-mode-hook lsp-bridge-default-mode-hooks)) ;; ;; ;; ;;
(setq lsp-bridge-python-command "/Users/apple/miniforge3/bin/python") ;; ;; ;; ;;
(global-lsp-bridge-mode) ;; ;; ;; ;; ;;
;(lsp-bridge-mode 1)
(setq lsp-bridge-org-babel-lang-list '("python")) ;; ;; ;; ;;
;; ;; ;; ;;
(setq lsp-bridge-toggle-sdcv-helper t) ;; ;; ;; ;;
(setq lsp-bridge-toggle-engine-helper t) ;; ;; ;; ;;
(setq acm-frame-background-light-color "#eef4f7")
(setq lsp-bridge-diagnostics-error-face nil)
(setq lsp-bridge-python-lsp-server "pyright")
(setq acm-enable-quick-access t)
你的弹出窗口好像和我的不一样?