✨ feat(vscode): 代码阅读「未提交的更改」点文件行改成打开标准预览(和主栏一样不标差异),文件行上加「打开更改」按钮才打开对比上一次提交的预览,语言没有代码阅读的走 VS Code 自带的差异视图,删掉的文件行不挂这个按钮

This commit is contained in:
cruldra committed 2026-10-14 13:47:59 +11:00
1 parent 4b6e110a44
commit c2a13e5691
18 files changed
+211 -79

No files matched your search

+34 -19
View File
@@ -286,6 +286,12 @@
"category": "代码阅读",
"icon": "$(beaker)"
},
{
"command": "superpowers.codeReader.openChanges",
"title": "打开更改",
"category": "代码阅读",
"icon": "$(git-compare)"
},
{
"command": "superpowers.codeReader.stage",
"title": "暂存",
@@ -1381,7 +1387,7 @@
"superpowers.codeReader.copy": [
{
"command": "superpowers.codeReader.copyFileName",
"when": "view =~ /^superpowers\\.codeReader\\./ && viewItem =~ /^file( unstaged| feature)?( noted)?$/",
"when": "view =~ /^superpowers\\.codeReader\\./ && viewItem =~ /^file( unstaged| feature)?( deleted)?( noted)?$/",
"group": "copy@1"
},
{
@@ -1391,17 +1397,17 @@
},
{
"command": "superpowers.codeReader.copyFileStem",
"when": "view =~ /^superpowers\\.codeReader\\./ && viewItem =~ /^file( unstaged| feature)?( noted)?$/",
"when": "view =~ /^superpowers\\.codeReader\\./ && viewItem =~ /^file( unstaged| feature)?( deleted)?( noted)?$/",
"group": "copy@2"
},
{
"command": "superpowers.codeReader.copyRelativePath",
"when": "view =~ /^superpowers\\.codeReader\\./ && viewItem =~ /^(file( unstaged| feature)?|folder)( noted)?$/",
"when": "view =~ /^superpowers\\.codeReader\\./ && viewItem =~ /^(file( unstaged| feature)?( deleted)?|folder)( noted)?$/",
"group": "copy@3"
},
{
"command": "superpowers.codeReader.copyAbsolutePath",
"when": "view =~ /^superpowers\\.codeReader\\./ && viewItem =~ /^(file( unstaged| feature)?|folder)( noted)?$/",
"when": "view =~ /^superpowers\\.codeReader\\./ && viewItem =~ /^(file( unstaged| feature)?( deleted)?|folder)( noted)?$/",
"group": "copy@4"
}
],
@@ -2220,29 +2226,34 @@
"view/item/context": [
{
"command": "superpowers.codeReader.askPath",
"when": "view =~ /^superpowers\\.codeReader\\./ && viewItem =~ /^(file( unstaged| feature)?|folder)( noted)?$/",
"when": "view =~ /^superpowers\\.codeReader\\./ && viewItem =~ /^(file( unstaged| feature)?( deleted)?|folder)( noted)?$/",
"group": "inline@0"
},
{
"submenu": "superpowers.codeReader.copy",
"when": "view =~ /^superpowers\\.codeReader\\./ && viewItem =~ /^(file( unstaged| feature)?|folder)( noted)?$/",
"when": "view =~ /^superpowers\\.codeReader\\./ && viewItem =~ /^(file( unstaged| feature)?( deleted)?|folder)( noted)?$/",
"group": "inline@1"
},
{
"command": "superpowers.codeReader.addNote",
"when": "view =~ /^superpowers\\.codeReader\\./ && !(view == superpowers.codeReader.files && superpowers.codeReader.reviewing) && viewItem =~ /^(file( unstaged)?|folder)$/",
"when": "view =~ /^superpowers\\.codeReader\\./ && !(view == superpowers.codeReader.files && superpowers.codeReader.reviewing) && viewItem =~ /^(file( unstaged)?( deleted)?|folder)$/",
"group": "inline@2"
},
{
"command": "superpowers.codeReader.editNote",
"when": "view =~ /^superpowers\\.codeReader\\./ && !(view == superpowers.codeReader.files && superpowers.codeReader.reviewing) && viewItem =~ /^(file( unstaged)?|folder) noted$/",
"when": "view =~ /^superpowers\\.codeReader\\./ && !(view == superpowers.codeReader.files && superpowers.codeReader.reviewing) && viewItem =~ /^(file( unstaged)?( deleted)?|folder) noted$/",
"group": "inline@2"
},
{
"command": "superpowers.codeReader.stage",
"when": "view == superpowers.codeReader.uncommitted && viewItem =~ /^file unstaged( noted)?$/",
"command": "superpowers.codeReader.openChanges",
"when": "view == superpowers.codeReader.uncommitted && viewItem =~ /^file( unstaged)?( noted)?$/",
"group": "inline@3"
},
{
"command": "superpowers.codeReader.stage",
"when": "view == superpowers.codeReader.uncommitted && viewItem =~ /^file unstaged( deleted)?( noted)?$/",
"group": "inline@4"
},
{
"command": "superpowers.codeReader.addFavorite",
"when": "view =~ /^superpowers\\.codeReader\\.(files|slot\\d+)$/ && !(view == superpowers.codeReader.files && superpowers.codeReader.reviewing) && viewItem =~ /^folder( noted)?$/",
@@ -2250,7 +2261,7 @@
},
{
"command": "superpowers.codeReader.copyFileName",
"when": "view =~ /^superpowers\\.codeReader\\./ && viewItem =~ /^file( unstaged| feature)?( noted)?$/",
"when": "view =~ /^superpowers\\.codeReader\\./ && viewItem =~ /^file( unstaged| feature)?( deleted)?( noted)?$/",
"group": "copy@1"
},
{
@@ -2260,42 +2271,42 @@
},
{
"command": "superpowers.codeReader.copyFileStem",
"when": "view =~ /^superpowers\\.codeReader\\./ && viewItem =~ /^file( unstaged| feature)?( noted)?$/",
"when": "view =~ /^superpowers\\.codeReader\\./ && viewItem =~ /^file( unstaged| feature)?( deleted)?( noted)?$/",
"group": "copy@2"
},
{
"command": "superpowers.codeReader.copyRelativePath",
"when": "view =~ /^superpowers\\.codeReader\\./ && viewItem =~ /^(file( unstaged| feature)?|folder)( noted)?$/",
"when": "view =~ /^superpowers\\.codeReader\\./ && viewItem =~ /^(file( unstaged| feature)?( deleted)?|folder)( noted)?$/",
"group": "copy@3"
},
{
"command": "superpowers.codeReader.copyAbsolutePath",
"when": "view =~ /^superpowers\\.codeReader\\./ && viewItem =~ /^(file( unstaged| feature)?|folder)( noted)?$/",
"when": "view =~ /^superpowers\\.codeReader\\./ && viewItem =~ /^(file( unstaged| feature)?( deleted)?|folder)( noted)?$/",
"group": "copy@4"
},
{
"command": "superpowers.codeReader.revealInFinder",
"when": "view =~ /^superpowers\\.codeReader\\./ && isMac && viewItem =~ /^(file( unstaged| feature)?|folder)( noted)?$/",
"when": "view =~ /^superpowers\\.codeReader\\./ && isMac && viewItem =~ /^(file( unstaged| feature)?( deleted)?|folder)( noted)?$/",
"group": "fileManager"
},
{
"command": "superpowers.codeReader.revealInFileExplorer",
"when": "view =~ /^superpowers\\.codeReader\\./ && isWindows && viewItem =~ /^(file( unstaged| feature)?|folder)( noted)?$/",
"when": "view =~ /^superpowers\\.codeReader\\./ && isWindows && viewItem =~ /^(file( unstaged| feature)?( deleted)?|folder)( noted)?$/",
"group": "fileManager"
},
{
"command": "superpowers.codeReader.openContainingFolder",
"when": "view =~ /^superpowers\\.codeReader\\./ && isLinux && viewItem =~ /^(file( unstaged| feature)?|folder)( noted)?$/",
"when": "view =~ /^superpowers\\.codeReader\\./ && isLinux && viewItem =~ /^(file( unstaged| feature)?( deleted)?|folder)( noted)?$/",
"group": "fileManager"
},
{
"command": "superpowers.codeReader.addNote",
"when": "view =~ /^superpowers\\.codeReader\\./ && !(view == superpowers.codeReader.files && superpowers.codeReader.reviewing) && viewItem =~ /^(file( unstaged)?|folder)$/",
"when": "view =~ /^superpowers\\.codeReader\\./ && !(view == superpowers.codeReader.files && superpowers.codeReader.reviewing) && viewItem =~ /^(file( unstaged)?( deleted)?|folder)$/",
"group": "notes"
},
{
"command": "superpowers.codeReader.editNote",
"when": "view =~ /^superpowers\\.codeReader\\./ && !(view == superpowers.codeReader.files && superpowers.codeReader.reviewing) && viewItem =~ /^(file( unstaged)?|folder) noted$/",
"when": "view =~ /^superpowers\\.codeReader\\./ && !(view == superpowers.codeReader.files && superpowers.codeReader.reviewing) && viewItem =~ /^(file( unstaged)?( deleted)?|folder) noted$/",
"group": "notes"
},
{
@@ -2333,6 +2344,10 @@
"command": "superpowers.codeReader.showReviewTests",
"when": "superpowers.codeReader.reviewing && superpowers.codeReader.reviewTestsHidden"
},
{
"command": "superpowers.codeReader.openChanges",
"when": "false"
},
{
"command": "superpowers.codeReader.stage",
"when": "false"