opencode-diff-viewer 1.0.8 → 1.0.9
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 +66 -57
- package/package.json +7 -4
- package/start-opencode.sh +46 -0
package/README.md
CHANGED
|
@@ -12,34 +12,9 @@
|
|
|
12
12
|
- 🔧 **tmux 集成** - 在后台 tmux 会话中运行 lumen
|
|
13
13
|
- 🤖 **LLM 工具集成** - LLM 可自动调用 `view_diff` 工具
|
|
14
14
|
|
|
15
|
-
##
|
|
16
|
-
|
|
17
|
-
### 自动安装
|
|
18
|
-
|
|
19
|
-
插件会在启动时自动检查并安装以下依赖:
|
|
20
|
-
|
|
21
|
-
1. **tmux** - 终端复用器
|
|
22
|
-
2. **lumen** - TUI diff 查看器
|
|
15
|
+
## 快速开始
|
|
23
16
|
|
|
24
|
-
###
|
|
25
|
-
|
|
26
|
-
**tmux**:
|
|
27
|
-
```bash
|
|
28
|
-
brew install tmux
|
|
29
|
-
# or
|
|
30
|
-
apt install tmux
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
**lumen**:
|
|
34
|
-
```bash
|
|
35
|
-
brew install jnsahaj/lumen/lumen
|
|
36
|
-
# or
|
|
37
|
-
cargo install lumen
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
## 安装(全局配置)
|
|
41
|
-
|
|
42
|
-
### 1. 安装 npm 包
|
|
17
|
+
### 1. 安装插件
|
|
43
18
|
|
|
44
19
|
```bash
|
|
45
20
|
# npm
|
|
@@ -52,7 +27,7 @@ pnpm add -g opencode-diff-viewer
|
|
|
52
27
|
bun add -g opencode-diff-viewer
|
|
53
28
|
```
|
|
54
29
|
|
|
55
|
-
### 2.
|
|
30
|
+
### 2. 配置 OpenCode
|
|
56
31
|
|
|
57
32
|
创建或编辑 `~/.config/opencode/opencode.json`:
|
|
58
33
|
|
|
@@ -71,38 +46,54 @@ cat > ~/.config/opencode/opencode.json << 'EOF'
|
|
|
71
46
|
EOF
|
|
72
47
|
```
|
|
73
48
|
|
|
74
|
-
### 3.
|
|
49
|
+
### 3. 启动 OpenCode(使用启动脚本)
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# 使用启动脚本自动在 tmux 中启动 OpenCode
|
|
53
|
+
opencode-diff-viewer
|
|
54
|
+
|
|
55
|
+
# 或手动运行
|
|
56
|
+
./start-opencode.sh
|
|
57
|
+
```
|
|
75
58
|
|
|
76
|
-
|
|
59
|
+
启动脚本会自动:
|
|
60
|
+
- 检查并安装 tmux(如果未安装)
|
|
61
|
+
- 在 tmux 会话中启动 OpenCode
|
|
62
|
+
- 附加到 tmux 会话
|
|
77
63
|
|
|
78
64
|
## 使用方法
|
|
79
65
|
|
|
80
|
-
###
|
|
66
|
+
### 在 OpenCode 中使用 /diff
|
|
81
67
|
|
|
82
|
-
在 OpenCode TUI
|
|
68
|
+
在 OpenCode TUI 中输入:
|
|
83
69
|
|
|
84
70
|
```bash
|
|
85
71
|
/diff # 查看所有修改文件的 diff
|
|
86
72
|
/diff src/app.ts # 查看指定文件的 diff
|
|
87
73
|
```
|
|
88
74
|
|
|
89
|
-
|
|
75
|
+
执行后,lumen 会在 tmux 会话 `opencode-diff-viewer` 中运行。
|
|
90
76
|
|
|
91
|
-
|
|
77
|
+
### 查看 lumen diff
|
|
92
78
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
执行 `/diff` 后,lumen 会在 tmux 会话中运行。要查看 lumen:
|
|
79
|
+
**新开一个终端窗口**,运行:
|
|
96
80
|
|
|
97
81
|
```bash
|
|
98
82
|
tmux attach -t opencode-diff-viewer
|
|
99
83
|
```
|
|
100
84
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
85
|
+
查看完成后,按 `Ctrl+B` 然后 `D` 分离 tmux 会话,回到 OpenCode。
|
|
86
|
+
|
|
87
|
+
## tmux 快捷键
|
|
88
|
+
|
|
89
|
+
| 快捷键 | 功能 |
|
|
90
|
+
|--------|------|
|
|
91
|
+
| `Ctrl+B` 然后 `D` | 分离会话(回到终端) |
|
|
92
|
+
| `Ctrl+B` 然后 `?` | 查看所有快捷键 |
|
|
93
|
+
| `Ctrl+C` | 终止当前会话 |
|
|
94
|
+
|
|
95
|
+
## lumen 快捷键
|
|
104
96
|
|
|
105
|
-
**lumen 快捷键**:
|
|
106
97
|
| 快捷键 | 功能 |
|
|
107
98
|
|--------|------|
|
|
108
99
|
| `j` / `k` 或 `↑` / `↓` | 上/下移动 |
|
|
@@ -111,53 +102,71 @@ tmux attach -t opencode-diff-viewer
|
|
|
111
102
|
| `e` | 在编辑器中打开文件 |
|
|
112
103
|
| `q` | 退出 |
|
|
113
104
|
|
|
114
|
-
##
|
|
105
|
+
## 前置条件
|
|
115
106
|
|
|
116
|
-
###
|
|
107
|
+
### tmux
|
|
117
108
|
|
|
118
|
-
|
|
119
|
-
|
|
109
|
+
启动脚本会自动安装 tmux。如果失败,手动安装:
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
brew install tmux
|
|
113
|
+
# or
|
|
114
|
+
apt install tmux
|
|
120
115
|
```
|
|
121
116
|
|
|
122
|
-
|
|
117
|
+
### lumen
|
|
123
118
|
|
|
124
|
-
|
|
119
|
+
插件会自动安装 lumen。如果失败,手动安装:
|
|
125
120
|
|
|
126
|
-
```
|
|
127
|
-
|
|
121
|
+
```bash
|
|
122
|
+
brew install jnsahaj/lumen/lumen
|
|
123
|
+
# or
|
|
124
|
+
cargo install lumen
|
|
128
125
|
```
|
|
129
126
|
|
|
130
|
-
|
|
127
|
+
## 故障排除
|
|
131
128
|
|
|
132
|
-
###
|
|
129
|
+
### 1. 没有修改的文件
|
|
133
130
|
|
|
134
131
|
```
|
|
135
132
|
📝 No modified files
|
|
136
133
|
```
|
|
137
134
|
|
|
138
135
|
**解决方案**: 确保文件已修改并暂存:
|
|
136
|
+
|
|
139
137
|
```bash
|
|
140
138
|
git add .
|
|
141
139
|
```
|
|
142
140
|
|
|
143
|
-
###
|
|
141
|
+
### 2. 插件未加载
|
|
142
|
+
|
|
143
|
+
检查配置:
|
|
144
144
|
|
|
145
|
-
检查全局配置文件是否正确:
|
|
146
145
|
```bash
|
|
147
146
|
cat ~/.config/opencode/opencode.json
|
|
148
147
|
```
|
|
149
148
|
|
|
149
|
+
### 3. tmux 会话丢失
|
|
150
|
+
|
|
151
|
+
重新运行启动脚本:
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
opencode-diff-viewer
|
|
155
|
+
```
|
|
156
|
+
|
|
150
157
|
## 工作原理
|
|
151
158
|
|
|
152
|
-
1.
|
|
153
|
-
2.
|
|
154
|
-
3.
|
|
155
|
-
4.
|
|
159
|
+
1. **启动脚本** - 用 tmux new-session 启动 OpenCode
|
|
160
|
+
2. **插件加载** - 在 OpenCode 启动时自动加载
|
|
161
|
+
3. **自动安装依赖** - 检查并安装 tmux 和 lumen
|
|
162
|
+
4. **执行 /diff** - 创建新的 tmux 会话 "opencode-diff-viewer"
|
|
163
|
+
5. **运行 lumen** - 在 tmux 会话中显示 diff
|
|
156
164
|
|
|
157
165
|
## 项目结构
|
|
158
166
|
|
|
159
167
|
```
|
|
160
168
|
opencode-diff-viewer/
|
|
169
|
+
├── start-opencode.sh # 启动脚本
|
|
161
170
|
├── src/
|
|
162
171
|
│ ├── index.ts # 插件主逻辑
|
|
163
172
|
│ └── command-diff.md # /diff 命令定义
|
package/package.json
CHANGED
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opencode-diff-viewer",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "OpenCode plugin for viewing git diffs using lumen TUI",
|
|
3
|
+
"version": "1.0.9",
|
|
4
|
+
"description": "OpenCode plugin for viewing git diffs using lumen TUI with tmux",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"files": [
|
|
8
8
|
"dist/",
|
|
9
|
-
"command-diff.md"
|
|
9
|
+
"command-diff.md",
|
|
10
|
+
"start-opencode.sh"
|
|
10
11
|
],
|
|
11
12
|
"scripts": {
|
|
12
|
-
"build": "tsc"
|
|
13
|
+
"build": "tsc",
|
|
14
|
+
"start": "./start-opencode.sh"
|
|
13
15
|
},
|
|
14
16
|
"keywords": [
|
|
15
17
|
"opencode",
|
|
16
18
|
"opencode-plugin",
|
|
17
19
|
"diff",
|
|
18
20
|
"lumen",
|
|
21
|
+
"tmux",
|
|
19
22
|
"git"
|
|
20
23
|
],
|
|
21
24
|
"author": "AarynLu",
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# OpenCode Diff Viewer - 启动脚本
|
|
4
|
+
# 自动在 tmux 中启动 OpenCode
|
|
5
|
+
|
|
6
|
+
set -e
|
|
7
|
+
|
|
8
|
+
SESSION_NAME="opencode"
|
|
9
|
+
|
|
10
|
+
# 检查 tmux 是否安装
|
|
11
|
+
if ! command -v tmux &> /dev/null; then
|
|
12
|
+
echo "❌ tmux 未安装,正在安装..."
|
|
13
|
+
if command -v brew &> /dev/null; then
|
|
14
|
+
brew install tmux
|
|
15
|
+
else
|
|
16
|
+
echo "❌ 请先安装 tmux: brew install tmux"
|
|
17
|
+
exit 1
|
|
18
|
+
fi
|
|
19
|
+
fi
|
|
20
|
+
|
|
21
|
+
# 检查 OpenCode 是否安装
|
|
22
|
+
if ! command -v opencode &> /dev/null; then
|
|
23
|
+
echo "❌ OpenCode 未安装"
|
|
24
|
+
exit 1
|
|
25
|
+
fi
|
|
26
|
+
|
|
27
|
+
# 检查是否有正在运行的 OpenCode 会话
|
|
28
|
+
if tmux has-session -t "$SESSION_NAME" 2>/dev/null; then
|
|
29
|
+
echo "📎 已存在 OpenCode 会话,正在附加..."
|
|
30
|
+
tmux attach-session -t "$SESSION_NAME"
|
|
31
|
+
else
|
|
32
|
+
echo "🚀 在 tmux 中启动 OpenCode..."
|
|
33
|
+
tmux new-session -d -s "$SESSION_NAME" "opencode"
|
|
34
|
+
echo "✅ OpenCode 已在 tmux 会话 '${SESSION_NAME}' 中启动"
|
|
35
|
+
echo ""
|
|
36
|
+
echo "下一步:"
|
|
37
|
+
echo " 1. 运行: tmux attach -t ${SESSION_NAME}"
|
|
38
|
+
echo " 2. 在 OpenCode 中使用 /diff 命令查看代码变更"
|
|
39
|
+
echo " 3. lumen 会在后台 tmux 会话 'opencode-diff-viewer' 中运行"
|
|
40
|
+
echo ""
|
|
41
|
+
echo "tmux 快捷键:"
|
|
42
|
+
echo " Ctrl+B 然后 D - 分离会话"
|
|
43
|
+
echo " Ctrl+B 然后 ? - 查看帮助"
|
|
44
|
+
echo ""
|
|
45
|
+
tmux attach-session -t "$SESSION_NAME"
|
|
46
|
+
fi
|