VS Code设置字符串中是否存在对应工作区文件夹的可用宏?
关于C++ Include Guard扩展无法解析
${workspaceFolder}变量的解决方案 首先明确:该扩展本身没有内置VS Code变量解析逻辑,所以你写入配置的${workspaceFolder}只会被当做普通字符串处理,不会自动替换为实际工作区路径。
你可以通过以下两种方式实现需求:
- 工作区单独配置固定前缀
直接在当前项目的.vscode/settings.json(工作区设置文件)中写入对应项目名的固定前缀即可,比如你的工作区文件夹名为demo_project,配置如下:
这种方式不需要依赖变量解析,同时可以直接把前缀调整为符合C++头文件守卫规范的全大写格式,避免路径中存在的斜杠、空格、小写字符导致守卫语法非法,适配性最高。"C/C++ Include Guard.Prefix": "DEMO_PROJECT", - 自行扩展变量解析能力
如果你需要跨项目自动适配工作区名,可修改本地安装的该扩展源码,在读取Prefix配置的逻辑处增加VS Code内置变量解析调用,参考API为vscode.workspace.expandVariable(),解析完成后再生成前缀即可。
注意:即使变量可以正常解析,${workspaceFolder}返回的是本地完整路径,直接作为头文件守卫会引入大量非法字符,必须额外做字符替换(非字母数字转下划线、全大写转换)处理,相比直接配置固定前缀效率更低。
内容的提问来源于stack exchange,提问作者code_fodder
相关产品推荐
相关产品推荐

