- 通过brew install了ccls到/usr/local/bin下
- 在mac上follow spacemacs的配置教程,在.spacemacs中加了如下code:
(c-c++ :variables
c-c+±backend 'lsp-cquery
c-c+±lsp-executable “/usr/local/bin/ccls”)
- 在项目下添加了.ccls文件
%clang
%cpp -std=gnu++14
-isystem/usr/include
- 在项目下通过cmake生成了compile_commands.json
- 手动运行/usr/local/bin/ccls --index=.生成了.ccls-cache目录
- 打开项目中的一个.cpp文件,SPC m g g 说要去找TAGS文件;wiki上说的快捷键也没法用。
求一个可用的emacs+ccls的配置文件,spacemacs或者doom-emacs的都可以。
找到原因了。是因为我的spacemacs用的是master branch的,切换到develop branch配置就生效了。
目前的问题是:SPC m g g报错:(可能不是同一个命令按出来的,尝试了几个命令)
lsp–send-request-async: No workspace could handle textDocument/references
No jump handler was able to find this symbol.
尝试了下,不会用。emacs太多年不用了,快捷键都忘了。
emacs lsp是怎么确定workspace的?必须要用特定的打开方式吗?还是随便打开个文件,会自动找这个文件所在的上层目录作为workspace?
赞!尝试了spacemacs, doom-emacs和centuar emacs。只有centuar emacs配置成功了ccls。
centuar emacs下有配置lsp相关的快捷键吗?现在是通过m-x lsp-find-difinition 进行跳转的。
跳转快捷键是通用的:M-.
, M-,
绑定的是lsp-ui-peek-find-definition
.
M-x lsp-ui-peek-find-definition
就能看到快捷键,其他同理。
这两个设置好像都没起效果。是我设置错了吗?
(setq counsel-find-file-ignore-regexp ".*\.ccls.*")
(setq persp-mode-projectile-bridge-mode nil)
函数和变量文档里有详细说明
(setq counsel-find-file-ignore-regexp "^\\.ccls.*")
(persp-mode-projectile-bridge-mode -1)
第一个,试了文档里的regexp和你的代码,都不行。
(setq persp-mode-projectile-bridge-mode -1)
起作用了。