经过一番折腾以后,我再次转回 Emacs 阵营,因为:
- Emacs 提供了一种整体的美感,尽管感觉不如 VSCODE 那么“专业”,但是它提供了一种“立刻写代码”的快感
- 我以后的主力开发语言应该就是 C语言,因为我计划以后从事 PostgreSQL 相关的数据库开发工作(纯C),再不需要什么复杂的东西
- 还是舍不得 Emacs China 这么好的社区(哈哈哈哈)
然后我刚刚再次安装了 Emacs 并且启动了配置,现在我下载了一套 PostgreSQL 的数据库源代码,并安装了 Lsp-Bridge 进行源代码解析。
但是,我发现 Lsp-Bridge 似乎“不能理解整个项目”的代码逻辑关系(因为我并不清楚怎么为Lsp-Bridge指定“一个项目的代码解析”)(它在单文件工作下很好)。
有没有一个解决方案呢?还是说我只能如之前那样,手动生成TAGS文件呢?
1 个赞
我确实注意到了开发文档的这些话语,但是这东西还是工作有问题,因为 postgres_fe.h 也在项目文件夹里边。
ksqsf
5
有没有生成 compile_commands.json?
我检查了一下PostgreSQL的文件目录,确实是存在.git 文件的
ksqsf
8
这是要你自己提供的,否则 LSP server 不知道编译参数。
不行,没得用,不知道为什么就是死活找不到postgres_fe.h
你是不是没有安装C语言的LSP Server, 可以装个CCLS 或者Clang 试试
rua
14
lsp bridge 只能 global 开启或者加到对应的 hook 中,对于单个文件开启后跳转到其他文件的时候就没有 lsp bridge mode 了(即使在同一项目下
如果是CCLS的话, 可以类似这样 (setq ccls-args '("--log-file=/home/user/tmp/ccls.log"))
设定个log输出文件, 然后去看这个log 到底少分析了哪些文件, 或者看看 lsp-bridge , lsp 的相关buffer有没有错误信息
(setq lsp-bridge-enable-log t), 然后看看 *lsp-bridge*
报啥错或者 clangd 输出了啥?
找到问题再把上面选项关闭了, 打开日志严重影响性能。
其实我认为 C 因为语法和规则太简单了,完全不需要 lsp,Emacs 自带的 xref-find-definitions 和 etags 就可以解决,也不需要 flymake,一边编译一边修错误就可以了。没必要折腾 lsp 啥的。
1 个赞