opencode-diff-viewer 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +130 -42
  2. package/package.json +10 -2
package/README.md CHANGED
@@ -1,18 +1,20 @@
1
1
  # OpenCode Diff Viewer Plugin
2
2
 
3
+ [![npm version](https://img.shields.io/npm/v/opencode-diff-viewer.svg)](https://www.npmjs.com/package/opencode-diff-viewer)
4
+ [![npm downloads](https://img.shields.io/npm/dm/opencode-diff-viewer.svg)](https://www.npmjs.com/package/opencode-diff-viewer)
5
+
3
6
  一个 OpenCode 插件,使用 [lumen](https://github.com/jnsahaj/lumen) 提供美观的 TUI diff 查看功能。
4
7
 
5
- ## 功能
8
+ ## 功能特性
6
9
 
7
- - `/diff` 命令查看所有修改的文件
8
- - `/diff <file>` 命令查看指定文件的 diff
9
- - LLM 可调用的 `view_diff` 工具
10
- - 自动安装 lumen(如果未安装)
11
- - 自动在新终端窗口中打开
10
+ - **自动安装 lumen** - 插件会自动检测并安装 lumen 依赖
11
+ - 🚀 **一键查看 diff** - 使用 `/diff` 命令快速查看代码变更
12
+ - 🔧 **智能终端适配** - 自动检测操作系统,打开新终端窗口展示 diff
13
+ - 🤖 **LLM 工具集成** - LLM 可自动调用 `view_diff` 工具
12
14
 
13
15
  ## 安装
14
16
 
15
- ### 方式一:npm 安装(推荐)
17
+ ### 1. 安装 npm
16
18
 
17
19
  ```bash
18
20
  npm install opencode-diff-viewer
@@ -22,7 +24,9 @@ pnpm add opencode-diff-viewer
22
24
  yarn add opencode-diff-viewer
23
25
  ```
24
26
 
25
- 然后在 `opencode.json` 中添加插件:
27
+ ### 2. 配置 opencode.json
28
+
29
+ 在项目的 `opencode.json` 中添加插件:
26
30
 
27
31
  ```json
28
32
  {
@@ -30,68 +34,152 @@ yarn add opencode-diff-viewer
30
34
  }
31
35
  ```
32
36
 
33
- ### 方式二:本地开发
37
+ ### 3. 重启 OpenCode
34
38
 
35
- 将插件复制到你的项目:
39
+ 安装完成后重启 OpenCode TUI,插件会自动加载。
36
40
 
37
- ```bash
38
- # 复制插件文件
39
- cp -r node_modules/opencode-diff-viewer/dist .opencode/plugin/diff-viewer
40
- cp node_modules/opencode-diff-viewer/command-diff.md .opencode/command/diff.md
41
+ ## 使用方法
41
42
 
42
- # 或使用 npm link
43
- npm link opencode-diff-viewer
43
+ ### 通过命令
44
+
45
+ 在 OpenCode TUI 中直接输入:
46
+
47
+ ```bash
48
+ /diff # 查看所有修改文件的 diff
49
+ /diff src/app.ts # 查看指定文件的 diff
50
+ /diff src/ # 查看目录下所有文件的 diff
44
51
  ```
45
52
 
53
+ ### 通过 LLM
54
+
55
+ LLM 可以自动调用 `view_diff` 工具来展示代码变更。无需手动操作,LLM 会根据对话上下文智能判断何时需要展示 diff。
56
+
57
+ ## lumen 快捷键
58
+
59
+ 在 lumen diff 查看器中:
60
+
61
+ | 快捷键 | 功能 |
62
+ |--------|------|
63
+ | `j` / `k` 或 `↑` / `↓` | 上/下移动 |
64
+ | `{` / `}` | 跳转到上/下一个变更块 |
65
+ | `Tab` | 切换侧边栏 |
66
+ | `e` | 在编辑器中打开文件 |
67
+ | `q` | 退出 |
68
+
46
69
  ## 前置条件
47
70
 
48
- 插件会自动安装 lumen。如果自动安装失败,需要手动安装:
71
+ ### lumen 安装
72
+
73
+ 插件会自动尝试安装 lumen,如果自动安装失败,需要手动安装:
49
74
 
75
+ **macOS / Linux (Homebrew)**:
50
76
  ```bash
51
- # macOS / Linux (Homebrew)
52
77
  brew install jnsahaj/lumen/lumen
78
+ ```
53
79
 
54
- # 或使用 Cargo (Rust)
80
+ **Cargo (Rust)**:
81
+ ```bash
55
82
  cargo install lumen
56
83
  ```
57
84
 
58
- ## 使用方法
85
+ **Windows**:
86
+ 下载 [lumen releases](https://github.com/jnsahaj/lumen/releases) 并添加到 PATH
87
+
88
+ ### Git 仓库
89
+
90
+ 确保项目是 git 仓库,并且有修改的文件:
91
+ ```bash
92
+ git status # 查看修改的文件
93
+ ```
59
94
 
60
- ### 通过 / 命令
95
+ ## 故障排除
61
96
 
62
- OpenCode TUI 中输入:
97
+ ### 1. lumen 未安装
63
98
 
64
99
  ```
65
- /diff # 查看所有修改文件的 diff
66
- /diff src/app.ts # 查看指定文件的 diff
100
+ lumen is not installed
67
101
  ```
68
102
 
69
- ### 通过 LLM 工具调用
103
+ **解决方案**: 手动安装 lumen(见上方前置条件)
70
104
 
71
- LLM 可以自动调用 `view_diff` 工具来展示代码变更。
105
+ ### 2. 没有修改的文件
72
106
 
73
- ## lumen 快捷键
107
+ ```
108
+ 📝 No modified files to show diff for
109
+ ```
74
110
 
75
- lumen diff 查看器中:
111
+ **解决方案**: 确保文件已修改并暂存:
112
+ ```bash
113
+ git add .
114
+ ```
76
115
 
77
- | 快捷键 | 功能 |
78
- |--------|------|
79
- | `j/k` 或 `↑/↓` | 导航 |
80
- | `{` / `}` | 跳转到上/下一个 hunk |
81
- | `Tab` | 切换侧边栏 |
82
- | `e` | 在编辑器中打开文件 |
83
- | `q` | 退出 |
116
+ ### 3. 新终端未打开
117
+
118
+ 检查终端模拟器是否支持:
119
+ - macOS: Terminal.app
120
+ - Linux: gnome-terminal xterm
121
+
122
+ ## 工作原理
123
+
124
+ 1. **检测修改文件** - 插件使用 `git diff` 获取已暂存和未暂存的修改
125
+ 2. **启动 lumen** - 在新终端窗口中运行 `lumen diff --file <files>`
126
+ 3. **自动安装** - 插件启动时检查 lumen,未安装则自动安装
127
+
128
+ ## 项目结构
129
+
130
+ ```
131
+ opencode-diff-viewer/
132
+ ├── src/
133
+ │ ├── index.ts # 插件主逻辑
134
+ │ └── command-diff.md # /diff 命令定义
135
+ ├── dist/ # 编译输出
136
+ ├── package.json # npm 配置
137
+ └── tsconfig.json # TypeScript 配置
138
+ ```
84
139
 
85
- ## 发布到 npm
140
+ ## 开发
141
+
142
+ ### 本地开发
86
143
 
87
144
  ```bash
88
- # 登录 npm
89
- npm login
145
+ # 克隆项目
146
+ git clone https://github.com/AruNi-01/opencode-diff-viewer.git
147
+ cd opencode-diff-viewer
90
148
 
91
- # 发布包
92
- npm publish
149
+ # 安装依赖
150
+ npm install
151
+
152
+ # 构建
153
+ npm run build
154
+
155
+ # 链接本地包
156
+ npm link
157
+
158
+ # 在测试项目中
159
+ npm link opencode-diff-viewer
160
+ ```
161
+
162
+ ### 发布新版本
93
163
 
94
- # 发布新版本
95
- npm version patch|minor|major
164
+ ```bash
165
+ # 更新版本号
166
+ npm version patch # 1.0.0 -> 1.0.1
167
+ npm version minor # 1.0.0 -> 1.1.0
168
+ npm version major # 1.0.0 -> 2.0.0
169
+
170
+ # 发布
96
171
  npm publish
97
172
  ```
173
+
174
+ ## 依赖
175
+
176
+ - [lumen](https://github.com/jnsahaj/lumen) - TUI Diff 查看器
177
+ - [@opencode-ai/plugin](https://www.npmjs.com/package/@opencode-ai/plugin) - OpenCode 插件 SDK
178
+
179
+ ## License
180
+
181
+ MIT
182
+
183
+ ## 作者
184
+
185
+ [AarynLu](https://github.com/AruNi-01)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-diff-viewer",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "OpenCode plugin for viewing git diffs using lumen TUI",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -18,8 +18,16 @@
18
18
  "lumen",
19
19
  "git"
20
20
  ],
21
- "author": "",
21
+ "author": "AarynLu",
22
22
  "license": "MIT",
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "https://github.com/AruNi-01/opencode-diff-viewer"
26
+ },
27
+ "bugs": {
28
+ "url": "https://github.com/AruNi-01/opencode-diff-viewer/issues"
29
+ },
30
+ "homepage": "https://github.com/AruNi-01/opencode-diff-viewer#readme",
23
31
  "peerDependencies": {
24
32
  "@opencode-ai/plugin": "^1.0.0"
25
33
  },