LSP 是 VSCode 定义的一个语言无关的协议,提供代码解析补全等功能。本文以 leveldb 为例,介绍一下怎么通过 LSP 来更方便的阅读代码。
首先,我们需要下载代码,并生成 compile_commands.json
文件,clangd 会通过这个文件知道整个项目是如何编译的。
git clone https://github.com/google/leveldb.git
cd leveldb/
git submodule update --init
mkdir build
cd build
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 ..
然后,我们就可以使用 VSCode 来阅读代码了,将鼠标放在变量名上,可以很容易的看到定义。可以任意的跳转定义和实现。可以方便的看到有哪些子类,有哪些地方调用了函数接口。
也可以方便的查看 Call Hierarchy 和 Type Hierarchy。
- Call Hierarchy 有哪些地方调用了这个方法
- Type Hierarchy 有哪些子类
可以很方便的看到传参的含义。