当前位置: 首页 > 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.lryc.cn/news/626915.html

相关文章:

  • 【最后203篇系列】034 使用SQLite构建简单的任务管理
  • 解决Docker 无法连接到官方镜像仓库
  • LINUX 820 shell:shift,expect
  • 49 C++ STL模板库18-类模板-pair
  • 双模式 RTMP H.265 播放器解析:从国内扩展到 Enhanced RTMP 标准的演进
  • 深入理解JVM内存结构:从字节码执行到垃圾回收的全景解析
  • 基于单片机智能加湿器/空气加湿器
  • ubuntu系统上的conda虚拟环境导出方便下次安装
  • 计算机毕设Spark项目实战:基于大数据技术的就业数据分析系统Django+Vue开发指南
  • Typescript入门-数组元组讲解
  • CSS3DRenderer+ CSS3DObject实现在 Three.js 中添加文本内容
  • 监听视频是否加载完毕
  • 次短路P2865 [USACO06NOV] Roadblocks G题解
  • KubeBlocks for ClickHouse 容器化之路
  • 【机器学习深度学习】AI大模型高并发挑战:用户负载部署策略
  • OceanBase DBA实战营2期--SQL 关键字限流学习笔记
  • Angular由一个bug说起之十八:伴随框架升级而升级ESLint遇到的问题与思考
  • 文本智能抽取:如何用NLP从海量文本中“炼“出真金?-告别无效阅读,让AI成为你的“信息炼金师
  • springboot--用户访问系统的增删改查记录
  • 静/动态库 IIC(arm) day58
  • Docker在Linux中安装与使用教程
  • 【Android】Serializable和Parcelable序列化对象:传递自定义类数据
  • 无人机抗噪模块技术概述!
  • AI + 金融领域 + 落地典型案例
  • AI +金融 = 七大核心维度+ 落地典型困难
  • 基于深度学习CenterPoint的3D目标检测部署实战
  • 《GPT-OSS 模型全解析:OpenAI 回归开源的 Mixture-of-Experts 之路》
  • 使用 FastAPI 的 WebSockets 和 Elasticsearch 来构建实时应用
  • shell脚本——搜索某个目录下带指定前缀的文件
  • 标准解读——71页2025《数字化转型管理 参考架构》【附全文阅读】