vscode工程文件添加索引配置及屏蔽目录

说明

vscode在打开工程的时候,若该工程下存在多个目录文件夹,系统自动配置的索引目录可能会存在问题,例如在某个文件夹下的main.c文件中调用了另一个文件夹下的.c文件中的某函数,此时对该函数进行转到定义跳转会显示“未找到xxx的任何定义”。


解决方法

用系统资源管理器打开该工程文件目录下的.vscode文件夹的 c_cpp_properties.json 文件(仅以C语言为例),文件内容如下所示:

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ]
        }
    ],
    "version": 4
}

可以看到"${workspaceFolder}/**"已经表示工作区下的所有文件,但是跳转还是存在问题,此时我们需要手动添加索引:

假设需要添加的目录为modbus,如果 modbus 目录位于工作区根目录下,在该文件中插入索引 ${workspaceFolder}/modbus
如果 modbus 在工作区的某个子目录中,确保路径反映了其实际位置。

修改后的代码:

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**",
                "${workspaceFolder}/modbus"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ]
        }
    ],
    "version": 4
}

修改完毕后保存该文件,即可看到相关目录文件已经重新索引,函数亦可正常跳转。

屏蔽目录

若工程下存在例如编译中间件等不需要vscode索引的目录,可以在.vscode文件夹下的settings.json中添加下述代码屏蔽该目录

其中ture表示屏蔽,false表示不屏蔽。

    "search.exclude": {
        "目录名称": true
    },
    "files.exclude": {
        "目录名称": true
    }

例如:

原始文件内容为:

{
    "files.associations": {
        "DataScope_DP.C": "cpp",
        "modbus.h": "c",
        "main.h": "c"
    }
}

现在要屏蔽中间件文件夹MDK-ARM,添加屏蔽代码后内容为:

{
    "files.associations": {
        "DataScope_DP.C": "cpp",
        "modbus.h": "c",
        "main.h": "c"
    },
    "search.exclude": {
        "MDK-ARM": true
    },
    "files.exclude": {
        "MDK-ARM": true
    }
}

‍此时打开vscode工作区目录,可以看到对应的文件夹已经被屏蔽,使用全局搜索也不会再搜索到相关内容。

### 如何在VSCode中执行代码索引 #### 使用内置功能进行代码导航和索引 Visual Studio Code (VSCode) 提供了多种方式来帮助开发者更高效地浏览和理解项目中的代码结构。通过利用其内建的功能,可以实现有效的代码索引[^1]。 对于大多数编程语言而言,安装相应的语言支持扩展后,VSCode 能够自动解析文件并建立符号表,从而允许用户快速跳转到定义、查看引用以及显示函数签名等功能。这些操作本质上就是一种轻量级的代码索引机制[^2]。 #### 安装第三方插件增强索引能力 为了进一步提升代码索引的效果,还可以考虑安装一些专门设计用于提高开发体验的插件: - **IntelliSense**: 这是由微软提供的智能感知服务,它可以根据上下文提供参数提示、成员列表和其他有用的信息。虽然这主要是一个编辑辅助工具,但它同样依赖于背后强大的语义分析引擎来进行高效的代码理解和索引。 - **Language Support Extensions**: 针对特定编程语言的语言支持包通常会包含语法高亮、错误检测以及更为深入的代码索引特性。例如 Python 的 Pylance 或者 C/C++ 的 Microsoft C/C++ Extension 等都可以显著改善对应语言下的工作流效率[^3]. ```json // 示例:配置settings.json启用某些插件 { "editor.quickSuggestions": { "other": true, "comments": false, "strings": false }, "[python]": { "editor.defaultFormatter": "ms-python.black-formatter" } } ``` #### 设置优化建议 为了让 VSCode 更好地处理大型项目的代码索引需求,在 `settings.json` 中调整如下选项可能会有所帮助: - `"search.useIgnoreFiles"` 和 `"files.exclude"` 可以用来控制哪些路径应该被忽略掉不参与全局搜索; - 对于 JavaScript/TypeScript 用户来说,设置 `"typescript.tsserver.maxTsServerMemory"` 参数能够防止 TypeScript 服务器占用过多内存资源影响性能; - 启用实验性的本地化缓存(`"typescript.localize")有助于加速类型脚本的服务响应时间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值