最近,我一直在使用vscode+EIDE插件来查看修改stm32单片机程序,遇到了一些结构体变量或者结构体指针变量无法访问内部成员的“语法提示”功能,现在对几种情况进行记录。

(1)vscode+EIDE+c/c++插件+IAR stm32项目

也就是使用c/c++插件的语法提示功能,使用EIDE插件导入IAR项目工程。导入后存在语法不提示问题,也就是当输入结构体变量名的时候不自动弹出列表,更不用说成员变量列表自动弹出功能了。

详情请查看:

https://discuss.em-ide.com/d/1206-eideiar-armcc

我测试了好几遍,无论是将整个项目的文件夹添加到工作区,还是导入一个新的IAR STM32工程都无法做到输入结构体成员的时候有自动菜单弹出提示。我已经在EIDE论坛中详细说明了,希望作者能够协助解决一下。

经过测试(重新安装了最新版EIDE插件),好像从生成的项目名的文件夹下中的“工作区文件”打开的话是有语法提示功能的,如果从项目文件(xxx.eww)同目录下“工作区文件”打开的话,是没有语法提示,而且“问题”窗口有错误提示。

(2)vscode+EIDE+c/c+++keil MDK项目

导入工程后,c/c++插件下能够实现结构体成员语法提示,以及结构体变量语法提示,如下图所示:

(3)vscode+EIDE+clangd+IAR STM32项目

导入IAR Stm32工程后,需要修改工作区的clangd参数,添加EIDE插件自动生成的compile_commands.json路径,如下图所示:

最后,右键编辑器-》命令面板--》重新解析clangd

(4)vscode+EIDE+clangd+keil MDK项目

在项目所在文件夹同一层目录创建一个EIDE的文件夹,用于不污染源文件内容,存储EIDE生成的一系列文件。

然后,同样的在clangd插件的工作区中设置clangd参数,指定compile_commands.json的路径。

最后,右键编辑区--》命令面板---》clangd重新解析

总结:

(1)vscode+EIDE+clangd插件无论导入keil MDK或者IAR STM32工程都没有语法提示问题。

(2)vscode+EIDE+c/c++插件,导入keil MDK项目的时候没有语法提示问题,导入IAR STM32项目的时候存在语法提示问题,经过与EIDE论坛沟通,尝试了几个操作,最终语法有提示功能了(需要打开总文件夹下的工作区文件才可以(问题窗口无错误))。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐