haha

因为你将连续的 5 个 #define 写在一起,但没有指定选项对应第几个 #define,

在现在的版本中默认修改第一个所以会出现问题,这与 Keil MDK 的 config wizard 中的现象一致。

而旧的的版本默认修改最后一个,这是一个巧合,因为你真正需要修改的定义是恰好也是最后一个,所以看似没有出现问题

正确的写法,你需要定义 标识符,将你的 <o> 定义修改为如下即可:

// <o CONFIG_OXYGEN_SENSOR_VOLTAGE> 氧传感器 工作电压

这样就会仅匹配和修改 #define CONFIG_OXYGEN_SENSOR_VOLTAGE 这个语句

CofMilk

这个问题会尽快修复

但原则上最好不要有 孤立的 配置项(没有任何 #define 与之匹配)

    admin 好吧,原来一开始就是错误的,我说呢 最开始配置的时候怎么与MDK中配置的不一样

    admin 你现在的这个Configuration Wizard配置支持到什么程度,是否和MDK中的配置完全一样,我就参考MDK的配置走了,或者你给出一个你这边支持的配置到什么级别 否则容易乱

      admin 好的 ,,我先不使用我现在的这种方式,本来想的是用这种方法能再页面中显示一些提示性文本,不是<i>标签那种需要点上去才能看到。当时测试使用这个<o>不影响后面,所以就一直沿用下来了。。。算是个投机取巧吧,,这个改不改的问题不大。。

      haha 好像从已一开始就没有实现所有的语法,,你慢慢测试着来吧

      • haha replied to this.

        haha

        你可以参考这个文件的写法,最初版本的实现也是使用这个文件测试验证的。这个文件包含的写法适用于绝大部分场景

        由于这个解析器缺乏错误处理,因此如果你使用了不规范的语法,则不会有任何警告提示,这就是BUG的来源,
        这也是后续要改进的部分

        sdk-config.h
        305kB

        另外,你也可以安装这个扩展 Arm.cmsis-csolution,它带有官方的 config wizard 支持

        右键鼠标使用 Open Preview 来打开页面

          admin 我试用了一下 这个工具真不咋地

          CofMilk 这里我为了解析下面这种先写配置项后写宏定义的情况,用了一个队列来临时存储没有宏定义匹配的配置项。也就是说后面如果有宏定义会匹配到最后一个没有定义的配置项。这跟旧版的匹配方法不一样,旧版是如果有新的配置像,上一个就算没有与之对应的宏定义,也会匹配当前的配置项

            Deadline039 感谢回复,,之前的做法确实是不太妥,,您提供的这个方法效果还不错,,我再改改。。

            我看到有一个<n>标签 功能就是显示文本,,后期如果能实现这个标签也不错。。不过现在的这个已经够用了

            Deadline039 哦 我明白了,,因为我上面使用了很多没有匹配宏定义的<o>标签,,所以导致我之后的宏定义被匹配到了上面。又因为上面的那些标签没有实质性的数据,导致我下面的标签显示都不对了。。。问题不大,不这样用了

            Deadline039

            这个还要重写成TS,再重构现在的实现,太麻烦了。

            如果有现成的 TS 实现,后面可以考虑重构。

            • haha replied to this.

              admin 最好是标准的,支持吧,这个配置很重要 标准的大家都能参与
              请你喝咖啡

                haha 后面我写个独立的插件吧,把语法检查加上

                • haha replied to this.