在ubuntu 16.04 中成功配置大佬开发的lsp-bridge插件来完成流畅自动完成C\C++代码的功能。

通过完成以下步骤就可以配置完成:

1、升级python3 到 python3.8 版本。

sudo apt update sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev libbz2-dev

wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz tar -xf Python-3.8.0.tgz cd Python-3.8.0 ./configure --enable-optimizations make -j 8 sudo make install

在 .bashrc加入

alias python=usr/bin/python3.8

2、安装clangd 13.0版本

在/etc/apt/source.list 加入 deb Index of /xenial/ llvm-toolchain-xenial main

sudo apt update

然后用 wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add 解决签名问题。

再一次

sudo apt update

sudo apt install clangd

3、下载最新的corfu、lsp-bridge插件,并按照lsp-bridge插件的配置说明配置init.el

这一步就可以参考lsp-bridge插件的配置说明.

4、在项目里 用 bear make 生成 compile_commands.json 如没有命令bear, 则直接用 sudo apt install bear 安装 5、打开项目中的文件就可以流畅自动完成了。

3 个赞

最新版不需要corfu了,哈哈哈哈

谢谢,提醒!

compile_commands.json 要设置到什么位置吗?

我是在顶层目录运行bear make ,此时,compile_commands.json就在顶层目录中。

all-the-icons 没有安装呀,图标显示不出来

对,all-the-icons-20210228.1440插件安装了,但图像数据没有下载,请问在那下载。

all-the-icons-install-fonts 执行这个命令就可以了

现在可以了。很漂亮! 很兴奋呀! 终于可以抛开qtcreator只在emacs下写代码了。比qtcreator的自动完成快多了,流畅多了。终于享受写代码时行云留水的感觉了。多谢大佬!!

我的首次尝试失败了…… :frowning_face: mbp macosx+brew安装软件这块儿没什么问题,我能搞定; 但是我被 bear => compile_command.json 打败了。C++项目代码是要求在目录里面创建一个build目录,然后到里面去构建,但是我执行 bear – make 的结果是,json里面是个空。软件已经构建成功了。 面对C++各种项目的各种各样的构建姿势,不知道 bear 是否能搞定。而且项目要求的编译器是gcc,clangd没用过。不知道vscode是怎么解决这个不同项目的编译构建姿势的问题。

你是不是 之前已经build成功了,你试一试 bear – make clean ,然后 再 bear --make -j5

为什么生成了json文件,但是lsp-bridge还是不能补全头文件。json文件不变,配置切换到lsp就能补全。不知道啥情况

啊,好像莫名其妙又可以啦。。

我把corfu移除了,没法用,默认还是会去找corfu, 问一下,不配置corfu,怎么配置的

lsp-bridge 现在只对 corfu 支持比较好, company 只是实验性的,还有问题。

请问一下找不到标准头文件,但是用g++可以编译执行,是有什么软件没安装么?

lsp bridge更新到了最新版本

环境 g++ --version g++ (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0 Copyright (C) 2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

cat /proc/version Linux version 5.15.0-41-generic (buildd@lcy02-amd64-065) (gcc (Ubuntu 11.2.0-19ubuntu1) 11.2.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #44-Ubuntu SMP Wed Jun 22 14:20:53 UTC 2022

clangd --version Ubuntu clangd version 14.0.0-1ubuntu1 Features: linux+grpc Platform: x86_64-pc-linux-gnu

贴一下 lsp-bridge buffer 的日志

有没有可能没有生成 compile_commands.json。

生成了compile_commands.json就可以了 谢谢