OXYGENHUB
# d2c9a5843004 oxygen-vscode / package.json
13.7 KiB · JSON · last changed Milestone 0.6: Subrepos group, Bisect and Trust views, verify, tags, add workspace, clone 1 month ago source blame history raw
bed495a9 Andy McCall ↶ 1
{
2
  "name": "oxygen-vscode",
3
  "displayName": "Oxygen",
4
  "description": "Oxygen version control: source control view, diffs, decorations, bookmarks and history for oxy repositories",
d2c9a584 Andy McCall ↶ 5
  "version": "0.6.0",
bed495a9 Andy McCall ↶ 6
  "publisher": "oxygen",
7
  "license": "MIT OR Apache-2.0",
8
  "icon": "assets/images/oxygen.png",
9
  "engines": {
10
    "vscode": "^1.137.0"
11
  },
12
  "categories": [
13
    "SCM Providers"
14
  ],
15
  "keywords": [
16
    "oxygen",
17
    "oxy",
18
    "scm",
19
    "version control"
20
  ],
21
  "activationEvents": [
71d8bf97 Andy McCall ↶ 22
    "workspaceContains:.oxy/format",
23
    "workspaceContains:.oxy",
24
    "onStartupFinished"
bed495a9 Andy McCall ↶ 25
  ],
26
  "main": "./dist/extension.js",
27
  "contributes": {
28
    "commands": [
29
      { "command": "oxygen.refresh", "title": "Refresh", "category": "Oxygen", "icon": "$(refresh)" },
30
      { "command": "oxygen.commit", "title": "Commit", "category": "Oxygen", "icon": "$(check)" },
31
      { "command": "oxygen.openFile", "title": "Open File", "category": "Oxygen", "icon": "$(go-to-file)" },
32
      { "command": "oxygen.openChanges", "title": "Open Changes", "category": "Oxygen" },
33
      { "command": "oxygen.openBaseVersion", "title": "Open Base Version", "category": "Oxygen" },
34
      { "command": "oxygen.showOutput", "title": "Show Output", "category": "Oxygen" },
810a1c53 Andy McCall ↶ 35
      { "command": "oxygen.showLog", "title": "Show Log", "category": "Oxygen" },
35d56b58 Andy McCall ↶ 36
      { "command": "oxygen.init", "title": "Initialize Repository", "category": "Oxygen" },
37
      { "command": "oxygen.discard", "title": "Discard Changes", "category": "Oxygen", "icon": "$(discard)" },
38
      { "command": "oxygen.commitSelected", "title": "Commit Selected Paths", "category": "Oxygen" },
39
      { "command": "oxygen.commitHunks", "title": "Commit Hunks…", "category": "Oxygen" },
40
      { "command": "oxygen.amend", "title": "Amend", "category": "Oxygen" },
41
      { "command": "oxygen.undo", "title": "Undo Last Operation", "category": "Oxygen", "icon": "$(discard)" },
42
      { "command": "oxygen.undoTo", "title": "Undo to Here", "category": "Oxygen", "icon": "$(discard)" },
c8f95589 Andy McCall ↶ 43
      { "command": "oxygen.refreshOperations", "title": "Refresh Operations", "category": "Oxygen", "icon": "$(refresh)" },
44
      { "command": "oxygen.switchBookmark", "title": "Switch Bookmark…", "category": "Oxygen", "icon": "$(bookmark)" },
45
      { "command": "oxygen.createBookmark", "title": "Create Bookmark…", "category": "Oxygen" },
46
      { "command": "oxygen.mergeBookmark", "title": "Merge Bookmark…", "category": "Oxygen" },
47
      { "command": "oxygen.deleteBookmark", "title": "Delete Bookmark…", "category": "Oxygen" },
48
      { "command": "oxygen.fetch", "title": "Fetch", "category": "Oxygen" },
49
      { "command": "oxygen.pull", "title": "Pull", "category": "Oxygen" },
50
      { "command": "oxygen.push", "title": "Push", "category": "Oxygen" },
51
      { "command": "oxygen.pushBookmark", "title": "Push Bookmark…", "category": "Oxygen" },
ab81294a Andy McCall ↶ 52
      { "command": "oxygen.sync", "title": "Sync", "category": "Oxygen", "icon": "$(sync)" },
53
      { "command": "oxygen.showHistory", "title": "Show History", "category": "Oxygen", "icon": "$(git-commit)" },
54
      { "command": "oxygen.fileHistory", "title": "File History…", "category": "Oxygen", "icon": "$(history)" },
55
      { "command": "oxygen.toggleBlame", "title": "Toggle Inline Blame", "category": "Oxygen" },
25103ddd Andy McCall ↶ 56
      { "command": "oxygen.showChange", "title": "Show Change", "category": "Oxygen" },
57
      { "command": "oxygen.acceptSides", "title": "Accept Conflict Sides", "category": "Oxygen" },
58
      { "command": "oxygen.keepCandidate", "title": "Keep This Candidate", "category": "Oxygen", "icon": "$(check)" },
59
      { "command": "oxygen.markResolved", "title": "Mark Resolved", "category": "Oxygen", "icon": "$(check-all)" },
d2c9a584 Andy McCall ↶ 60
      { "command": "oxygen.openConflict", "title": "Open Conflict", "category": "Oxygen" },
61
      { "command": "oxygen.openSubrepo", "title": "Open Subrepo", "category": "Oxygen" },
62
      { "command": "oxygen.updateSubrepo", "title": "Update to Pin", "category": "Oxygen", "icon": "$(cloud-download)" },
63
      { "command": "oxygen.updateSubrepos", "title": "Update Subrepos", "category": "Oxygen" },
64
      { "command": "oxygen.bisectStart", "title": "Bisect: Start", "category": "Oxygen" },
65
      { "command": "oxygen.bisectGood", "title": "Bisect: Good", "category": "Oxygen" },
66
      { "command": "oxygen.bisectBad", "title": "Bisect: Bad", "category": "Oxygen" },
67
      { "command": "oxygen.bisectSkip", "title": "Bisect: Skip", "category": "Oxygen" },
68
      { "command": "oxygen.bisectRun", "title": "Bisect: Run…", "category": "Oxygen" },
69
      { "command": "oxygen.bisectReset", "title": "Bisect: Reset", "category": "Oxygen" },
70
      { "command": "oxygen.refreshBisect", "title": "Refresh", "category": "Oxygen", "icon": "$(refresh)" },
71
      { "command": "oxygen.refreshTrust", "title": "Refresh", "category": "Oxygen", "icon": "$(refresh)" },
72
      { "command": "oxygen.verify", "title": "Verify Signatures", "category": "Oxygen" },
73
      { "command": "oxygen.tags", "title": "Tags…", "category": "Oxygen" },
74
      { "command": "oxygen.createTag", "title": "Create Tag…", "category": "Oxygen" },
75
      { "command": "oxygen.addWorkspace", "title": "Add Workspace…", "category": "Oxygen" },
76
      { "command": "oxygen.clone", "title": "Clone Repository…", "category": "Oxygen" }
810a1c53 Andy McCall ↶ 77
    ],
35d56b58 Andy McCall ↶ 78
    "views": {
79
      "scm": [
d2c9a584 Andy McCall ↶ 80
        { "id": "oxygen.operations", "name": "Oxygen Operations", "when": "oxygen.hasRepository", "icon": "assets/images/oxygen.svg", "visibility": "collapsed" },
81
        { "id": "oxygen.bisect", "name": "Oxygen Bisect", "when": "oxygen.hasRepository", "icon": "assets/images/oxygen.svg", "visibility": "collapsed" },
82
        { "id": "oxygen.trust", "name": "Oxygen Trust", "when": "oxygen.hasRepository", "icon": "assets/images/oxygen.svg", "visibility": "collapsed" }
35d56b58 Andy McCall ↶ 83
      ]
84
    },
810a1c53 Andy McCall ↶ 85
    "viewsWelcome": [
86
      {
87
        "view": "scm",
88
        "contents": "Oxygen is installed but found no oxy repository in the open folders.\n[Initialize Oxygen Repository](command:oxygen.init)\n[Show Oxygen Output](command:oxygen.showOutput)",
89
        "when": "workbenchState != empty && !oxygen.hasRepository"
90
      }
bed495a9 Andy McCall ↶ 91
    ],
92
    "menus": {
93
      "scm/title": [
94
        { "command": "oxygen.commit", "group": "navigation@1", "when": "scmProvider == oxygen" },
c8f95589 Andy McCall ↶ 95
        { "command": "oxygen.sync", "group": "navigation@2", "when": "scmProvider == oxygen" },
96
        { "command": "oxygen.refresh", "group": "navigation@3", "when": "scmProvider == oxygen" },
97
        { "command": "oxygen.pull", "group": "4_sync@1", "when": "scmProvider == oxygen" },
98
        { "command": "oxygen.push", "group": "4_sync@2", "when": "scmProvider == oxygen" },
99
        { "command": "oxygen.pushBookmark", "group": "4_sync@3", "when": "scmProvider == oxygen" },
100
        { "command": "oxygen.fetch", "group": "4_sync@4", "when": "scmProvider == oxygen" },
101
        { "command": "oxygen.switchBookmark", "group": "5_bookmarks@1", "when": "scmProvider == oxygen" },
102
        { "command": "oxygen.createBookmark", "group": "5_bookmarks@2", "when": "scmProvider == oxygen" },
103
        { "command": "oxygen.mergeBookmark", "group": "5_bookmarks@3", "when": "scmProvider == oxygen" },
104
        { "command": "oxygen.deleteBookmark", "group": "5_bookmarks@4", "when": "scmProvider == oxygen" },
d2c9a584 Andy McCall ↶ 105
        { "command": "oxygen.tags", "group": "6_more@1", "when": "scmProvider == oxygen" },
106
        { "command": "oxygen.createTag", "group": "6_more@2", "when": "scmProvider == oxygen" },
107
        { "command": "oxygen.addWorkspace", "group": "6_more@3", "when": "scmProvider == oxygen" },
108
        { "command": "oxygen.updateSubrepos", "group": "6_more@4", "when": "scmProvider == oxygen" },
109
        { "command": "oxygen.verify", "group": "6_more@5", "when": "scmProvider == oxygen" },
35d56b58 Andy McCall ↶ 110
        { "command": "oxygen.commitHunks", "group": "2_commit@1", "when": "scmProvider == oxygen" },
111
        { "command": "oxygen.amend", "group": "2_commit@2", "when": "scmProvider == oxygen" },
112
        { "command": "oxygen.undo", "group": "3_undo", "when": "scmProvider == oxygen" },
25103ddd Andy McCall ↶ 113
        { "command": "oxygen.markResolved", "group": "2_commit@3", "when": "scmProvider == oxygen" },
ab81294a Andy McCall ↶ 114
        { "command": "oxygen.showHistory", "group": "1_view@1", "when": "scmProvider == oxygen" },
115
        { "command": "oxygen.showLog", "group": "1_view@2", "when": "scmProvider == oxygen" },
116
        { "command": "oxygen.showOutput", "group": "1_view@3", "when": "scmProvider == oxygen" }
117
      ],
118
      "editor/title": [
119
        { "command": "oxygen.fileHistory", "group": "navigation@9", "when": "oxygen.hasRepository && resourceScheme == file" }
bed495a9 Andy McCall ↶ 120
      ],
ab81294a Andy McCall ↶ 121
      "editor/context": [
122
        { "command": "oxygen.toggleBlame", "group": "oxygen@1", "when": "oxygen.hasRepository && resourceScheme == file" },
123
        { "command": "oxygen.fileHistory", "group": "oxygen@2", "when": "oxygen.hasRepository && resourceScheme == file" }
124
      ],
125
      "explorer/context": [
126
        { "command": "oxygen.fileHistory", "group": "7_modification@9", "when": "oxygen.hasRepository && !explorerResourceIsFolder" }
127
      ],
bed495a9 Andy McCall ↶ 128
      "scm/resourceState/context": [
35d56b58 Andy McCall ↶ 129
        { "command": "oxygen.openFile", "group": "inline@1", "when": "scmProvider == oxygen" },
130
        { "command": "oxygen.discard", "group": "inline@2", "when": "scmProvider == oxygen" },
bed495a9 Andy McCall ↶ 131
        { "command": "oxygen.openChanges", "group": "navigation", "when": "scmProvider == oxygen" },
35d56b58 Andy McCall ↶ 132
        { "command": "oxygen.openBaseVersion", "group": "navigation", "when": "scmProvider == oxygen" },
133
        { "command": "oxygen.commitSelected", "group": "1_modification@1", "when": "scmProvider == oxygen" },
25103ddd Andy McCall ↶ 134
        { "command": "oxygen.discard", "group": "1_modification@2", "when": "scmProvider == oxygen" },
135
        { "command": "oxygen.keepCandidate", "group": "inline@0", "when": "scmProvider == oxygen && scmResourceState == candidate" },
d2c9a584 Andy McCall ↶ 136
        { "command": "oxygen.updateSubrepo", "group": "inline@0", "when": "scmProvider == oxygen && scmResourceState == subrepo" },
25103ddd Andy McCall ↶ 137
        { "command": "oxygen.keepCandidate", "group": "0_conflict", "when": "scmProvider == oxygen && scmResourceState == candidate" }
138
      ],
139
      "scm/resourceGroup/context": [
140
        { "command": "oxygen.markResolved", "group": "inline", "when": "scmProvider == oxygen && scmResourceGroup == conflicts" }
bed495a9 Andy McCall ↶ 141
      ],
35d56b58 Andy McCall ↶ 142
      "view/title": [
d2c9a584 Andy McCall ↶ 143
        { "command": "oxygen.refreshOperations", "group": "navigation", "when": "view == oxygen.operations" },
144
        { "command": "oxygen.refreshBisect", "group": "navigation", "when": "view == oxygen.bisect" },
145
        { "command": "oxygen.refreshTrust", "group": "navigation", "when": "view == oxygen.trust" }
35d56b58 Andy McCall ↶ 146
      ],
147
      "view/item/context": [
148
        { "command": "oxygen.undoTo", "group": "inline", "when": "view == oxygen.operations && viewItem == operation" }
149
      ],
bed495a9 Andy McCall ↶ 150
      "commandPalette": [
151
        { "command": "oxygen.openFile", "when": "false" },
152
        { "command": "oxygen.openChanges", "when": "false" },
35d56b58 Andy McCall ↶ 153
        { "command": "oxygen.openBaseVersion", "when": "false" },
154
        { "command": "oxygen.discard", "when": "false" },
155
        { "command": "oxygen.commitSelected", "when": "false" },
156
        { "command": "oxygen.undoTo", "when": "false" },
ab81294a Andy McCall ↶ 157
        { "command": "oxygen.refreshOperations", "when": "false" },
25103ddd Andy McCall ↶ 158
        { "command": "oxygen.showChange", "when": "false" },
159
        { "command": "oxygen.acceptSides", "when": "false" },
160
        { "command": "oxygen.keepCandidate", "when": "false" },
d2c9a584 Andy McCall ↶ 161
        { "command": "oxygen.openConflict", "when": "false" },
162
        { "command": "oxygen.openSubrepo", "when": "false" },
163
        { "command": "oxygen.updateSubrepo", "when": "false" },
164
        { "command": "oxygen.refreshBisect", "when": "false" },
165
        { "command": "oxygen.refreshTrust", "when": "false" }
bed495a9 Andy McCall ↶ 166
      ]
167
    },
168
    "configuration": {
169
      "title": "Oxygen",
170
      "properties": {
171
        "oxygen.path": {
172
          "type": "string",
173
          "default": "",
174
          "description": "Path to the oxy binary. Empty means oxy on PATH, then ~/.local/bin/oxy."
175
        },
176
        "oxygen.autoRefresh": {
177
          "type": "boolean",
178
          "default": true,
179
          "description": "Refresh the source control view when files in the workspace change."
180
        },
181
        "oxygen.decorations.enabled": {
182
          "type": "boolean",
183
          "default": true,
184
          "description": "Show status decorations in the explorer and on editor tabs."
185
        },
ab81294a Andy McCall ↶ 186
        "oxygen.inlineBlame": {
187
          "type": "boolean",
188
          "default": false,
189
          "description": "Show each line's introducing change, author and age at the end of the line."
190
        },
c8f95589 Andy McCall ↶ 191
        "oxygen.confirmSync": {
192
          "type": "boolean",
193
          "default": true,
194
          "description": "Ask before pushing."
195
        },
35d56b58 Andy McCall ↶ 196
        "oxygen.showSnapshotOperations": {
197
          "type": "boolean",
198
          "default": false,
199
          "description": "List snapshot operations in the Oxygen Operations view."
200
        },
bed495a9 Andy McCall ↶ 201
        "oxygen.statusBar.enabled": {
202
          "type": "boolean",
203
          "default": true,
204
          "description": "Show the bookmark, working copy and state in the status bar."
205
        }
206
      }
207
    }
208
  },
209
  "scripts": {
210
    "build": "esbuild src/extension.ts --bundle --platform=node --format=cjs --external:vscode --outfile=dist/extension.js --sourcemap",
211
    "watch": "npm run build -- --watch",
212
    "typecheck": "tsc --noEmit -p .",
25103ddd Andy McCall ↶ 213
    "pretest": "esbuild src/oxy.ts --bundle --platform=node --format=esm --outfile=out/oxy.mjs && esbuild src/diffutil.ts --bundle --platform=node --format=esm --outfile=out/diffutil.mjs && esbuild src/markers.ts --bundle --platform=node --format=esm --outfile=out/markers.mjs",
bed495a9 Andy McCall ↶ 214
    "test": "node --test \"test/**/*.test.mjs\"",
215
    "check": "npm run typecheck && npm run build && npm test",
216
    "package": "vsce package --no-dependencies"
217
  },
218
  "devDependencies": {
219
    "@types/node": "^24.0.0",
220
    "@types/vscode": "^1.137.0",
221
    "@vscode/vsce": "^4.0.0",
222
    "esbuild": "^0.28.0",
223
    "typescript": "^5.9.0"
224
  }
225
}