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.
- package/README.md +130 -42
- package/package.json +10 -2
package/README.md
CHANGED
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
# OpenCode Diff Viewer Plugin
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/opencode-diff-viewer)
|
|
4
|
+
[](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
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
- 自动在新终端窗口中打开
|
|
10
|
+
- ✨ **自动安装 lumen** - 插件会自动检测并安装 lumen 依赖
|
|
11
|
+
- 🚀 **一键查看 diff** - 使用 `/diff` 命令快速查看代码变更
|
|
12
|
+
- 🔧 **智能终端适配** - 自动检测操作系统,打开新终端窗口展示 diff
|
|
13
|
+
- 🤖 **LLM 工具集成** - LLM 可自动调用 `view_diff` 工具
|
|
12
14
|
|
|
13
15
|
## 安装
|
|
14
16
|
|
|
15
|
-
###
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
43
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
97
|
+
### 1. lumen 未安装
|
|
63
98
|
|
|
64
99
|
```
|
|
65
|
-
|
|
66
|
-
/diff src/app.ts # 查看指定文件的 diff
|
|
100
|
+
❌ lumen is not installed
|
|
67
101
|
```
|
|
68
102
|
|
|
69
|
-
|
|
103
|
+
**解决方案**: 手动安装 lumen(见上方前置条件)
|
|
70
104
|
|
|
71
|
-
|
|
105
|
+
### 2. 没有修改的文件
|
|
72
106
|
|
|
73
|
-
|
|
107
|
+
```
|
|
108
|
+
📝 No modified files to show diff for
|
|
109
|
+
```
|
|
74
110
|
|
|
75
|
-
|
|
111
|
+
**解决方案**: 确保文件已修改并暂存:
|
|
112
|
+
```bash
|
|
113
|
+
git add .
|
|
114
|
+
```
|
|
76
115
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
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
|
-
##
|
|
140
|
+
## 开发
|
|
141
|
+
|
|
142
|
+
### 本地开发
|
|
86
143
|
|
|
87
144
|
```bash
|
|
88
|
-
#
|
|
89
|
-
|
|
145
|
+
# 克隆项目
|
|
146
|
+
git clone https://github.com/AruNi-01/opencode-diff-viewer.git
|
|
147
|
+
cd opencode-diff-viewer
|
|
90
148
|
|
|
91
|
-
#
|
|
92
|
-
npm
|
|
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
|
-
|
|
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.
|
|
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
|
},
|