Visual Studio Code 的 includePath 全局设置

2023-05-16

这几天折腾使用Visual Studio Code 编写 ESP8266 non_os 代码,基本设置都没问题,但是就是自动补全折腾很久没弄好。在折腾了一圈插件之后(包括Auto Import, C++ Intellisense, CTags Support, scope4code, c/c++ Clang Command Adapter,platformIO IDE),还是没法实现结构体及其成员的自动完成。

折腾了一晚上,第二天继续折腾,最后发现其实ms官方的 ms-vscode.cpptools 已经很好用了。自动补全和跳转定义都没问题,所以暂时把其它的插件全部禁用。

自动补全的关键是 includePath 的设置,默认的情况下includePath 在 c_cpp_properties.json 中设置,但是只针对当前工作区有效,网上的文章都只讨论  c_cpp_properties.json 的设置,其实Visual Studio Code官方从2017年12月29日开始就已经引入了全局设置的参数 Customizing Default Settings,当和 c_cpp_properties.json 冲突时,以全局的设置为准。

首选项-设置,从设置页面找到链接打开setting.json,添加如下内容 (本例适用于机智云官方的 ESP8266 SoC 代码,其他项目请自行修改路径):

//如下内容适用于机智云官方的 ESP8266 SoC 代码,其他项目请自行修改路径
"[cpp]": {
    "editor.quickSuggestions": true
        },
    "[c]": {
    "editor.quickSuggestions": true
        },
        "C_Cpp.default.includePath": [
          "${workspaceFolder}",
          "${workspaceFolder}/src",
          "${workspaceFolder}/app/driver",
          "${workspaceFolder}/app/include",
          "${workspaceFolder}/app/Gizwits",
          "${workspaceFolder}/app/include/driver",
          "${workspaceFolder}/include",
          "${workspaceFolder}/app/Utils"
          
      ],
      
        "C_Cpp.default.browse.databaseFilename": "${workspaceFolder}/.vscode/.browse.c_cpp.db"

这样就可以了。

亲测结构体及结构体成员都能很好地自动完成。

注意:很多网上的文章都使用了 “${workspaceRoot}”,但是已经被官方弃用了,现在应该使用“${workspaceFolder}”以便支持工作区的多目录特性。

附全局参数列表:

New VS Code settings

The following C_Cpp.default.* settings map to each of the properties in a configuration block of c_cpp_properties.json. Namely:

C_Cpp.default.includePath                          : string[]
C_Cpp.default.defines                              : string[]
C_Cpp.default.compileCommands                      : string
C_Cpp.default.macFrameworkPath                     : string[]
C_Cpp.default.forcedIncludes                       : string[]
C_Cpp.default.intelliSenseMode                     : string
C_Cpp.default.compilerPath                         : string
C_Cpp.default.cStandard                            : c89 | c99 | c11
C_Cpp.default.cppStandard                          : c++98 | c++03 | c++11 | c++14 | c++17
C_Cpp.default.browse.path                          : string[]
C_Cpp.default.browse.databaseFilename              : string
C_Cpp.default.browse.limitSymbolsToIncludedHeaders : boolean

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Visual Studio Code 的 includePath 全局设置 的相关文章

  • Centos 普通用户su到root用户提示错误

    一 CentOS7 普通用户执行su时 xff0c 报如下错误 xff1a test 64 ecs 1453 su Password su Authentication failure 解决方法 xff1a 如果root能够正常登陆 xff
  • Windows Server2012 主副AD域控部署

    介绍 xff1a 部署主域控和辅域控 server2012跟server2008同样能够实现 部署额外域控制器 xff0c 指的是在域中部署第二个甚至更多的域控制器 xff0c 每个域控制器都拥有一个 Active Directory 数据
  • AD辅域控制器升级为主域控制器(图形界面操作)

    环境介绍 Active Directory域控制器已经搭建好主域控和辅域控 xff0c 主域控故障 xff0c 手动升级辅域控为主 主域控 xff1a 2012DC1 xff0c ip xff1a 192 168 15 1 辅域控 xff1
  • macOS的Chrome安装插件提示 程序包无效

    感谢 xff1a 完美解决Mac系统下Chrome插件安装时程序包无效 CRX HEADER INVALID 下载好插件crx文件后 xff0c 不要直接拖拽到扩展页面进行添加先把插件crx文件的后缀改成zip xff0c 再拖入到chro
  • Windows server 2008远程桌面会话主机和远程桌面授权(解决120天过期问题)

    一 系统环境 部署RemoteAPP是加入域控管理的 xff0c 这样可以方便授权管理 xff0c 域部署查看 xff1a https blog csdn net tladagio article details 80464833 二 远程
  • KMS激活报错0x8007000D

    一 错误显示 在执行kms的批处理激活office的时候 xff0c 显示报错 xff1a 0x8007000D 原因 xff1a 这台机器之前是使用其他KMS服务器序列号激活的系统 xff0c 现在使用批处理文件激活office的的KMS
  • win7无法访问局域网共享,错误代码0x80070043找不到网络名

    一 故障 xff1a win7无法访问局域网共享文件 xff0c ping网络正常 故障提示如图 类似错误代码还有可能是0x80070035 xff0c 提示找不到网络路径 二 解决 1 在控制面板找到网络连接 2 点击本地连接右键属性 3
  • 在github上搭建个人独立博客

    这篇文章会给大家分享利用github pages搭建我的个人独立博客的过程 xff0c 希望能帮助到一些想搭建独立博客的朋友 本文操作中所使用的操作系统为MacOS 一 工具准备 1 下载nodejs https nodejs org zh
  • hexo博客如何绑定个人域名

    我利用hexo在github上搭建了自己的独立博客 如果要打开这个博客 xff0c 我们则需要输入GitHub下的二级域名username github io xff0c 这里面的username就是你注册GitHub账户时的用户名 但是为
  • PX4的控制与输出

    文章目录 前言控制器部分输出部分控制组混控器混控器的启动信号输出 前言 这篇记录一下自己分析PX4从位置控制 gt 速度控制 gt 姿态控制 gt 角速度控制 gt 电机输出的源码框架的阅读与理解 xff0c 便于之后自己修改控制器 在这个
  • ML302 OpenCPU系列(5)---Log工具的使用

    ML302 OpenCPU系列 xff08 5 xff09 Log工具的使用 一 使用串口助手抓取Log二 使用Coolwatcher抓取AP Log三 查看死机现场 工欲善其事 xff0c 必先利其器 Log是嵌入式开发中最重要的调试手段
  • Lottie简单使用

    一 简介 Lottie 是Airbnb开源的一个面向 iOS Android React Native 的动画库 xff0c 能分析 Adobe After Effects 导出的动画 xff0c 并且能让原生 App 像使用静态素材一样使
  • Xshell显示图形化界面

    前言 很久没用过图形化界面了 xff0c 都忘记怎么使用了 依据以往的经验都是由环境变量DISPLAY设置 xff0c 然后就能连接了 xff0c 每天也是匆匆忙忙的就过了一天 xff0c 都不知道干了啥 xff0c 分配的时间也少 xff
  • 2017--就业分享之IT校招现状和面试经历

    在介绍自己整个春季和夏季实习求职经历之前 xff0c 先给大家公布一则新闻 2017届互联网校招薪酬报告 xff1a 先说下对 16 年 17 届校招的总体看法 xff1a 本该是个不大不小的年 xff0c 结果被华为一己之力搞成了个大年
  • docker常见命令

    文章目录 0 删除重建容器1 打包一个镜像并在另一个服务器上使用 0 删除重建容器 如果觉得镜像被自己搞坏了 xff0c 重启没啥用 xff0c 就要考虑基于之前的镜像重新建立一个新的容器了 span class token comment
  • python代码获取远程电脑IP

    实时的使用邮箱发送IP地址到指定邮箱 使用python代码封装好的软件 xff1a 链接 xff1a https pan baidu com s 1Flz7HHtZM0w3HGDeF 4BhQ pwd 61 yxy2 提取码 xff1a y
  • Collections.singleton();

    span class token comment 删除list某个元素 span List span class token operator lt span Integer span class token operator gt spa
  • 一个程序员所应该具备的精神

    所谓障碍都是主观上的 如果你想研发什么新的技术 xff0c 只需要在冰箱里放满食物和饮料 xff0c 再有一台便宜的计算机 xff0c 和以之献身的决心 xff0c 你即可拥有任何你想拥有的编程深度 xff01 John Carmack
  • Java把字符串中的数字删除的方法和判断字符串里面是否有汉字的方法

    1 把数字删除 String testStr 61 34 大幅度要栽夺工地奇巧地厅革dfdsfdsafd32123313 34 System out println testStr replaceAll 34 0 9 34 34 34 2
  • 氧化还原反应

随机推荐