{ "name": "oxygen-vscode", "displayName": "Oxygen", "description": "Oxygen version control: source control view, diffs, decorations, bookmarks and history for oxy repositories", "version": "0.3.0", "publisher": "oxygen", "license": "MIT OR Apache-2.0", "icon": "assets/images/oxygen.png", "engines": { "vscode": "^1.137.0" }, "categories": [ "SCM Providers" ], "keywords": [ "oxygen", "oxy", "scm", "version control" ], "activationEvents": [ "workspaceContains:.oxy/format", "workspaceContains:.oxy", "onStartupFinished" ], "main": "./dist/extension.js", "contributes": { "commands": [ { "command": "oxygen.refresh", "title": "Refresh", "category": "Oxygen", "icon": "$(refresh)" }, { "command": "oxygen.commit", "title": "Commit", "category": "Oxygen", "icon": "$(check)" }, { "command": "oxygen.openFile", "title": "Open File", "category": "Oxygen", "icon": "$(go-to-file)" }, { "command": "oxygen.openChanges", "title": "Open Changes", "category": "Oxygen" }, { "command": "oxygen.openBaseVersion", "title": "Open Base Version", "category": "Oxygen" }, { "command": "oxygen.showOutput", "title": "Show Output", "category": "Oxygen" }, { "command": "oxygen.showLog", "title": "Show Log", "category": "Oxygen" }, { "command": "oxygen.init", "title": "Initialize Repository", "category": "Oxygen" }, { "command": "oxygen.discard", "title": "Discard Changes", "category": "Oxygen", "icon": "$(discard)" }, { "command": "oxygen.commitSelected", "title": "Commit Selected Paths", "category": "Oxygen" }, { "command": "oxygen.commitHunks", "title": "Commit Hunks…", "category": "Oxygen" }, { "command": "oxygen.amend", "title": "Amend", "category": "Oxygen" }, { "command": "oxygen.undo", "title": "Undo Last Operation", "category": "Oxygen", "icon": "$(discard)" }, { "command": "oxygen.undoTo", "title": "Undo to Here", "category": "Oxygen", "icon": "$(discard)" }, { "command": "oxygen.refreshOperations", "title": "Refresh Operations", "category": "Oxygen", "icon": "$(refresh)" }, { "command": "oxygen.switchBookmark", "title": "Switch Bookmark…", "category": "Oxygen", "icon": "$(bookmark)" }, { "command": "oxygen.createBookmark", "title": "Create Bookmark…", "category": "Oxygen" }, { "command": "oxygen.mergeBookmark", "title": "Merge Bookmark…", "category": "Oxygen" }, { "command": "oxygen.deleteBookmark", "title": "Delete Bookmark…", "category": "Oxygen" }, { "command": "oxygen.fetch", "title": "Fetch", "category": "Oxygen" }, { "command": "oxygen.pull", "title": "Pull", "category": "Oxygen" }, { "command": "oxygen.push", "title": "Push", "category": "Oxygen" }, { "command": "oxygen.pushBookmark", "title": "Push Bookmark…", "category": "Oxygen" }, { "command": "oxygen.sync", "title": "Sync", "category": "Oxygen", "icon": "$(sync)" } ], "views": { "scm": [ { "id": "oxygen.operations", "name": "Oxygen Operations", "when": "oxygen.hasRepository", "icon": "assets/images/oxygen.svg", "visibility": "collapsed" } ] }, "viewsWelcome": [ { "view": "scm", "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)", "when": "workbenchState != empty && !oxygen.hasRepository" } ], "menus": { "scm/title": [ { "command": "oxygen.commit", "group": "navigation@1", "when": "scmProvider == oxygen" }, { "command": "oxygen.sync", "group": "navigation@2", "when": "scmProvider == oxygen" }, { "command": "oxygen.refresh", "group": "navigation@3", "when": "scmProvider == oxygen" }, { "command": "oxygen.pull", "group": "4_sync@1", "when": "scmProvider == oxygen" }, { "command": "oxygen.push", "group": "4_sync@2", "when": "scmProvider == oxygen" }, { "command": "oxygen.pushBookmark", "group": "4_sync@3", "when": "scmProvider == oxygen" }, { "command": "oxygen.fetch", "group": "4_sync@4", "when": "scmProvider == oxygen" }, { "command": "oxygen.switchBookmark", "group": "5_bookmarks@1", "when": "scmProvider == oxygen" }, { "command": "oxygen.createBookmark", "group": "5_bookmarks@2", "when": "scmProvider == oxygen" }, { "command": "oxygen.mergeBookmark", "group": "5_bookmarks@3", "when": "scmProvider == oxygen" }, { "command": "oxygen.deleteBookmark", "group": "5_bookmarks@4", "when": "scmProvider == oxygen" }, { "command": "oxygen.commitHunks", "group": "2_commit@1", "when": "scmProvider == oxygen" }, { "command": "oxygen.amend", "group": "2_commit@2", "when": "scmProvider == oxygen" }, { "command": "oxygen.undo", "group": "3_undo", "when": "scmProvider == oxygen" }, { "command": "oxygen.showLog", "group": "1_view", "when": "scmProvider == oxygen" }, { "command": "oxygen.showOutput", "group": "1_view", "when": "scmProvider == oxygen" } ], "scm/resourceState/context": [ { "command": "oxygen.openFile", "group": "inline@1", "when": "scmProvider == oxygen" }, { "command": "oxygen.discard", "group": "inline@2", "when": "scmProvider == oxygen" }, { "command": "oxygen.openChanges", "group": "navigation", "when": "scmProvider == oxygen" }, { "command": "oxygen.openBaseVersion", "group": "navigation", "when": "scmProvider == oxygen" }, { "command": "oxygen.commitSelected", "group": "1_modification@1", "when": "scmProvider == oxygen" }, { "command": "oxygen.discard", "group": "1_modification@2", "when": "scmProvider == oxygen" } ], "view/title": [ { "command": "oxygen.refreshOperations", "group": "navigation", "when": "view == oxygen.operations" } ], "view/item/context": [ { "command": "oxygen.undoTo", "group": "inline", "when": "view == oxygen.operations && viewItem == operation" } ], "commandPalette": [ { "command": "oxygen.openFile", "when": "false" }, { "command": "oxygen.openChanges", "when": "false" }, { "command": "oxygen.openBaseVersion", "when": "false" }, { "command": "oxygen.discard", "when": "false" }, { "command": "oxygen.commitSelected", "when": "false" }, { "command": "oxygen.undoTo", "when": "false" }, { "command": "oxygen.refreshOperations", "when": "false" } ] }, "configuration": { "title": "Oxygen", "properties": { "oxygen.path": { "type": "string", "default": "", "description": "Path to the oxy binary. Empty means oxy on PATH, then ~/.local/bin/oxy." }, "oxygen.autoRefresh": { "type": "boolean", "default": true, "description": "Refresh the source control view when files in the workspace change." }, "oxygen.decorations.enabled": { "type": "boolean", "default": true, "description": "Show status decorations in the explorer and on editor tabs." }, "oxygen.confirmSync": { "type": "boolean", "default": true, "description": "Ask before pushing." }, "oxygen.showSnapshotOperations": { "type": "boolean", "default": false, "description": "List snapshot operations in the Oxygen Operations view." }, "oxygen.statusBar.enabled": { "type": "boolean", "default": true, "description": "Show the bookmark, working copy and state in the status bar." } } } }, "scripts": { "build": "esbuild src/extension.ts --bundle --platform=node --format=cjs --external:vscode --outfile=dist/extension.js --sourcemap", "watch": "npm run build -- --watch", "typecheck": "tsc --noEmit -p .", "pretest": "esbuild src/oxy.ts --bundle --platform=node --format=esm --outfile=out/oxy.mjs", "test": "node --test \"test/**/*.test.mjs\"", "check": "npm run typecheck && npm run build && npm test", "package": "vsce package --no-dependencies" }, "devDependencies": { "@types/node": "^24.0.0", "@types/vscode": "^1.137.0", "@vscode/vsce": "^4.0.0", "esbuild": "^0.28.0", "typescript": "^5.9.0" } }