Alfred实现一键打开VSCode项目

最近使用Cursor(VSCode)写代码比较多,但每次打开项目很低效,所以想通过Alfred实现一键打开VSCode项目。调研发现VSCode对于已打开项目是有进行存储记录的,因此技术上可以做到。所以这里就花了点时间,实现了一个Alfred Workflow,来实现一键打开VSCode项目。

当前效果

https://github.com/alanhe421/alfred-workflows/blob/master/vscode-open-project/screenshots/screenshot1.gif?raw=true

下载地址: VSCode-Open Project

实现思路

访问DB

VSCode或基于VSCode的Cursor会将最近打开文件/文件夹历史存放在下面的DB文件中。

  • VSCode
    $HOME/Library/Application\ Support/Code/User/globalStorage/state.vscdb

  • Cursor
    $HOME/Library/Application\ Support/Cursor/User/globalStorage/state.vscdb

注意上述Application Support是包含空格的,因此上述路径在命令行中使用需要\进行转义。

查询DB数据

通过ruby查询从DB中提取最近打开的项目路径,具体是从ItemTable表的history.recentlyOpenedPathsList字段中获取数据,并使用jq解析JSON数据以获项目列表。

  1. Mac内置了SQLite,因此可以直接使用。

输出为Alfred格式

有了数据这里就简单了,按照Alfred Script Filter的格式输出即可。

唤起VSCode/Cursor打开文件

这里有多个方案

  1. URL Scheme
  2. 命令行,比如vscodecursor直接打开目标文件即可。

我这里使用的是URL Scheme,因为VSCode和Cursor都支持URL Scheme。

写在最后

基于上述思路即可实现。有了这个Workflow,打开VSCode/Cursor项目就方便多了。