VS Code智能上下文菜单排序优化实践
2025-04-28 05:33:51作者:柯茵沙
微软VS Code开发团队近期针对编辑器中的"添加上下文"快速选择菜单(quick pick)进行了重要优化。这项改进源于开发者在使用过程中发现的一个用户体验问题:当扩展程序贡献过多工具/资源选项时,会导致菜单项冗长难用。
问题背景
原始实现采用简单的字母排序逻辑,这带来了两个显著问题:
- 某些扩展可能贡献大量工具,占据整个菜单空间
- 常用功能被淹没在列表中,影响操作效率
解决方案设计
开发团队经过深入讨论,确定了分级分类的优化方案:
- 高频功能置顶:将最常用的功能如"代码库"、"获取网页"等固定显示在顶部
- 最近使用优先:其余选项按使用频率排序,提高操作效率
- 智能推荐机制(远期目标):基于AI分析当前工作环境(打开的文件、已附加的上下文等)进行个性化推荐
技术实现细节
最终实现的菜单结构采用了分层分类的设计:
----------------------------------
[最近使用/置顶项1]
[最近使用/置顶项2]
[最近使用/置顶项3]
----------------------------------
工具类
文件类
文件夹类
问题类
提示类
具体优化包括:
- 将"文件夹"选项扩展为"文件与文件夹",提高功能可发现性
- 对工具类选项进行二次分类(Copilot、扩展、内置等)
- 保持"打开编辑器"选项在顶部,但避免过度影响其他选项可见性
设计考量
团队在实现过程中权衡了多个因素:
- 列表长度控制:未将最近文件置顶,因其可能产生过长的列表
- 功能可发现性:通过分类和重命名(如"文件与文件夹")提高功能可见性
- 性能考量:复用现有命令面板(cmd+p)的机制,保证响应速度
未来方向
虽然当前方案已显著改善用户体验,团队仍在探索更智能的排序策略:
- 记录并优先显示最近附加的上下文而不仅是打开的文件
- 开发基于工作场景的智能推荐算法
- 优化图标系统,使不同类型(工具/附件)的视觉区分更明显
这项优化体现了VS Code团队对开发者体验的持续关注,通过精细的交互设计和智能排序算法,使复杂功能保持简单易用的特性。
登录后查看全文
热门项目推荐
相关项目推荐
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00- QQwen3-Coder-Next2026年2月4日,正式发布的Qwen3-Coder-Next,一款专为编码智能体和本地开发场景设计的开源语言模型。Python00
xw-cli实现国产算力大模型零门槛部署,一键跑通 Qwen、GLM-4.7、Minimax-2.1、DeepSeek-OCR 等模型Go06
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin08
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00
项目优选
收起
deepin linux kernel
C
27
11
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
538
3.76 K
暂无简介
Dart
774
192
Ascend Extension for PyTorch
Python
343
406
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.34 K
756
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
1.07 K
97
React Native鸿蒙化仓库
JavaScript
303
356
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
337
180
AscendNPU-IR
C++
86
142
openJiuwen agent-studio提供零码、低码可视化开发和工作流编排,模型、知识库、插件等各资源管理能力
TSX
987
249