文章目录
- rust-analyzer
- CodeLLDB
Rust据说是一门永远也不会发生内存错误的语言,并且因其反人类的学习曲线,而长期占据编程鄙视链的最顶端。而且就连微软都准备把Windows挪到Rust上面,可见其受欢迎程度。
rust-analyzer
在插件栏中直接搜索rust-analyzer并下载,其图标很诡异,左上角一个r,右下角一个a,所以后文称之为ra。
ra针对rust语言主要提供了如下功能
- 代码补全
- 定义跳转
- 语句查询
- 悬停时显示文档
- 类型提示
- 语法高亮
- ……
但这么多功能中,并不提供rust的编译器,所以需要从官网下载。下载rustup-init并运行之后,会打开命令行,选1默认安装,然后不出意外就安装完了。
安装成功之后,可以新建一个rust项目,然后用code打开相应的文件夹
cargo new --bin hello
code hello
进入VS Code后,将鼠标放入任何一个语句中,前方都会出现一个小灯泡,点击之后,就会弹出建议插入的代码。当然,由于新建的项目过于简单,所以ra提供的建议并没有体现出价值。但是,如果再写一点东西,类似下面这样,就会感受到ra的强大。
此外,按下F1
,并输入rust-analyzer,选择View Crate Graph,可以查看项目的依赖关系,如图所示
此外,rs文件中的右键菜单也被重新定制,支持转到定义、转到声明等功能。如果想追查某个函数的定义,也可以在按下Ctrl的同时,单击某个函数名。比如按下Ctrl,单击println!函数,VS Code就会打开macros.rs文件,便可以看到这个打印函数的实现方式了。
CodeLLDB
ra安装之后,我们就发现,main函数上方也出现了一个Run|Debug的标识,二者均可点击运行。然而ra虽然很强大,但并没有提供debug功能,为了可以更加便捷地定位错误,可安装CodeLLDB插件,这个插件提供了C++和rust这两种语言的调试工具,包括断点调试以及内存分析等。
安装成功之后,按下F1
,选择debug,ra会自动调用CodeLLDB来进行调试,同时右下角会弹出Acquiring CodeLLDB platform package的提示。
如果报错了,不要慌,会出现在浏览器中打开下载链接的按钮,点击后会下载一个vsix格式的插件。下载完成后,按下F1
,输入install from vsix,选中刚刚下载的文件。然后重启VS Code。
至此,万事俱备,只需设一个断点,就可以执行debug命令了,执行效果如下,左侧也出现了变量区,只是我们的程序过于简单,并没有变量。