Skip to content

About

VS Code and IntelliJ IDEA shortcut import for Lithe (community plugin)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

Editor Shortcut Import for Lithe

为 Lithe 的「导入 IDE 设置」提供 VS Code 和 IntelliJ IDEA 快捷键来源。这是一个社区插件, 原先随 Lithe 主程序一起分发,现在独立发布。

English: Adds VS Code and IntelliJ IDEA shortcut sources to Lithe's Import IDE settings. A community plugin that used to ship inside the Lithe app and is now released on its own.

支持的来源 / Sources

来源 读取的文件
VS Code、VS Code Insiders、Cursor(含 Profile) keybindings.json
IntelliJ IDEA options/keymap.xml 和选中的 keymaps/*.xml
  • 只映射 Lithe 已有且语义一致的命令。条件规则、连续按键、VS Code 移除规则不会变成全局快捷键,未映射的命令会被跳过。
  • IDEA 支持 $default、Mac OS X、Mac OS X 10.5+ 内置方案和有界的自定义继承。没有 keymap.xml 时按 macOS 默认方案 Mac OS X 10.5+ 处理; 没有 keybindings.json 时只使用 VS Code 的参考默认键。
  • 写入前由 Lithe 检查快捷键冲突;有冲突时整次导入不写入。

前置条件 / Requirements

  • macOS 版 Lithe 的 preview 开发版:支持插件诊断日志(litheLogging 1),并且不再内置快捷键导入插件。稳定版 Lithe 目前无法启动本插件。
  • 如果 Lithe 仍内置 Editor Shortcut Import,再安装本插件会出现两个提供方,导入时提示「多个插件都可以从此来源导入快捷键」。

安装 / Install

这个版本是预发布,暂不收录在 Lithe Store。

  1. 下载 Releases 里的 editor-keymap-import-<版本>-darwin.zip,核对同名 .sha256。
  2. 在 Lithe 中打开 设置 → 插件,点右上角 ⚙,选择 从磁盘安装插件…,选中这个 zip,确认权限后安装。
  3. 打开 导入 IDE 设置,点 重新扫描,在预览里勾选 键盘快捷键 后导入。
权限 用途
backend.launch 运行插件包里的解析程序 bin/editor-keymap-import
keymaps.provide 向 Lithe 提供 VS Code 和 IDEA 两个快捷键来源
keymaps.readSelectedSources 读取你在预览中选中来源的只读快照

插件拿不到任意路径。Lithe 只在你选中来源并开始导入时启动后端,通过短期只读快照提供清单里声明的文件;导入结束后撤销快照,最后一次请求结束时停止后端。 默认的来源发现只读元数据,不启动插件。

诊断日志 / Diagnostic logs

后端用 Lithe 插件 Rust SDK 编写,SDK 与宿主协商 litheLogging 1, 在每次请求的结果边界自动上报成功或失败。插件代码不写日志,不调用日志接口,也不自建日志文件。

进程 角色 通道
bin/editor-keymap-import backend plugins/io.github.lithe-idea.editor-keymap-import/host
操作 结果 级别 事件 类别标识
lithe/keymap/import 导入完成 INFO plugins.operation.finished —
lithe/keymap/import 来源无法读取或解析(编码错误、格式无效、超出大小或数量上限、XML 带 DOCTYPE、继承循环等) ERROR plugins.operation.failed internal_error
lithe/keymap/import 用户取消 不记录 — —
  • 导入是一次明确的用户操作,不属于高频操作,没有关闭成功记录。
  • 没有降级或恢复路径:缺少 keybindings.json 或 keymap.xml 属于预期的缺失,按默认值处理,不记录;不支持的命令按设计跳过,不算降级。
  • 记录只带操作名、耗时和类别标识,不含快捷键内容、来源路径或错误正文;返回给 Lithe 的错误信息同样不含这些内容。
  • 不启动上游程序,没有上游日志级别、大小上限或轮转设置。

排障时使用 Lithe 的独立日志窗口和诊断导出。日志文件不得写入插件安装目录。

开发 / Development

plugin.json                    # 插件清单
backend/                       # Rust 后端(src/)和单元测试(tests/)
scripts/package.mjs            # 构建 Apple silicon / Intel 通用二进制,ad hoc 签名,打包 dist/editor-keymap-import-<版本>-darwin.zip
scripts/e2e.mjs                # 用真实 Lithe Rust Core 运行插件包
e2e/keymap_import_plugin.rs    # 端到端测试:导入、失败、日志事实、包不被修改
e2e/lithe-core.json            # 最近一次通过端到端测试的 Lithe Core 版本
.github/workflows/ci.yml       # PR 和 main 上检查、打包、端到端测试
.github/workflows/release.yml  # 推送 v<版本> 标签时发布 GitHub Release(预发布)
cd backend
cargo fmt --all -- --check
cargo clippy --locked --all-targets -- -D warnings
cargo test --locked
cd ..
node scripts/package.mjs
node scripts/e2e.mjs --source https://github.com/1lck/Lithe-IDEA.git --ref preview

SDK 以 Git 依赖固定在 backend/Cargo.toml 中的 commit。插件开发资料见 lithe-plugin-docs。 发布新版本:递增 plugin.json 的 version,在 docs/releases/v<版本>.md 写发布说明,推送对应的 v<版本> 标签。已发布的包不会被替换。

许可 / License

Apache-2.0。第三方依赖的许可见 NOTICE.md 和 licenses/。

About

VS Code and IntelliJ IDEA shortcut import for Lithe (community plugin)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages