Skip to content

feat(index): 收录 mise 工具链提供方 0.2.1 预发布插件 - #33

Merged
xiaoyumuxi merged 2 commits into
Lithe-IDEA:mainfrom
FxRayHughes:add-mise-0.2.0
Nov 2, 2026
Merged

xiaoyumuxi merged 2 commits into
Lithe-IDEA:mainfrom
FxRayHughes:add-mise-0.2.0

Conversation

@FxRayHughes

@FxRayHughes FxRayHughes commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

改动类型

  • 收录新插件
  • 新增版本
  • 修改插件信息
  • 撤回版本 / 下架插件(请写明原因)
  • 脚本、CI 或文档

插件

  • 插件 ID:io.github.fxrayhughes.mise
  • 来源仓库:https://github.com/FxRayHughes/lithe-plugin-mise
  • 版本 / Release 链接(都是预发布):
    • v0.2.1:资产 mise-0.2.1-darwin.zip,SHA-256 635366955e73f64ef6a821e3af9bee043c8c1ac871e6a44ddc3d43aae4823755
    • v0.2.0:资产 mise-0.2.0-darwin.zip,SHA-256 2b088c02aec5707b78e3da4de82ad45a8d22e8c8010a8a01afa26947b8561f82
    • 两个包都同时支持 darwin-arm64 与 darwin-x64(universal 二进制)。

插件介绍

mise 是常用的多语言版本管理器。装了这个插件后,Lithe 会自动知道:

  • mise 装了哪些工具:JDK、Node.js、Maven、Gradle、Go、Python、pnpm 的已安装版本和安装路径,不用在设置里手动添加。
  • 项目要用哪个版本:读项目里的 mise.toml、.tool-versions(以及 .java-version、.nvmrc、.python-version、.sdkmanrc 等兼容文件),子目录可以有自己的版本。
  • 全局默认版本:读 ~/.config/mise/config.toml。

这些结果出现在 设置 → 构建、执行、部署 → 运行环境 / 环境来源。修改版本文件后 Lithe 会自动重新读取,不需要手动刷新。

工作方式:

  • 插件是 Lithe 工具链框架(Lithe-IDEA #1581)里的一个提供方:后端 bin/mise-provider(Rust)回答 toolchains/query。哪个工具用哪个版本、能不能用,仍由 Lithe 按工具定义校验后决定。
  • 后端只离线运行只读的 mise ls、mise bin-paths(默认设 MISE_OFFLINE=1),不会安装、下载或 mise trust 任何东西。
  • 设置项两个:mise 路径(留空自动查找 ~/.local/bin/mise、Homebrew 和 PATH)和 离线查询(默认开启)。
  • 权限:backend.launch、toolchains.provide;requires:backend: 2、serverProcess: 1、settings: 2、toolchainProviders: 1(逐项复制自包内 plugin.json)。

说明

  • 只改 lithe-plugin-index.json:按 id 字母序插入,0.2.1 在前、0.2.0 在后。
  • 这是预发布:toolchainProviders 宿主能力还没进入稳定版 Lithe(声明在 Lithe-IDEA #1558),所以 Release 标为 pre-release,track-releases 不会自动追踪,按 docs/publishing.md 手工收录。描述里已写明需要 Lithe preview 开发版;稳定版会提示“需要更新 Lithe”,不会装出坏插件。等宿主能力进入稳定版后,插件仓库会发正式版本,之后由 bot 自动追踪。
  • 0.2.1 相对 0.2.0 的修复:Lithe 发出的查询请求 ID 是十进制字符串,toolchains.decodeReply 按数字 ID 匹配答复;0.2.1 用对应的数字作答,修复了界面上“mise 未回答:无法读取答复”(插件 PR:Answer Lithe's string query IDs with numbers (0.2.1) FxRayHughes/lithe-plugin-mise#2)。0.2.0 保留,不改它的 downloadURL / sha256。
  • 没有收录旧的 0.1.0:它依赖的 toolchainSources 能力最终没有进入 Lithe(之前的 feat(index): 收录 mise 0.1.0(需要 toolchainSources 宿主能力) #32 已关闭)。
  • 图标固定到插件仓库提交 ced89b3 的 raw 文件;标签里的 tool 让它在 README 总览里归入“工具”。README 总览由 sync-readme 工作流在合并后重新生成。
  • 状态:
    • 插件仓库 CI、Release 工作流(重新测试并打包)通过。
    • 在按最新 preview 加 #1558 宿主能力构建的 Lithe 开发版里完成了界面验收:从 Store 安装 / 更新到 0.2.1;示例项目根目录显示 JDK 17(mise.toml),sub 目录显示 JDK 21(.tool-versions),全局默认 25;把 mise.toml 改成 21 后界面自动更新,改回 17 后恢复。

自检

  • 我是该插件的作者或维护者(或已获得授权)
  • plugin.json 的 vendor.signatureRequirement 为 "none",ID 不在 dev.lithe.*
  • 已在本地运行 node scripts/validate-index.mjs --verify-archives(10 个插件通过,mise@0.2.1、mise@0.2.0 已下载校验),node --test scripts/store.test.mjs 46 个通过
  • 插件要运行的程序都已在 plugin.json 中声明,并在仓库 README 中说明(包内只有 bin/mise-provider,它调用用户电脑上的 mise)
  • 没有修改已发布版本的 downloadURL / sha256,没有删除历史版本

0.2.1 修复真实 Lithe 读不到答复的问题:Lithe 发出的 toolchains/query 请求 ID 是十进制字符串,后端现在用对应的数字作答。0.2.0 保留。
@FxRayHughes FxRayHughes changed the title feat(index): 收录 mise 0.2.0 预发布(io.github.fxrayhughes.mise) feat(index): 收录 mise 0.2.1 / 0.2.0 预发布(io.github.fxrayhughes.mise) Nov 2, 2026
@FxRayHughes FxRayHughes changed the title feat(index): 收录 mise 0.2.1 / 0.2.0 预发布(io.github.fxrayhughes.mise) feat(index): 收录 mise 工具链提供方 0.2.1 预发布插件 Nov 2, 2026
@FxRayHughes
FxRayHughes marked this pull request as ready for review November 2, 2026 08:03
@xiaoyumuxi

Copy link
Copy Markdown
Collaborator

你这个能跑起来么,可以给我看看设置的效果么

@FxRayHughes

Copy link
Copy Markdown
Contributor Author

@xiaoyumuxi 能跑起来,下面是在 Lithe 里实际运行的截图。

运行环境:Lithe 最新 preview(04b1fb84)的开发构建,加上 1lck/Lithe-IDEA#1558 的宿主能力(本地补丁,未提交);插件用的就是这次收录的 0.2.1 发布包。#1558 合入前,稳定版 Lithe 的插件市场会显示“需要更新 Lithe”,装不上,所以这次按预发布收录。

示例项目:

  • 根目录 mise.toml 写 java = "17";
  • 子目录 sub/.tool-versions 写 java 21;
  • 全局 mise 配置(~/.config/mise/config.toml)是 Java 25。

整个过程没有在 Lithe 里手动添加任何 JDK 路径。

1. 设置 → 运行环境:项目根目录

自动识别为 JDK 17.0.2,版本文件是 mise.toml。

项目根目录:JDK 17.0.2,来自 mise.toml

2. 子目录 sub:展开解析链

sub 用 .tool-versions 要求的 21.0.2。展开后可以看到 Lithe 的判断顺序:

  • 固定值:无;
  • 项目要求:首个命中;
  • 全局默认:mise 25 → 25.0.2,来自 ~/.config/mise/config.toml;
  • 自动检测。

版本管理器一栏显示 mise。

sub 目录:JDK 21.0.2 来自 .tool-versions,全局为 mise 的 25.0.2

3. 修改版本文件后自动更新

把根目录 mise.toml 改成 java = "21",不点刷新,页面自动变成 21.0.2:

改成 21 后自动显示 21.0.2

改回 17 后又变回 17.0.2:

改回 17 后恢复为 17.0.2

4. 设置 → 环境来源

版本管理器里列出 mise · JDK · 2 个版本文件。

环境来源:mise · JDK · 2 个版本文件

5. 插件市场

从插件市场更新到 0.2.1:

插件市场:已安装版本 0.2.1


补充:

  • 目前界面里只有 JDK 一项,因为只有 Java Support 带 toolDefinitions(同样来自 #1558)。插件本身也会回答 Node、Maven、Gradle、Go、Python、pnpm,等对应插件声明了工具定义后就会显示。

  • 插件自己的设置页(设置 → 插件 → 已安装 → mise → 设置)只有两项:

    • 「mise 路径」:默认留空,自动查找;
    • 「离线查询」:默认开。

    这页这次没有截图,需要的话我再补。

  • 截图也放在插件仓库 README 的「效果」一节:https://github.com/FxRayHughes/lithe-plugin-mise#效果

@xiaoyumuxi
xiaoyumuxi merged commit 3de19d2 into Lithe-IDEA:main Nov 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants