Alfred实现一键打开VSCode项目
最近使用Cursor(VSCode)写代码比较多,但每次打开项目很低效,所以想通过Alfred实现一键打开VSCode项目。调研发现VSCode对于已打开项目是有进行存储记录的,因此技术上可以做到。所以这里就花了点时间,实现了一个Alfred Workflow,来实现一键打开VSCode项目。
当前效果
下载地址: VSCode-Open Project
实现思路
访问DB
VSCode或基于VSCode的Cursor会将最近打开文件/文件夹历史存放在下面的DB文件中。
VSCode
$HOME/Library/Application\ Support/Code/User/globalStorage/state.vscdbCursor
$HOME/Library/Application\ Support/Cursor/User/globalStorage/state.vscdb
注意上述Application Support
是包含空格的,因此上述路径在命令行中使用需要\
进行转义。
查询DB数据
通过ruby查询从DB中提取最近打开的项目路径,具体是从ItemTable表的history.recentlyOpenedPathsList
字段中获取数据,并使用jq解析JSON数据以获项目列表。
- Mac内置了SQLite,因此可以直接使用。
输出为Alfred格式
有了数据这里就简单了,按照Alfred Script Filter的格式输出即可。
唤起VSCode/Cursor打开文件
这里有多个方案
- URL Scheme
- 命令行,比如
vscode
、cursor
直接打开目标文件即可。
我这里使用的是URL Scheme,因为VSCode和Cursor都支持URL Scheme。
写在最后
基于上述思路即可实现。有了这个Workflow,打开VSCode/Cursor项目就方便多了。