• 插件发布
  • [插件][书签与历史记录] 3.10.0 Jetbrains Toolbox 适配啦

GitHub package.json version
GitHub stars
GitHub license

在 uTools 中快速查询历史项目并打开,支持 JetBrains、Visual Studio Code 等,支持的软件有很多,后续也会继续增加其他软件,目前以我常用的软件为主。

为了玩一下自定义模板插件的设置界面,所以造了个轮子,uTools 插件市场也有同类型的插件,也非常好用,比如「Quick Open」,「JetBrains」,「QuickJet」😛

关于自定义模板插件设置界面的细节,可以参照这篇文章

插件图标来源
Icons made by Freepik from www.flaticon.com

软件支持列表

如果你希望插件能够支持更多的软件,请通过 uTools「历史记录」插件适配软件建议 向我提出。

支持列表仅从 2021 年开始,此前版本如果由于历史数据的结构变化导致不可用,将不再支持。

表中的 JetBrains 即为 JetBrains 旗下的所有独立 IDE,如 IDEA、PyCharm 等,不再一一列举。

源码地址

Github

源码镜像

Gitee

使用说明

软件设置

使用 Setting 关键字打开插件设置界面,可以根据自己拥有的软件设置相应的参数,目前需要设置的参数主要有两个:保存历史记录的数据文件和软件的可执行程序路径

已 Visual Studio Code 为例,需要配置配置文件所在路径和可执行程序所在路径,插件会解析配置文件获得历史记录,并通过可执行文件打开历史记录。
vscode example

有的软件不需要可执行文件路径,是因为其历史记录通常是绑定了默认的打开方式,不需要指定可执行文件去打开,如浏览器相关的书签和历史记录。
chrome example

有的软件连配置文件也不需要,这一般出现在系统特有的软件上,比如 Safari 在 macOS 上的配置文件的路径是固定的,不需要额外配置。
safari example

目前大部分软件的相关配置文件的路径在插件内的说明里有详细提及,下面针对一些特殊情况进行说明。

Browser History

目前所有支持的浏览器历史记录获取都需要通过 sqlite3 进行,由于 uTools 平台对二进制文件打包的限制,也为了避免不同浏览器采用的 sqlite 版本不同,所以需要用户自行下载 sqlite 命令行作为可执行程序路径。

sqlite 命令行可以在 sqlite 官网下载到:官网下载页面,需要自行下载对应平台的命令行程序。
sqlite3 download help

JetBrains

如果使用 JetBrains Toolbox 安装的话,默认路径会在类似C:\Users\用户名\AppData\Local\JetBrains\Toolbox\apps\软件名\ch-0\版本号,具体的可以在 JetBrains
Toolbox 的设置里找到。

Typora

由于无法在 macOS 上找到 Typora 的配置数据文件,所以目前只支持 Windows 和 Linux,有知道的小伙伴和告诉我。

Sublime Text

注意 Sublime Text 单独提供了命令行程序,不是程序本体,Windows 对应subl.exe,macOS 和 Linux 对应subl

Visual Studio

如果是在官网使用官方下载器安装,那么数据文件应该在以下位置,目前方案是依据最新的 Visual Studio 2019 开发,暂不考虑过往版本
C:\Users\Administrator\AppData\Local\Microsoft\VisualStudio\版本号\ApplicationPrivateSettings.xml

Obsidian

Obsidian 没有开放获取文件列表的相关接口,解析配置文件只能得到 Vaults,所以具体的文件列表其实是遍历 Vault 对应的目录下的md结尾的文件,由于是遍历文件夹,所以性能可能会因为 Vault 中文件的数量太大而变差。

搜索

插件支持使用关键字在加载出来的书签记录和历史记录中进行搜索,方便查找打开,同时,关键字支持拼音全拼匹配
pingyin search

插件配置

插件提供一些配置项来控制插件的一些行为,方便不同的用户使用习惯。
plugin setting

语言设置

目前提供了三种模式:自动、中文、English,尽管 uTools 可能没有国外用户,但也还是支持了 English,万一呢,对吧。
english mode

过滤不存在的文件

有一些软件的历史记录数据是定时更新的,即不是实时更新,也可能是出于其他的考虑,在源文件被删除之后,历史记录里面不会立刻将文件不存在的记录删除,所以会造成历史记录数据的冗余,为了避免过多的干扰,
可以通过这个选项将文件已经不存在的历史数据删除,这个选项只对那些历史记录是文件的软件生效,比如 wps,vscode 等。
file filter

获取 favicon

在浏览器适配的书签和历史记录里会用到,打开这个选项可以在线加载网址对应的图标
favicon enable
favicon disable

获取文件图标

和 favicon 类似,打开这个选项可以在结果列表里获取文件图标
fileicon enable
fileicon disable

模糊匹配

插件默认使用的是准确匹配,即无论是输入文件名还是拼音,都需要一字不漏输入才能匹配成功,有时候确实模糊匹配会更省事,所以插件提供了模糊匹配的功能,但需要注意的是,插件的模糊匹配功能是通过文本相似度计算得到的,所以模糊匹配下会导致结果变多,难以确定唯一的结果,如果影响了搜索体验,还是使用精确匹配更加顺手。

目前模糊匹配还处于测试阶段,还有待优化。

特别说明

未知路径变量 Jetbrains 系列软件无法正常打开项目

JetBrains 的配置文件里面可能存在内置变量,如$APPLICATION_CONFIG_DIR$$MODULE_DIR$$PROJECT_DIR$$APPLICATION_HOME_DIR$等,
这些变量插件无法主动获取,如果配置文件中存在类似的变量,将无法正常通过插件打开项目,暂时还没有好的方式能够解决这个问题,如果有朋友知道如何获取这些变量,可以告诉我适配到插件里。

m1 mac 无法正常打开项目

关于 m1 的 mac,由于 mac 现在分为 x86 和 arm 两种 CPU 架构,所以当下原生支持 m1 的软件,如 JetBrains,都会在程序内置两套可执行程序作为入口,所以在 m1 mac
下如果按下面的文档设置可执行程序路径,会导致报错且无法执行,所以对于 m1 的 mac 需要单独配置属于 arm 架构的可执行程序路径,由于我没有 m1 的 mac,所以无法调试,需要大家自己尝试.
目前已知的是,JetBrains 安装完成后会在/usr/local/bin下设置一个软链链接到正确的入口,如/usr/local/bin/idea,所以可以尝试将可执行程序的路径设置为这个,同样的,Visual Studio
Code 也有类似的东西。

适配360浏览器的书签和历史记录

360 安全浏览器因为安全,所以相关数据是加密过的,无法适配。

将所有支持的软件的记录合并在一个列表里同时查询

最开始只支持 jetbrains 和 vscode 的时候就有了,但相当一部分软件,比如 vscode 的历史记录没有最后打开时间,vscode 的 remote folder 没有具体的本地文件,
不同软件的历史记录放在一起就只能按字母排序,不能按最后操作时间来展示,而且每个软件的获取方式差异很大,同时获取有明显的短板效应,比如 xcode 和 office 都是靠命令行解析,等待时间相对 vscode 来说非常长,
整体体验下载感觉特别鸡肋,综合考虑之下就去掉了,只在同软件之间做了聚合,比如 office 或 jetbrains。

开发说明

由于 uTools 特有的人工审核机制,官方要求模板插件的代码必须要可读,也就是源码,所以无法直接使用 webpack 等打包工具直接进行打包,因此该项目源码必须通过直接执行build.sh来生成打包. build.sh
里做的事情也很简单,将 ts 源码单独编译成 js 代码,再通过复制粘贴在 dist 文件夹下组合成需要目录结构。

Windows 下提供了build.ps1作为构建脚本,需要注意的是,这个是 powershell 脚本,不是 bat 脚本。

希望 uTools 官方能早日摆脱这种代码要求,走进现代 js 开发模式 (

lanyuanxiaoyao 将标题更改为 「[插件][我的项目]快速查看打开历史项目」。
    7 天 后

    dataGrip的recentProjects.xml文件配置正确, 但是打不开项目..xml文件中entryKey包含$APPLICATION_CONFIG_DIR$, 会让路径读取失败..

    于丶人间酩酊

    我明白你说的这个变量出现在配置文件里面导致打不开, 我想问的是怎么安装或者怎么操作, 才会让 datagrip 出现在配置文件里面使用这个变量的情况, 我现在一直用着以来, 或者新装 datagrip 也都没有出现这个变量

    于丶人间酩酊

    我之前搜索了一下, 没有能在网上搜索到关于$APPLICATION_CONFIG_DIR$这个变量的获取方法, 其实配置文件里面默认会使用$USER_HOME$, 这个变量明显是指用户目录, nodejs 也提供了获取这个变量的 API, 所以直接在插件里处理了这个变量, JetBrains 还有$MODULE_DIR$, $PROJECT_DIR$, $APPLICATION_HOME_DIR$等内置的变量, 这些变量应该被称为路径变量, 但和自定义的路径变量不一样, 我猜测这些默认内置的变量是安装时生成的, 或者是在产品启动的时候才生成, 只有 JetBrains 自己的配置或者脚本才能引用, 插件没办法从外部获取到这些变量的内容, 所以无法替换这些变量.

    关于这些内置变量的获取, 目前没有好的处理方法, 如果你发现了什么方案, 欢迎分享.

    JetBrains 系列的软件 建议在命令行安装命令 比如 PHPstorm 在软件里面安转 /usr/local/bin/pstorm 这个命令,然后插件指定这个启动,这样不会出现无法启动的情况,

    楼主的方法在新款的m1 设备上,系统为11.4 以上, 可能出现无法启动,会提示不是有效的命令,

    leqq00

    感谢提示, 我抽空在文档里补充这个问题, 这个其实是因为现有原生支持 m1 mac 的应用都提供了两套可执行文件分别应对x86和arm的架构, 支持m1架构的可执行文件可能在另外的目录里, 我没有m1的设备所以忽略这点了, 而/usr/local/bin下的命令我不清楚现在 jetbrans 产品会不会预装, 插件本身可以指定任何一个可用的可执行文件, 你直接在可执行程序路径选中/usr/local/bin/pstorm也是可以用的

      目前的软件支持列表

      • JetBrains 全家桶
      • Android Studio
      • beta Visual Studio (Windows)
      • Visual Studio Code
      • Sublime Text
      • Xcode
      • beta WPS Office International for mac
      • beta Office 2019 (Windows)
      • beta Office 2019 For Mac

      软件的适配暂告一段落, beta 标记的意思是这个软件的历史记录的适配并没有广泛测试, 或者是获取历史记录的方式不一定靠谱, 毕竟商业软件没有百分百开放历史记录的数据, 获取历史记录的时候用了一些野路子, 和 IDEA, Visual Studio Code 这些开放的编程软件没得比, 有一些软件我使用的次数不多, 因此接口不稳定也是情理之中, 如果使用遇到问题, 可以积极反馈

      后面希望能把 Adobe 系列的历史记录搞进来, 这个插件就基本完满了

      如果这个插件对你有所帮助, 可以在插件市场里给个好评支持一下, 嘿嘿(

        20 天 后

        更新有点大, 你忍一下

        增加浏览器书签和历史记录的支持, 以及 Typora

        • Firefox
        • Chromium
        • Google Chrome
        • Microsoft Edge
        • QQ Browser
        • Maxthon
        • Opera
        • Brave
        • CentBrowser
        • Yandex
        • 猎豹浏览器
        • Safari
        • 深度浏览器

        增加插件功能细节的设置

        查询结果里忽略文件不存在的项


        指定是否获取文件图标以提高性能


        指定是否获取网站 favicon 增加美观


        增加一个提交软件适配的问卷

        如果你有软件希望插件能支持的, 可以通过这里提供相关信息

        Linux 支持

          lanyuanxiaoyao 将标题更改为 「[插件][我的项目]新增浏览器书签和历史记录以及 Linux 版本」。

            有点厉害,vscode 那个打开会卡好一会,能不能搞成异步?

            dto

            是异步的, 我这反应都挺快的, 冷启动的话看 uTools 了, 你可以试试取消「隐藏即退出插件」, 不是冷启动的话, 我这是秒开

            你那儿是插件加载完成之后进入了再卡的吗

            • dto 回复了此帖

              lanyuanxiaoyao

              这个位置回车的时候,感觉没反应,1-2秒项目打开之后 uTools 才隐藏,等待的时候有一种是不是出了什么问题的感觉😓
              image_1631181248654.png

              dto

              原来你说的是这里,这个地方是同步的,命令行执行成功了才隐藏utools,vscode的反应时间就这么长,不在这里搞异步,是考虑命令行执行失败的话,还可以弹出错误信息,你也知道,utools没有日志,直接后台启动然后马上隐藏退出插件的话,就真的是出了啥问题也不知道了,观感上的话,可以按回车的时候弹一个“正在打开”的通知,意思一下

                闽ICP备18007474号