| 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.3.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 |
{ "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" }, |
| 35 |
{ "command": "oxygen.showLog", "title": "Show Log", "category": "Oxygen" }, |
| 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)" }, |
| 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" }, |
| 52 |
{ "command": "oxygen.sync", "title": "Sync", "category": "Oxygen", "icon": "$(sync)" } |
| 53 |
], |
| 54 |
"views": { |
| 55 |
"scm": [ |
| 56 |
{ "id": "oxygen.operations", "name": "Oxygen Operations", "when": "oxygen.hasRepository", "icon": "assets/images/oxygen.svg", "visibility": "collapsed" } |
| 57 |
] |
| 58 |
}, |
| 59 |
"viewsWelcome": [ |
| 60 |
{ |
| 61 |
"view": "scm", |
| 62 |
"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)", |
| 63 |
"when": "workbenchState != empty && !oxygen.hasRepository" |
| 64 |
} |
| 65 |
], |
| 66 |
"menus": { |
| 67 |
"scm/title": [ |
| 68 |
{ "command": "oxygen.commit", "group": "navigation@1", "when": "scmProvider == oxygen" }, |
| 69 |
{ "command": "oxygen.sync", "group": "navigation@2", "when": "scmProvider == oxygen" }, |
| 70 |
{ "command": "oxygen.refresh", "group": "navigation@3", "when": "scmProvider == oxygen" }, |
| 71 |
{ "command": "oxygen.pull", "group": "4_sync@1", "when": "scmProvider == oxygen" }, |
| 72 |
{ "command": "oxygen.push", "group": "4_sync@2", "when": "scmProvider == oxygen" }, |
| 73 |
{ "command": "oxygen.pushBookmark", "group": "4_sync@3", "when": "scmProvider == oxygen" }, |
| 74 |
{ "command": "oxygen.fetch", "group": "4_sync@4", "when": "scmProvider == oxygen" }, |
| 75 |
{ "command": "oxygen.switchBookmark", "group": "5_bookmarks@1", "when": "scmProvider == oxygen" }, |
| 76 |
{ "command": "oxygen.createBookmark", "group": "5_bookmarks@2", "when": "scmProvider == oxygen" }, |
| 77 |
{ "command": "oxygen.mergeBookmark", "group": "5_bookmarks@3", "when": "scmProvider == oxygen" }, |
| 78 |
{ "command": "oxygen.deleteBookmark", "group": "5_bookmarks@4", "when": "scmProvider == oxygen" }, |
| 79 |
{ "command": "oxygen.commitHunks", "group": "2_commit@1", "when": "scmProvider == oxygen" }, |
| 80 |
{ "command": "oxygen.amend", "group": "2_commit@2", "when": "scmProvider == oxygen" }, |
| 81 |
{ "command": "oxygen.undo", "group": "3_undo", "when": "scmProvider == oxygen" }, |
| 82 |
{ "command": "oxygen.showLog", "group": "1_view", "when": "scmProvider == oxygen" }, |
| 83 |
{ "command": "oxygen.showOutput", "group": "1_view", "when": "scmProvider == oxygen" } |
| 84 |
], |
| 85 |
"scm/resourceState/context": [ |
| 86 |
{ "command": "oxygen.openFile", "group": "inline@1", "when": "scmProvider == oxygen" }, |
| 87 |
{ "command": "oxygen.discard", "group": "inline@2", "when": "scmProvider == oxygen" }, |
| 88 |
{ "command": "oxygen.openChanges", "group": "navigation", "when": "scmProvider == oxygen" }, |
| 89 |
{ "command": "oxygen.openBaseVersion", "group": "navigation", "when": "scmProvider == oxygen" }, |
| 90 |
{ "command": "oxygen.commitSelected", "group": "1_modification@1", "when": "scmProvider == oxygen" }, |
| 91 |
{ "command": "oxygen.discard", "group": "1_modification@2", "when": "scmProvider == oxygen" } |
| 92 |
], |
| 93 |
"view/title": [ |
| 94 |
{ "command": "oxygen.refreshOperations", "group": "navigation", "when": "view == oxygen.operations" } |
| 95 |
], |
| 96 |
"view/item/context": [ |
| 97 |
{ "command": "oxygen.undoTo", "group": "inline", "when": "view == oxygen.operations && viewItem == operation" } |
| 98 |
], |
| 99 |
"commandPalette": [ |
| 100 |
{ "command": "oxygen.openFile", "when": "false" }, |
| 101 |
{ "command": "oxygen.openChanges", "when": "false" }, |
| 102 |
{ "command": "oxygen.openBaseVersion", "when": "false" }, |
| 103 |
{ "command": "oxygen.discard", "when": "false" }, |
| 104 |
{ "command": "oxygen.commitSelected", "when": "false" }, |
| 105 |
{ "command": "oxygen.undoTo", "when": "false" }, |
| 106 |
{ "command": "oxygen.refreshOperations", "when": "false" } |
| 107 |
] |
| 108 |
}, |
| 109 |
"configuration": { |
| 110 |
"title": "Oxygen", |
| 111 |
"properties": { |
| 112 |
"oxygen.path": { |
| 113 |
"type": "string", |
| 114 |
"default": "", |
| 115 |
"description": "Path to the oxy binary. Empty means oxy on PATH, then ~/.local/bin/oxy." |
| 116 |
}, |
| 117 |
"oxygen.autoRefresh": { |
| 118 |
"type": "boolean", |
| 119 |
"default": true, |
| 120 |
"description": "Refresh the source control view when files in the workspace change." |
| 121 |
}, |
| 122 |
"oxygen.decorations.enabled": { |
| 123 |
"type": "boolean", |
| 124 |
"default": true, |
| 125 |
"description": "Show status decorations in the explorer and on editor tabs." |
| 126 |
}, |
| 127 |
"oxygen.confirmSync": { |
| 128 |
"type": "boolean", |
| 129 |
"default": true, |
| 130 |
"description": "Ask before pushing." |
| 131 |
}, |
| 132 |
"oxygen.showSnapshotOperations": { |
| 133 |
"type": "boolean", |
| 134 |
"default": false, |
| 135 |
"description": "List snapshot operations in the Oxygen Operations view." |
| 136 |
}, |
| 137 |
"oxygen.statusBar.enabled": { |
| 138 |
"type": "boolean", |
| 139 |
"default": true, |
| 140 |
"description": "Show the bookmark, working copy and state in the status bar." |
| 141 |
} |
| 142 |
} |
| 143 |
} |
| 144 |
}, |
| 145 |
"scripts": { |
| 146 |
"build": "esbuild src/extension.ts --bundle --platform=node --format=cjs --external:vscode --outfile=dist/extension.js --sourcemap", |
| 147 |
"watch": "npm run build -- --watch", |
| 148 |
"typecheck": "tsc --noEmit -p .", |
| 149 |
"pretest": "esbuild src/oxy.ts --bundle --platform=node --format=esm --outfile=out/oxy.mjs", |
| 150 |
"test": "node --test \"test/**/*.test.mjs\"", |
| 151 |
"check": "npm run typecheck && npm run build && npm test", |
| 152 |
"package": "vsce package --no-dependencies" |
| 153 |
}, |
| 154 |
"devDependencies": { |
| 155 |
"@types/node": "^24.0.0", |
| 156 |
"@types/vscode": "^1.137.0", |
| 157 |
"@vscode/vsce": "^4.0.0", |
| 158 |
"esbuild": "^0.28.0", |
| 159 |
"typescript": "^5.9.0" |
| 160 |
} |
| 161 |
} |