STM32CudeIDE不自带代码补全功能,但通过安装插件也是可以实现。这里有个问题要说明一下,在我前面文章有提到过STM32CudeIDE的汉化(使用了一下,那个汉化的有点让人无语,有些都是错的)汉化文章地址:https://blog.csdn.net/qq_23127707/article/details/111874023
这里问题就来了,安装代码补全需要的插件,没问题成功安装,但最后需要去一个文件夹里的文件添点代码,如果是先汉化再安装的补全插件,会发现找不到这个文件夹,不汉化,没问题可以找到。具体原因暂时没找到,期待大佬找到原因!
先添加代码补全功能,再去汉化应该没问题(具体没试,已抛弃那个汉化)。但问题又来了STM32CudeIDE软件如果升级,代码补全功能会失效,貌似需要重新走一边流程,这样问题又绕回上面了。废话不多说开始:
1、首先我们安装2个插件:CDT和plug-in
安装CDT,在Help中选择Install New Software
点击右上角的Add,弹出小框填,Name:CDT
Location:https://download.eclipse.org/tools/cdt/releases/9.11
软件会到指定位置搜寻插件,搜寻到后在CDT Main Features前打钩,点击Next
点击Next直接下一步
一些条款声明,选择同意,然后点击完成开始安装,
软件右下角会有安装进度提示,安装完会让你重启软件,选择重启,
安装plug-in,步骤和CDT基本一样,Name:plug-in
Location:http://download.eclipse.org/releases/photon
选择General Purpose Tools 中的Eclipse Plug-in Developmentc Environment,然后点击Next继续
点击Next继续
条款声明,选同意,点击完成开始安装,
软件右下角有安装进度,装完提示重启软件,重启。两个插件就安装完了。
2、添加代码
在Wiondow->Show View->Other
在弹出的小框中找到Plug-in Development文件夹(最开始提到先汉化的问题,就是这个如果先汉化了,到这一步你找不到这个文件夹),打开Plug-in(双击或者Open)
找到org.eclipse.cdt.ui,选中单击右键选择Import As中的Source Project
在左侧的Project会看到org.eclipse.cdt.ui,找到src
在src中找到org.eclipse.cdt.internal.ui.text.contentassist,并在下面找到CContentAssistProcessor.java,双击打开找到右边verifyAutoActivation函数添加两行代码
default:
return activationChar >= 97 && activationChar <= 122?true:activationChar >= 65 && activationChar <= 90;
在打开org.eclipse.cdt.internal.ui.text.contentassist中的ContentAssistProcessor.java,打开右边setComplet…函数,注释掉里面原有的一行代码,自己添加三行。
String test = ".ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
char[] triggers = test.toCharArray();
fCompletionAutoActivationCharacters = triggers;
添加完点击左上脚的保存按钮,选第二个全部保存
保存完,需要导出一个文件去替换安装目录下原有的文件。点击左上角的File,选择Export
弹出的框,找到Plug-in Development文件夹,选中里面的Deployable pulg-in …点击Next,继续
在弹出的框里Directory处点击Browse选择导出文件存放的地址(地址不要选安装地址下的STM32CubeIDE文件夹,因为导出的文件会生成一个plugins文件夹放在里面,而STM32CubeIDE文件夹下已经有一个plugins文件夹),上面的org.eclipse.cdt.ui打钩,点击完成,等待导出,进度同样会在软件右下角显示。
导完后,关闭软件,在刚指定的位置会生成一个plugins文件夹,
plugins里面的文件就是我们生成的,复制这个文件。
然会在STM32CudeIDE安装目录下,也有一个pluguins文件夹,我们把刚才复制的文件粘贴到里面。里面原本有一个和我们 生成文件名字一样的文件,我看网上有些朋友直接替换覆盖,有些把原来的文件名字改一下随意加个后缀,这样再把我们生成的复制过来,我选的后者。好了这样在打开软件就会发现STM32CudeIDE已经有代码补全功能了。
这里补充说明一下,这里生成的文件,和软件版本号有联系,在那个版本下生成的只能在该版本下使用,有些网友将自己导好的文件发到网上,如果你和他的版本号一样,那你可以下载,然后不用安装上面两个插件,直接去替换,就可以。但如果版本号不一样,你复制过来就没用,同时意味着STM32CudeIDE软件升级后,代码补全功能也就失效了,估计要重新导一边(没有去实践)。