使用环境
- 操作系统版本:Windows 10
- 操作系统平台(x86/x64):x64
- VsCode 版本:1.70.2
- EIDE 插件版本:3.8.2022082801
- C/C++ 插件版本:用 Clangd 代替了
- 何种编译器(keil_c51/sdcc/armcc5/armgcc/...):armcc5
描述问题
该问题与 EDIE 无关, 是我不知道在 VScode 里该用什么插件或方法实现我想要的效果, 论坛里大佬很多, 所以来问问看.
我们在对外设进行初始化的时候经常要对一些结构体变量的成员进行挨个赋值, 例如:
// 下面对结构体变量成员的赋值是错误的, 只作为演示
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode;
GPIO_InitStruct.GPIO_Pin = GPIO_Pin;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed;
GPIO_Init(GPIOA, &GPIO_InitStruct);
DMA_InitTypeDef DMA_InitStruct;
DMA_InitStruct.DMA_PeripheralBaseAddr = DMA_PeripheralBaseAddr;
DMA_InitStruct.DMA_MemoryBaseAddr = DMA_MemoryBaseAddr;
DMA_InitStruct.DMA_DIR = DMA_DIR;
DMA_InitStruct.DMA_BufferSize = DMA_BufferSize;
DMA_InitStruct.DMA_PeripheralInc = DMA_PeripheralInc;
DMA_InitStruct.DMA_MemoryInc = DMA_MemoryInc;
DMA_InitStruct.DMA_PeripheralDataSize = DMA_PeripheralDataSize;
DMA_InitStruct.DMA_MemoryDataSize = DMA_MemoryDataSize;
DMA_InitStruct.DMA_Mode = DMA_Mode;
DMA_InitStruct.DMA_Priority = DMA_Priority;
DMA_InitStruct.DMA_M2M = DMA_M2M;
DMA_Init(DMA1, &DMA_InitStruct);
期望现象
我想要的效果是在我定义了结构体变量(例如: GPIO_InitTypeDef GPIO_InitStruct;
或 DMA_InitTypeDef DMA_InitStruct;
) 之后, 有没有某些插件或者功能或者方法, 可以让我使用一个 vscode 命令或一个快捷键 能够快速的生成对该结构体变量所有成员赋值的语句, 就是一键生成下面的代码:
GPIO_InitStruct.GPIO_Mode = GPIO_Mode;
GPIO_InitStruct.GPIO_Pin = GPIO_Pin;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed;
或
DMA_InitStruct.DMA_PeripheralBaseAddr = DMA_PeripheralBaseAddr;
DMA_InitStruct.DMA_MemoryBaseAddr = DMA_MemoryBaseAddr;
DMA_InitStruct.DMA_DIR = DMA_DIR;
DMA_InitStruct.DMA_BufferSize = DMA_BufferSize;
DMA_InitStruct.DMA_PeripheralInc = DMA_PeripheralInc;
DMA_InitStruct.DMA_MemoryInc = DMA_MemoryInc;
DMA_InitStruct.DMA_PeripheralDataSize = DMA_PeripheralDataSize;
DMA_InitStruct.DMA_MemoryDataSize = DMA_MemoryDataSize;
DMA_InitStruct.DMA_Mode = DMA_Mode;
DMA_InitStruct.DMA_Priority = DMA_Priority;
DMA_InitStruct.DMA_M2M = DMA_M2M;
然我再根据我自己的业务需要去修改填充这些成员的值.
虽然可以配合自动补全一条一条写这些赋值语句, 但是对于成员很多的结构体一条一条写赋值语句还是比较麻烦.
我对 vscode 不是很熟悉, 如果各位大佬有类似功能的插件或实现方法, 请教教我, 谢谢.