OXYGENHUB
# f6bda77ecb9f oxygen-vscode / package.json
18.1 KiB · JSON · last changed 0.7.0: exported API with repository handles, change events and remote providers; Open on Remote commands 1 month ago source blame history raw
1
{
2
  "name": "oxygen-vscode",
3
  "displayName": "Oxygen",
4
  "description": "Oxygen version control: source control view, diffs, decorations, bookmarks and history for oxy repositories",
5
  "version": "0.7.0",
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": [
22
    "workspaceContains:.oxy/format",
23
    "workspaceContains:.oxy",
24
    "onStartupFinished"
25
  ],
26
  "main": "./dist/extension.js",
27
  "contributes": {
28
    "commands": [
29
      {
30
        "command": "oxygen.refresh",
31
        "title": "Refresh",
32
        "category": "Oxygen",
33
        "icon": "$(refresh)"
34
      },
35
      {
36
        "command": "oxygen.commit",
37
        "title": "Commit",
38
        "category": "Oxygen",
39
        "icon": "$(check)"
40
      },
41
      {
42
        "command": "oxygen.openFile",
43
        "title": "Open File",
44
        "category": "Oxygen",
45
        "icon": "$(go-to-file)"
46
      },
47
      {
48
        "command": "oxygen.openChanges",
49
        "title": "Open Changes",
50
        "category": "Oxygen"
51
      },
52
      {
53
        "command": "oxygen.openBaseVersion",
54
        "title": "Open Base Version",
55
        "category": "Oxygen"
56
      },
57
      {
58
        "command": "oxygen.showOutput",
59
        "title": "Show Output",
60
        "category": "Oxygen"
61
      },
62
      {
63
        "command": "oxygen.showLog",
64
        "title": "Show Log",
65
        "category": "Oxygen"
66
      },
67
      {
68
        "command": "oxygen.init",
69
        "title": "Initialize Repository",
70
        "category": "Oxygen"
71
      },
72
      {
73
        "command": "oxygen.discard",
74
        "title": "Discard Changes",
75
        "category": "Oxygen",
76
        "icon": "$(discard)"
77
      },
78
      {
79
        "command": "oxygen.commitSelected",
80
        "title": "Commit Selected Paths",
81
        "category": "Oxygen"
82
      },
83
      {
84
        "command": "oxygen.commitHunks",
85
        "title": "Commit Hunks\u2026",
86
        "category": "Oxygen"
87
      },
88
      {
89
        "command": "oxygen.amend",
90
        "title": "Amend",
91
        "category": "Oxygen"
92
      },
93
      {
94
        "command": "oxygen.undo",
95
        "title": "Undo Last Operation",
96
        "category": "Oxygen",
97
        "icon": "$(discard)"
98
      },
99
      {
100
        "command": "oxygen.undoTo",
101
        "title": "Undo to Here",
102
        "category": "Oxygen",
103
        "icon": "$(discard)"
104
      },
105
      {
106
        "command": "oxygen.refreshOperations",
107
        "title": "Refresh Operations",
108
        "category": "Oxygen",
109
        "icon": "$(refresh)"
110
      },
111
      {
112
        "command": "oxygen.switchBookmark",
113
        "title": "Switch Bookmark\u2026",
114
        "category": "Oxygen",
115
        "icon": "$(bookmark)"
116
      },
117
      {
118
        "command": "oxygen.createBookmark",
119
        "title": "Create Bookmark\u2026",
120
        "category": "Oxygen"
121
      },
122
      {
123
        "command": "oxygen.mergeBookmark",
124
        "title": "Merge Bookmark\u2026",
125
        "category": "Oxygen"
126
      },
127
      {
128
        "command": "oxygen.deleteBookmark",
129
        "title": "Delete Bookmark\u2026",
130
        "category": "Oxygen"
131
      },
132
      {
133
        "command": "oxygen.fetch",
134
        "title": "Fetch",
135
        "category": "Oxygen"
136
      },
137
      {
138
        "command": "oxygen.pull",
139
        "title": "Pull",
140
        "category": "Oxygen"
141
      },
142
      {
143
        "command": "oxygen.push",
144
        "title": "Push",
145
        "category": "Oxygen"
146
      },
147
      {
148
        "command": "oxygen.pushBookmark",
149
        "title": "Push Bookmark\u2026",
150
        "category": "Oxygen"
151
      },
152
      {
153
        "command": "oxygen.sync",
154
        "title": "Sync",
155
        "category": "Oxygen",
156
        "icon": "$(sync)"
157
      },
158
      {
159
        "command": "oxygen.showHistory",
160
        "title": "Show History",
161
        "category": "Oxygen",
162
        "icon": "$(git-commit)"
163
      },
164
      {
165
        "command": "oxygen.fileHistory",
166
        "title": "File History\u2026",
167
        "category": "Oxygen",
168
        "icon": "$(history)"
169
      },
170
      {
171
        "command": "oxygen.toggleBlame",
172
        "title": "Toggle Inline Blame",
173
        "category": "Oxygen"
174
      },
175
      {
176
        "command": "oxygen.showChange",
177
        "title": "Show Change",
178
        "category": "Oxygen"
179
      },
180
      {
181
        "command": "oxygen.acceptSides",
182
        "title": "Accept Conflict Sides",
183
        "category": "Oxygen"
184
      },
185
      {
186
        "command": "oxygen.keepCandidate",
187
        "title": "Keep This Candidate",
188
        "category": "Oxygen",
189
        "icon": "$(check)"
190
      },
191
      {
192
        "command": "oxygen.markResolved",
193
        "title": "Mark Resolved",
194
        "category": "Oxygen",
195
        "icon": "$(check-all)"
196
      },
197
      {
198
        "command": "oxygen.openConflict",
199
        "title": "Open Conflict",
200
        "category": "Oxygen"
201
      },
202
      {
203
        "command": "oxygen.openSubrepo",
204
        "title": "Open Subrepo",
205
        "category": "Oxygen"
206
      },
207
      {
208
        "command": "oxygen.updateSubrepo",
209
        "title": "Update to Pin",
210
        "category": "Oxygen",
211
        "icon": "$(cloud-download)"
212
      },
213
      {
214
        "command": "oxygen.updateSubrepos",
215
        "title": "Update Subrepos",
216
        "category": "Oxygen"
217
      },
218
      {
219
        "command": "oxygen.bisectStart",
220
        "title": "Bisect: Start",
221
        "category": "Oxygen"
222
      },
223
      {
224
        "command": "oxygen.bisectGood",
225
        "title": "Bisect: Good",
226
        "category": "Oxygen"
227
      },
228
      {
229
        "command": "oxygen.bisectBad",
230
        "title": "Bisect: Bad",
231
        "category": "Oxygen"
232
      },
233
      {
234
        "command": "oxygen.bisectSkip",
235
        "title": "Bisect: Skip",
236
        "category": "Oxygen"
237
      },
238
      {
239
        "command": "oxygen.bisectRun",
240
        "title": "Bisect: Run\u2026",
241
        "category": "Oxygen"
242
      },
243
      {
244
        "command": "oxygen.bisectReset",
245
        "title": "Bisect: Reset",
246
        "category": "Oxygen"
247
      },
248
      {
249
        "command": "oxygen.refreshBisect",
250
        "title": "Refresh",
251
        "category": "Oxygen",
252
        "icon": "$(refresh)"
253
      },
254
      {
255
        "command": "oxygen.refreshTrust",
256
        "title": "Refresh",
257
        "category": "Oxygen",
258
        "icon": "$(refresh)"
259
      },
260
      {
261
        "command": "oxygen.verify",
262
        "title": "Verify Signatures",
263
        "category": "Oxygen"
264
      },
265
      {
266
        "command": "oxygen.tags",
267
        "title": "Tags\u2026",
268
        "category": "Oxygen"
269
      },
270
      {
271
        "command": "oxygen.createTag",
272
        "title": "Create Tag\u2026",
273
        "category": "Oxygen"
274
      },
275
      {
276
        "command": "oxygen.addWorkspace",
277
        "title": "Add Workspace\u2026",
278
        "category": "Oxygen"
279
      },
280
      {
281
        "command": "oxygen.clone",
282
        "title": "Clone Repository\u2026",
283
        "category": "Oxygen"
284
      },
285
      {
286
        "command": "oxygen.openOnRemote",
287
        "title": "Open on Remote",
288
        "category": "Oxygen",
289
        "icon": "$(link-external)"
290
      },
291
      {
292
        "command": "oxygen.openChangeOnRemote",
293
        "title": "Open Change on Remote",
294
        "category": "Oxygen"
295
      }
296
    ],
297
    "views": {
298
      "scm": [
299
        {
300
          "id": "oxygen.operations",
301
          "name": "Oxygen Operations",
302
          "when": "oxygen.hasRepository",
303
          "icon": "assets/images/oxygen.svg",
304
          "visibility": "collapsed"
305
        },
306
        {
307
          "id": "oxygen.bisect",
308
          "name": "Oxygen Bisect",
309
          "when": "oxygen.hasRepository",
310
          "icon": "assets/images/oxygen.svg",
311
          "visibility": "collapsed"
312
        },
313
        {
314
          "id": "oxygen.trust",
315
          "name": "Oxygen Trust",
316
          "when": "oxygen.hasRepository",
317
          "icon": "assets/images/oxygen.svg",
318
          "visibility": "collapsed"
319
        }
320
      ]
321
    },
322
    "viewsWelcome": [
323
      {
324
        "view": "scm",
325
        "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)",
326
        "when": "workbenchState != empty && !oxygen.hasRepository"
327
      }
328
    ],
329
    "menus": {
330
      "scm/title": [
331
        {
332
          "command": "oxygen.commit",
333
          "group": "navigation@1",
334
          "when": "scmProvider == oxygen"
335
        },
336
        {
337
          "command": "oxygen.sync",
338
          "group": "navigation@2",
339
          "when": "scmProvider == oxygen"
340
        },
341
        {
342
          "command": "oxygen.refresh",
343
          "group": "navigation@3",
344
          "when": "scmProvider == oxygen"
345
        },
346
        {
347
          "command": "oxygen.pull",
348
          "group": "4_sync@1",
349
          "when": "scmProvider == oxygen"
350
        },
351
        {
352
          "command": "oxygen.push",
353
          "group": "4_sync@2",
354
          "when": "scmProvider == oxygen"
355
        },
356
        {
357
          "command": "oxygen.pushBookmark",
358
          "group": "4_sync@3",
359
          "when": "scmProvider == oxygen"
360
        },
361
        {
362
          "command": "oxygen.fetch",
363
          "group": "4_sync@4",
364
          "when": "scmProvider == oxygen"
365
        },
366
        {
367
          "command": "oxygen.switchBookmark",
368
          "group": "5_bookmarks@1",
369
          "when": "scmProvider == oxygen"
370
        },
371
        {
372
          "command": "oxygen.createBookmark",
373
          "group": "5_bookmarks@2",
374
          "when": "scmProvider == oxygen"
375
        },
376
        {
377
          "command": "oxygen.mergeBookmark",
378
          "group": "5_bookmarks@3",
379
          "when": "scmProvider == oxygen"
380
        },
381
        {
382
          "command": "oxygen.deleteBookmark",
383
          "group": "5_bookmarks@4",
384
          "when": "scmProvider == oxygen"
385
        },
386
        {
387
          "command": "oxygen.tags",
388
          "group": "6_more@1",
389
          "when": "scmProvider == oxygen"
390
        },
391
        {
392
          "command": "oxygen.createTag",
393
          "group": "6_more@2",
394
          "when": "scmProvider == oxygen"
395
        },
396
        {
397
          "command": "oxygen.addWorkspace",
398
          "group": "6_more@3",
399
          "when": "scmProvider == oxygen"
400
        },
401
        {
402
          "command": "oxygen.updateSubrepos",
403
          "group": "6_more@4",
404
          "when": "scmProvider == oxygen"
405
        },
406
        {
407
          "command": "oxygen.verify",
408
          "group": "6_more@5",
409
          "when": "scmProvider == oxygen"
410
        },
411
        {
412
          "command": "oxygen.commitHunks",
413
          "group": "2_commit@1",
414
          "when": "scmProvider == oxygen"
415
        },
416
        {
417
          "command": "oxygen.amend",
418
          "group": "2_commit@2",
419
          "when": "scmProvider == oxygen"
420
        },
421
        {
422
          "command": "oxygen.undo",
423
          "group": "3_undo",
424
          "when": "scmProvider == oxygen"
425
        },
426
        {
427
          "command": "oxygen.markResolved",
428
          "group": "2_commit@3",
429
          "when": "scmProvider == oxygen"
430
        },
431
        {
432
          "command": "oxygen.showHistory",
433
          "group": "1_view@1",
434
          "when": "scmProvider == oxygen"
435
        },
436
        {
437
          "command": "oxygen.showLog",
438
          "group": "1_view@2",
439
          "when": "scmProvider == oxygen"
440
        },
441
        {
442
          "command": "oxygen.showOutput",
443
          "group": "1_view@3",
444
          "when": "scmProvider == oxygen"
445
        },
446
        {
447
          "command": "oxygen.openOnRemote",
448
          "when": "scmProvider == oxygen",
449
          "group": "navigation@9"
450
        }
451
      ],
452
      "editor/title": [
453
        {
454
          "command": "oxygen.fileHistory",
455
          "group": "navigation@9",
456
          "when": "oxygen.hasRepository && resourceScheme == file"
457
        }
458
      ],
459
      "editor/context": [
460
        {
461
          "command": "oxygen.toggleBlame",
462
          "group": "oxygen@1",
463
          "when": "oxygen.hasRepository && resourceScheme == file"
464
        },
465
        {
466
          "command": "oxygen.fileHistory",
467
          "group": "oxygen@2",
468
          "when": "oxygen.hasRepository && resourceScheme == file"
469
        }
470
      ],
471
      "explorer/context": [
472
        {
473
          "command": "oxygen.fileHistory",
474
          "group": "7_modification@9",
475
          "when": "oxygen.hasRepository && !explorerResourceIsFolder"
476
        }
477
      ],
478
      "scm/resourceState/context": [
479
        {
480
          "command": "oxygen.openFile",
481
          "group": "inline@1",
482
          "when": "scmProvider == oxygen"
483
        },
484
        {
485
          "command": "oxygen.discard",
486
          "group": "inline@2",
487
          "when": "scmProvider == oxygen"
488
        },
489
        {
490
          "command": "oxygen.openChanges",
491
          "group": "navigation",
492
          "when": "scmProvider == oxygen"
493
        },
494
        {
495
          "command": "oxygen.openBaseVersion",
496
          "group": "navigation",
497
          "when": "scmProvider == oxygen"
498
        },
499
        {
500
          "command": "oxygen.commitSelected",
501
          "group": "1_modification@1",
502
          "when": "scmProvider == oxygen"
503
        },
504
        {
505
          "command": "oxygen.discard",
506
          "group": "1_modification@2",
507
          "when": "scmProvider == oxygen"
508
        },
509
        {
510
          "command": "oxygen.keepCandidate",
511
          "group": "inline@0",
512
          "when": "scmProvider == oxygen && scmResourceState == candidate"
513
        },
514
        {
515
          "command": "oxygen.updateSubrepo",
516
          "group": "inline@0",
517
          "when": "scmProvider == oxygen && scmResourceState == subrepo"
518
        },
519
        {
520
          "command": "oxygen.keepCandidate",
521
          "group": "0_conflict",
522
          "when": "scmProvider == oxygen && scmResourceState == candidate"
523
        }
524
      ],
525
      "scm/resourceGroup/context": [
526
        {
527
          "command": "oxygen.markResolved",
528
          "group": "inline",
529
          "when": "scmProvider == oxygen && scmResourceGroup == conflicts"
530
        }
531
      ],
532
      "view/title": [
533
        {
534
          "command": "oxygen.refreshOperations",
535
          "group": "navigation",
536
          "when": "view == oxygen.operations"
537
        },
538
        {
539
          "command": "oxygen.refreshBisect",
540
          "group": "navigation",
541
          "when": "view == oxygen.bisect"
542
        },
543
        {
544
          "command": "oxygen.refreshTrust",
545
          "group": "navigation",
546
          "when": "view == oxygen.trust"
547
        }
548
      ],
549
      "view/item/context": [
550
        {
551
          "command": "oxygen.undoTo",
552
          "group": "inline",
553
          "when": "view == oxygen.operations && viewItem == operation"
554
        }
555
      ],
556
      "commandPalette": [
557
        {
558
          "command": "oxygen.openFile",
559
          "when": "false"
560
        },
561
        {
562
          "command": "oxygen.openChanges",
563
          "when": "false"
564
        },
565
        {
566
          "command": "oxygen.openBaseVersion",
567
          "when": "false"
568
        },
569
        {
570
          "command": "oxygen.discard",
571
          "when": "false"
572
        },
573
        {
574
          "command": "oxygen.commitSelected",
575
          "when": "false"
576
        },
577
        {
578
          "command": "oxygen.undoTo",
579
          "when": "false"
580
        },
581
        {
582
          "command": "oxygen.refreshOperations",
583
          "when": "false"
584
        },
585
        {
586
          "command": "oxygen.showChange",
587
          "when": "false"
588
        },
589
        {
590
          "command": "oxygen.acceptSides",
591
          "when": "false"
592
        },
593
        {
594
          "command": "oxygen.keepCandidate",
595
          "when": "false"
596
        },
597
        {
598
          "command": "oxygen.openConflict",
599
          "when": "false"
600
        },
601
        {
602
          "command": "oxygen.openSubrepo",
603
          "when": "false"
604
        },
605
        {
606
          "command": "oxygen.updateSubrepo",
607
          "when": "false"
608
        },
609
        {
610
          "command": "oxygen.refreshBisect",
611
          "when": "false"
612
        },
613
        {
614
          "command": "oxygen.refreshTrust",
615
          "when": "false"
616
        }
617
      ],
618
      "editor/title/context": [
619
        {
620
          "command": "oxygen.openOnRemote",
621
          "when": "oxygen.hasRemoteProvider",
622
          "group": "oxygen"
623
        }
624
      ]
625
    },
626
    "configuration": {
627
      "title": "Oxygen",
628
      "properties": {
629
        "oxygen.path": {
630
          "type": "string",
631
          "default": "",
632
          "description": "Path to the oxy binary. Empty means oxy on PATH, then ~/.local/bin/oxy."
633
        },
634
        "oxygen.autoRefresh": {
635
          "type": "boolean",
636
          "default": true,
637
          "description": "Refresh the source control view when files in the workspace change."
638
        },
639
        "oxygen.decorations.enabled": {
640
          "type": "boolean",
641
          "default": true,
642
          "description": "Show status decorations in the explorer and on editor tabs."
643
        },
644
        "oxygen.inlineBlame": {
645
          "type": "boolean",
646
          "default": false,
647
          "description": "Show each line's introducing change, author and age at the end of the line."
648
        },
649
        "oxygen.confirmSync": {
650
          "type": "boolean",
651
          "default": true,
652
          "description": "Ask before pushing."
653
        },
654
        "oxygen.showSnapshotOperations": {
655
          "type": "boolean",
656
          "default": false,
657
          "description": "List snapshot operations in the Oxygen Operations view."
658
        },
659
        "oxygen.statusBar.enabled": {
660
          "type": "boolean",
661
          "default": true,
662
          "description": "Show the bookmark, working copy and state in the status bar."
663
        }
664
      }
665
    }
666
  },
667
  "scripts": {
668
    "build": "esbuild src/extension.ts --bundle --platform=node --format=cjs --external:vscode --outfile=dist/extension.js --sourcemap",
669
    "watch": "npm run build -- --watch",
670
    "typecheck": "tsc --noEmit -p .",
671
    "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 && esbuild src/api.ts --bundle --platform=node --format=esm --outfile=out/api.mjs",
672
    "test": "node --test \"test/**/*.test.mjs\"",
673
    "check": "npm run typecheck && npm run build && npm test",
674
    "package": "vsce package --no-dependencies"
675
  },
676
  "devDependencies": {
677
    "@types/node": "^24.0.0",
678
    "@types/vscode": "^1.137.0",
679
    "@vscode/vsce": "^4.0.0",
680
    "esbuild": "^0.28.0",
681
    "typescript": "^5.9.0"
682
  }
683
}