[AI Development Lab] 【deepin插件开发活动】全局搜索-打开IDE历史项目
Tofloor
poster avatar
150******77
deepin
2 hours ago
Author

作品简介

复刻uTools里程序员人气必备插件,同时弃坑uTools的插件打开idea的项目任务栏显示为uTools图标。插件能同时搜索读取JetBrains与VS Code 历史项目,功能跟【全局搜索】这个组件还挺搭

功能特性

  • 实时读取JetBrains与VS Code 历史项目,支持搜索,快速用IDE打开
  • 支持同时搜索两个IDE的项目
  • 支持自定义唤醒命令

JetBrains历史项目(默认显示5个,回车显示全部)
jh_all.png

JetBrains历史项目搜索
jh_search.png

VS Code 历史项目(默认显示5个,回车显示全部)
vsc_main.png

VS Code 历史项目搜索
vsc_search.png

全局搜索
mixing.png

数据来源

IDE 数据位置
VS Code 系列 历史列表(history.recentlyOpenedPathsList):1.118+ 在 ~/.vscode-shared/sharedStorage/state.vscdb,旧版本在 ~/.config/<应用>/User/globalStorage/state.vscdb;均读不到时回退 storage.json 的 Open Recent 菜单/老版 openedPathsList;另以 User/workspaceStorage/*/workspace.json 补齐
JetBrains 系列 ~/.config/JetBrains/<产品><版本>/options/recentProjects.xml(Rider 另含 recentSolutions.xml),Android Studio 在 ~/.config/Google/AndroidStudio<版本>/;同款产品只读最新版本目录(升级时历史打开记录自动迁移),最新版本无记录时才回退更旧版本
打开方式 VS Code 系优先用 PATH 命令(code/cursor/...);JetBrains 系优先匹配 desktop 文件 Exec,其次 JetBrains Toolbox ~/.local/share/JetBrains/Toolbox/apps/;最后回退文件管理器

搜索语法

输入 行为
vsc / vscode 列出全部 VS Code 系列(含 Insiders/OSS/VSCodium/Cursor)历史项目
vsc <关键词> 在 VS Code 系列历史内按项目名/路径筛选
jh / jb / jetbrains 列出全部 JetBrains 系列(含 Android Studio)历史项目
jh <关键词> 在 JetBrains 系列历史内筛选

快捷命令配置

作用域快捷命令(vsc / jh 等)可在配置文件中自定义,未定义时采用程序默认值。
配置文件位于 ~/.config/deepin/dde-grand-search-ideproject/dde-grand-search-ideproject.conf

[Shortcut]
# 别名=作用域(作用域为插件内置数据源 id:vscode / jetbrains)
code=vscode
idea=jetbrains
  • 配置只新增或重定义个别别名:未在配置中出现的默认快捷命令(vsc / vscode → VS Code 系列,jh / jb / jetbrains → JetBrains 系列)保持可用
  • 仅当显式重定义同名别名时才改变其默认行为(如 vsc=jetbrainsvsc 重定向到 JetBrains 历史)
  • 作用域值不是已注册数据源 id 时,该条配置被忽略
  • 配置文件在每次搜索时读取,修改后无需重启插件

安装方式

源码构建

git clone https://github.com/qw623577789/dde-grand-search-ide-open.git
cd dde-grand-search-ide-open

安装sudo ./script/install.sh

卸载sudo ./script/uninstall.sh

开发过程

image.png

截图_选择区域_20260828102133.png

阻塞点

1.第三方插件的结果默认被放到最后

截图_选择区域_20260828033056.png

😃 解决方式: 暂时先把其他搜索给关了(我暂时也没用那些),等待官方后期【最佳匹配】如何支持到第三方插件

2.列表默认按字符序排列,【按最近打开的项目排序】功能失效

image.png

😃 解决方式:  在 item 字段加等宽序号前缀(如 000|/project/demo,随排序后的序号),使 UI 的字符串序与插件的 MRU 序一致;用户点开时 Action 接口剥掉前缀再打开项目(无前缀的裸路径同样兼容)。

这里还是投机取巧了一些,看看后续官方怎么升级协议

致谢

欢迎试用反馈。

Reply Favorite View the author
All Replies
avatar
骑🐖追帅哥bot
Moderator
2 hours ago
#1

企业微信截图_20260813093031.png来咯来咯

Reply View the author