当前位置: 首页 > news >正文

109、【OS】【Nuttx】【周边】效果呈现方案解析:workspaceStorage(下)

【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除

背景

接之前 blog
【OS】【Nuttx】【周边】文档构建渲染:workspaceStorage(上)
分析了 workspaceStorage 里面的一个重要功能:代码索引,下面继续分析 workspaceStorage

workspaceStorage

还是先看回构建信息这里
在这里插入图片描述
在终端中输入

ls /home/adminpc/.vscode-server/data/User/workspaceStorage/9cb1b511437f607cc1466b26d97b2345/

当然后面的项目路径 ID 每个人的都不一样,后面的 ID 替换成自己的,可以看到工作区缓存这里有几个文件夹
在这里插入图片描述

下面来详细分析下这里面的内容:

  • ms-vscode.cpptools: C/C++ 扩展存储目录,由 Microsoft 提供,存放前面介绍的代码索引缓存,比如符号数据库,解析后的头文件信息,用于代码补全、跳转定义、查找引用等
    在这里插入图片描述

  • ms-vscode.makefile-tools: Makefile Tools 扩展存储目录,也由 Microsoft 提供,存放 Makefile 解析出的项目配置信息,这里注意,Makefile Tools 扩展在用 make 构建时不是必需的,主要是为了提升开发体验,安装这个扩展主要是两点:
    1、智能感知 (IntelliSense) :安装它最重要的作用之一,可以自动解析工作区 Makefile 文件里的编译参数(比如 -I 头文件路径, -D 宏定义等),并将这些信息告诉上面介绍的 C/C++ 扩展,提升 C/C++ 扩展的智能感知能力
    2、错误解析:可以更好地捕获 make 构建过程中的错误和警告,并在 VS Code 的问题面板中高亮显示,并链接到具体的代码行,提升调试体验
    在这里插入图片描述

  • swyddfa.esbonio:esbonio 语言服务器扩展,为 Sphinx 文档提供支持,其中 swyddfa 是扩展发布者 的用户名
    在这里插入图片描述

  • vscode.lock:锁文件,标识这个 workspaceStorage 目录当前正在被一个 VSCode 实例使用,防止多个 VSCode 实例同时尝试修改同一份缓存数据,保证数据一致性
    在这里插入图片描述

在终端中输入

ls ../.vscode-server/data/User/workspaceStorage/

可以查看 workspaceStorage 下所有的项目工作区,代表着用 VSCode 打开的所有文件夹路径

在这里插入图片描述
这里有个细节,可以看到这里有一些项目 ID 前面部分是一样的,区别只是后面加了 -1,-2 等等,这也是个很典型且正常的现象,首先工作区生成的项目 ID 是基于打开的文件夹的完整路径计算出来的,前面部分相同,说明这些打开的路径最终都指向了同一个物理位置,但是 VSCode 有时会因为种种原因认为需要重建一个工作区的存储,比如

  • 多个 VSCode 实例打开了同一个项目空间,并且做了修改(符合当前的情况)
  • 旧的缓存格式不兼容
  • 检测到缓存损坏
  • 或者发现某个工作区目录里的数据不一致,过时或损坏等等

导致 VSCode 不确定旧缓存是否可靠,此时 VSCode 会为这个工作区创建一个新的,干净的缓存存储,同时保留旧的,以避免直接覆盖带来风险
在这里插入图片描述
在终端输入

ls -lat ~/.vscode-server/data/User/workspaceStorage/

这里 -lat 分别是三个选项

  • -l:以详细的长格式显示文件和目录信息,每一行会包含
    文件/目录的权限,比如 drwxr-xr-x
    链接数
    所有者
    所属组
    文件大小
    最后修改日期和时间
    文件或目录名等等,比如
drwxrwxr-x  4 adminpc adminpc 4096 Aug 16 22:05 9cb1b511437f607cc1466b26d97b2345-2
  • -a:显示所有文件
  • -t:按文件的最后修改时间进行排序

最终可以看到最新修改的 workspaceStorage 工作区
在这里插入图片描述

http://www.dtcms.com/a/340674.html

相关文章:

  • Pytest项目_day20(log日志)
  • Redis--day9--黑马点评--分布式锁(二)
  • 基于门控循环单元的数据回归预测 GRU
  • 【ansible】3.管理变量和事实
  • 拆分工作表到工作簿文件,同时保留其他工作表-Excel易用宝
  • NAS在初中信息科技实验中的应用--以《义务教育信息科技教学指南》第七年级内容为例
  • AI面试:一场职场生态的数字化重构实验
  • 如何使用matlab将目录下不同的excel表合并成一个表
  • Kafka如何保证「消息不丢失」,「顺序传输」,「不重复消费」,以及为什么会发送重平衡(reblanace)
  • 稳压管损坏导致无脉冲输出电路分析
  • 【Linux仓库】进程等待【进程·捌】
  • week3-[分支嵌套]方阵
  • React15.x版本 子组件调用父组件的方法,从props中拿的,这个方法里面有个setState,结果调用报错
  • setup 函数总结
  • 买卖股票的最佳时机III
  • C++STL-list 底层实现
  • Adobe Adobe Illustrator Ai 2025最新版软件安装包下载与详细图文安装教程!!
  • 代码随想录Day57:图论(寻宝prim算法精讲kruskal算法精讲)
  • 【自动化运维神器Ansible】Roles中Tags使用详解:提升自动化效率的利器
  • STM32 外设驱动模块五:DHT11 温湿度传感器
  • 【Express零基础入门】 | 构建简易后端服务的核心知识
  • 如何查看和修改网络接口参数?
  • 计算机网络模型
  • 2025年Java后端最新场景题+八股文面试题
  • 田野科技“一张皮”,“AI+虚拟仿真”推动考古教学创新发展
  • 晨控EtherCAT设备分配IP操作手册
  • 详细的Git的安装教程
  • 运用平均值填充后的数据进行模型预测
  • 豆秒数科集团:汽车消费金融市场的领跑者
  • Linux中Cobbler服务部署与配置(快速部署和管理 Linux 系统)