{ "name": "oxygen-vscode", "displayName": "Oxygen", "description": "Oxygen version control: source control view, diffs, decorations, bookmarks and history for oxy repositories", "version": "0.15.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", "onUri" ], "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\u2026", "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\u2026", "category": "Oxygen", "icon": "$(bookmark)" }, { "command": "oxygen.createBookmark", "title": "Create Bookmark\u2026", "category": "Oxygen" }, { "command": "oxygen.mergeBookmark", "title": "Merge Bookmark\u2026", "category": "Oxygen" }, { "command": "oxygen.deleteBookmark", "title": "Delete Bookmark\u2026", "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\u2026", "category": "Oxygen" }, { "command": "oxygen.sync", "title": "Sync", "category": "Oxygen", "icon": "$(sync)" }, { "command": "oxygen.showHistory", "title": "Show History", "category": "Oxygen", "icon": "$(git-commit)" }, { "command": "oxygen.fileHistory", "title": "File History\u2026", "category": "Oxygen", "icon": "$(history)" }, { "command": "oxygen.toggleBlame", "title": "Toggle Inline Blame", "category": "Oxygen" }, { "command": "oxygen.showChange", "title": "Show Change", "category": "Oxygen" }, { "command": "oxygen.acceptSides", "title": "Accept Conflict Sides", "category": "Oxygen" }, { "command": "oxygen.keepCandidate", "title": "Keep This Candidate", "category": "Oxygen", "icon": "$(check)" }, { "command": "oxygen.markResolved", "title": "Mark Resolved", "category": "Oxygen", "icon": "$(check-all)" }, { "command": "oxygen.openConflict", "title": "Open Conflict", "category": "Oxygen" }, { "command": "oxygen.openSubrepo", "title": "Open Subrepo", "category": "Oxygen" }, { "command": "oxygen.updateSubrepo", "title": "Update to Pin", "category": "Oxygen", "icon": "$(cloud-download)" }, { "command": "oxygen.updateSubrepos", "title": "Update Subrepos", "category": "Oxygen" }, { "command": "oxygen.bisectStart", "title": "Bisect: Start", "category": "Oxygen" }, { "command": "oxygen.bisectGood", "title": "Bisect: Good", "category": "Oxygen" }, { "command": "oxygen.bisectBad", "title": "Bisect: Bad", "category": "Oxygen" }, { "command": "oxygen.bisectSkip", "title": "Bisect: Skip", "category": "Oxygen" }, { "command": "oxygen.bisectRun", "title": "Bisect: Run\u2026", "category": "Oxygen" }, { "command": "oxygen.bisectReset", "title": "Bisect: Reset", "category": "Oxygen" }, { "command": "oxygen.refreshBisect", "title": "Refresh", "category": "Oxygen", "icon": "$(refresh)" }, { "command": "oxygen.refreshTrust", "title": "Refresh", "category": "Oxygen", "icon": "$(refresh)" }, { "command": "oxygen.verify", "title": "Verify Signatures", "category": "Oxygen" }, { "command": "oxygen.tags", "title": "Tags\u2026", "category": "Oxygen" }, { "command": "oxygen.createTag", "title": "Create Tag\u2026", "category": "Oxygen" }, { "command": "oxygen.addWorkspace", "title": "Add Workspace\u2026", "category": "Oxygen" }, { "command": "oxygen.clone", "title": "Clone Repository\u2026", "category": "Oxygen" }, { "command": "oxygen.openOnRemote", "title": "Open on Remote", "category": "Oxygen", "icon": "$(link-external)" }, { "command": "oxygen.openChangeOnRemote", "title": "Open Change on Remote", "category": "Oxygen" }, { "command": "oxygen.history.split", "title": "Split\u2026", "category": "Oxygen", "icon": "$(split-horizontal)" }, { "command": "oxygen.history.squash", "title": "Squash into a Dependency\u2026", "category": "Oxygen", "icon": "$(fold)" }, { "command": "oxygen.history.rebase", "title": "Rebase onto\u2026", "category": "Oxygen", "icon": "$(git-pull-request-go-to-changes)" }, { "command": "oxygen.amendMode", "title": "Amend Mode", "category": "Oxygen", "icon": "$(edit)" }, { "command": "oxygen.leaveAmendMode", "title": "Leave Amend Mode", "category": "Oxygen", "icon": "$(close)" }, { "command": "oxygen.messageHistory", "title": "Previous Commit Messages\u2026", "category": "Oxygen", "icon": "$(history)" }, { "command": "oxygen.copyRemoteLink", "title": "Copy Remote Link", "category": "Oxygen", "icon": "$(link)" }, { "command": "oxygen.copyPermalink", "title": "Copy Permalink", "category": "Oxygen", "icon": "$(pinned)" }, { "command": "oxygen.createIdentity", "title": "Create Identity\u2026", "category": "Oxygen" } ], "views": { "scm": [ { "id": "oxygen.operations", "name": "Oxygen Operations", "when": "oxygen.hasRepository", "icon": "assets/images/oxygen.svg", "visibility": "collapsed" }, { "id": "oxygen.bisect", "name": "Oxygen Bisect", "when": "oxygen.hasRepository", "icon": "assets/images/oxygen.svg", "visibility": "collapsed" }, { "id": "oxygen.trust", "name": "Oxygen Trust", "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.tags", "group": "6_more@1", "when": "scmProvider == oxygen" }, { "command": "oxygen.createTag", "group": "6_more@2", "when": "scmProvider == oxygen" }, { "command": "oxygen.addWorkspace", "group": "6_more@3", "when": "scmProvider == oxygen" }, { "command": "oxygen.updateSubrepos", "group": "6_more@4", "when": "scmProvider == oxygen" }, { "command": "oxygen.verify", "group": "6_more@5", "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.markResolved", "group": "2_commit@3", "when": "scmProvider == oxygen" }, { "command": "oxygen.showHistory", "group": "1_view@1", "when": "scmProvider == oxygen" }, { "command": "oxygen.showLog", "group": "1_view@2", "when": "scmProvider == oxygen" }, { "command": "oxygen.showOutput", "group": "1_view@3", "when": "scmProvider == oxygen" }, { "command": "oxygen.openOnRemote", "when": "scmProvider == oxygen", "group": "navigation@9" }, { "command": "oxygen.amendMode", "group": "navigation@4", "when": "scmProvider == oxygen && !oxygen.amending" }, { "command": "oxygen.leaveAmendMode", "group": "navigation@4", "when": "scmProvider == oxygen && oxygen.amending" }, { "command": "oxygen.messageHistory", "group": "2_commit@4", "when": "scmProvider == oxygen" } ], "editor/title": [ { "command": "oxygen.fileHistory", "group": "navigation@9", "when": "oxygen.hasRepository && resourceScheme == file" } ], "editor/context": [ { "command": "oxygen.toggleBlame", "group": "oxygen@1", "when": "oxygen.hasRepository && resourceScheme == file" }, { "command": "oxygen.fileHistory", "group": "oxygen@2", "when": "oxygen.hasRepository && resourceScheme == file" }, { "command": "oxygen.openOnRemote", "when": "oxygen.hasRemoteProvider && resourceScheme == file", "group": "9_oxygen@1" }, { "command": "oxygen.copyRemoteLink", "when": "oxygen.hasRemoteProvider && resourceScheme == file", "group": "9_oxygen@2" }, { "command": "oxygen.copyPermalink", "when": "oxygen.hasRemoteProvider && resourceScheme == file", "group": "9_oxygen@3" } ], "explorer/context": [ { "command": "oxygen.fileHistory", "group": "7_modification@9", "when": "oxygen.hasRepository && !explorerResourceIsFolder" } ], "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" }, { "command": "oxygen.keepCandidate", "group": "inline@0", "when": "scmProvider == oxygen && scmResourceState == candidate" }, { "command": "oxygen.updateSubrepo", "group": "inline@0", "when": "scmProvider == oxygen && scmResourceState == subrepo" }, { "command": "oxygen.keepCandidate", "group": "0_conflict", "when": "scmProvider == oxygen && scmResourceState == candidate" } ], "scm/resourceGroup/context": [ { "command": "oxygen.markResolved", "group": "inline", "when": "scmProvider == oxygen && scmResourceGroup == conflicts" } ], "view/title": [ { "command": "oxygen.refreshOperations", "group": "navigation", "when": "view == oxygen.operations" }, { "command": "oxygen.refreshBisect", "group": "navigation", "when": "view == oxygen.bisect" }, { "command": "oxygen.refreshTrust", "group": "navigation", "when": "view == oxygen.trust" } ], "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" }, { "command": "oxygen.showChange", "when": "false" }, { "command": "oxygen.acceptSides", "when": "false" }, { "command": "oxygen.keepCandidate", "when": "false" }, { "command": "oxygen.openConflict", "when": "false" }, { "command": "oxygen.openSubrepo", "when": "false" }, { "command": "oxygen.updateSubrepo", "when": "false" }, { "command": "oxygen.refreshBisect", "when": "false" }, { "command": "oxygen.refreshTrust", "when": "false" }, { "command": "oxygen.history.split", "when": "false" }, { "command": "oxygen.history.squash", "when": "false" }, { "command": "oxygen.history.rebase", "when": "false" } ], "editor/title/context": [ { "command": "oxygen.openOnRemote", "when": "oxygen.hasRemoteProvider", "group": "oxygen@1" }, { "command": "oxygen.copyPermalink", "when": "oxygen.hasRemoteProvider", "group": "oxygen@2" } ], "webview/context": [ { "command": "oxygen.history.split", "when": "webviewId == 'oxygen.history' && webviewSection == 'change' && oxygenHead", "group": "oxygen@1" }, { "command": "oxygen.history.squash", "when": "webviewId == 'oxygen.history' && webviewSection == 'change' && oxygenHasDeps", "group": "oxygen@2" }, { "command": "oxygen.history.rebase", "when": "webviewId == 'oxygen.history' && webviewSection == 'change'", "group": "oxygen@3" } ], "editor/lineNumber/context": [ { "command": "oxygen.openOnRemote", "when": "oxygen.hasRemoteProvider && resourceScheme == file", "group": "oxygen@1" }, { "command": "oxygen.copyRemoteLink", "when": "oxygen.hasRemoteProvider && resourceScheme == file", "group": "oxygen@2" }, { "command": "oxygen.copyPermalink", "when": "oxygen.hasRemoteProvider && resourceScheme == file", "group": "oxygen@3" } ] }, "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.inlineBlame": { "type": "boolean", "default": false, "description": "Show each line's introducing change, author and age at the end of the line." }, "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." } } }, "colors": [ { "id": "oxygen.accent", "description": "The Oxygen accent: the current operation, repositories, the status bar.", "defaults": { "dark": "#35C7FF", "light": "#0A74B8", "highContrast": "#35C7FF", "highContrastLight": "#0A74B8" } }, { "id": "oxygen.commit", "description": "Commits, amends and splits in the Operations view.", "defaults": { "dark": "#5FE3A1", "light": "#1A7850", "highContrast": "#5FE3A1", "highContrastLight": "#1A7850" } }, { "id": "oxygen.push", "description": "Pushes.", "defaults": { "dark": "#3D7BFF", "light": "#2553C9", "highContrast": "#3D7BFF", "highContrastLight": "#2553C9" } }, { "id": "oxygen.pull", "description": "Pulls, fetches and clones.", "defaults": { "dark": "#2BD9B3", "light": "#0E8A70", "highContrast": "#2BD9B3", "highContrastLight": "#0E8A70" } }, { "id": "oxygen.merge", "description": "Merges, rebases and resolutions.", "defaults": { "dark": "#8E7CFF", "light": "#5B45D6", "highContrast": "#8E7CFF", "highContrastLight": "#5B45D6" } }, { "id": "oxygen.bookmark", "description": "Bookmarks and tags.", "defaults": { "dark": "#FFD166", "light": "#A36A00", "highContrast": "#FFD166", "highContrastLight": "#A36A00" } }, { "id": "oxygen.switch", "description": "Checkouts and bookmark switches.", "defaults": { "dark": "#56A8FF", "light": "#1F6FC2", "highContrast": "#56A8FF", "highContrastLight": "#1F6FC2" } }, { "id": "oxygen.undo", "description": "Undo, discard and abandon.", "defaults": { "dark": "#FFB454", "light": "#B35900", "highContrast": "#FFB454", "highContrastLight": "#B35900" } }, { "id": "oxygen.good", "description": "Good: passing, verified, signed.", "defaults": { "dark": "#5FE3A1", "light": "#1A7850", "highContrast": "#5FE3A1", "highContrastLight": "#1A7850" } }, { "id": "oxygen.bad", "description": "Bad: failing, invalid, expired.", "defaults": { "dark": "#FF5E7A", "light": "#C62D47", "highContrast": "#FF5E7A", "highContrastLight": "#C62D47" } }, { "id": "oxygen.warning", "description": "Warnings and dirty working copies.", "defaults": { "dark": "#FFB454", "light": "#B35900", "highContrast": "#FFB454", "highContrastLight": "#B35900" } }, { "id": "oxygen.key", "description": "Keys and roots in the Trust view.", "defaults": { "dark": "#FFD166", "light": "#A36A00", "highContrast": "#FFD166", "highContrastLight": "#A36A00" } }, { "id": "oxygen.subrepo", "description": "Subrepos.", "defaults": { "dark": "#1FB6D6", "light": "#0B7C93", "highContrast": "#1FB6D6", "highContrastLight": "#0B7C93" } }, { "id": "oxygen.lane1", "description": "History graph: lane 1 (the Oxygen mark's palette).", "defaults": { "dark": "#35C7FF", "light": "#0A74B8", "highContrast": "#35C7FF", "highContrastLight": "#0A74B8" } }, { "id": "oxygen.lane2", "description": "History graph: lane 2 (the Oxygen mark's palette).", "defaults": { "dark": "#3D7BFF", "light": "#2553C9", "highContrast": "#3D7BFF", "highContrastLight": "#2553C9" } }, { "id": "oxygen.lane3", "description": "History graph: lane 3 (the Oxygen mark's palette).", "defaults": { "dark": "#2BD9B3", "light": "#0E8A70", "highContrast": "#2BD9B3", "highContrastLight": "#0E8A70" } }, { "id": "oxygen.lane4", "description": "History graph: lane 4 (the Oxygen mark's palette).", "defaults": { "dark": "#8E7CFF", "light": "#5B45D6", "highContrast": "#8E7CFF", "highContrastLight": "#5B45D6" } }, { "id": "oxygen.lane5", "description": "History graph: lane 5 (the Oxygen mark's palette).", "defaults": { "dark": "#56A8FF", "light": "#1F6FC2", "highContrast": "#56A8FF", "highContrastLight": "#1F6FC2" } }, { "id": "oxygen.lane6", "description": "History graph: lane 6 (the Oxygen mark's palette).", "defaults": { "dark": "#5FE3A1", "light": "#1A7850", "highContrast": "#5FE3A1", "highContrastLight": "#1A7850" } }, { "id": "oxygen.lane7", "description": "History graph: lane 7 (the Oxygen mark's palette).", "defaults": { "dark": "#5B6CFF", "light": "#3440B8", "highContrast": "#5B6CFF", "highContrastLight": "#3440B8" } }, { "id": "oxygen.lane8", "description": "History graph: lane 8 (the Oxygen mark's palette).", "defaults": { "dark": "#1FB6D6", "light": "#0B7C93", "highContrast": "#1FB6D6", "highContrastLight": "#0B7C93" } }, { "id": "oxygen.head", "description": "A bookmark head in the history graph.", "defaults": { "dark": "#5FE3A1", "light": "#1A7850", "highContrast": "#5FE3A1", "highContrastLight": "#1A7850" } }, { "id": "oxygen.workingCopy", "description": "The working copy in the history graph.", "defaults": { "dark": "#35C7FF", "light": "#0A74B8", "highContrast": "#35C7FF", "highContrastLight": "#0A74B8" } }, { "id": "oxygen.signed", "description": "A change signed by its author.", "defaults": { "dark": "#5FE3A1", "light": "#1A7850", "highContrast": "#5FE3A1", "highContrastLight": "#1A7850" } }, { "id": "oxygen.sealed", "description": "A change authenticated by a seal (one signature over a push).", "defaults": { "dark": "#8E7CFF", "light": "#6B3FD1", "highContrast": "#8E7CFF", "highContrastLight": "#6B3FD1" } }, { "id": "oxygen.invalid", "description": "A signature that does not verify.", "defaults": { "dark": "#FF5E7A", "light": "#C62D47", "highContrast": "#FF5E7A", "highContrastLight": "#C62D47" } }, { "id": "oxygen.added", "description": "A file the working copy adds. Defaults to Git's colour; themes can set Oxygen's apart.", "defaults": { "dark": "gitDecoration.addedResourceForeground", "light": "gitDecoration.addedResourceForeground", "highContrast": "gitDecoration.addedResourceForeground", "highContrastLight": "gitDecoration.addedResourceForeground" } }, { "id": "oxygen.modified", "description": "A file the working copy changes. Defaults to Git's colour; themes can set Oxygen's apart.", "defaults": { "dark": "gitDecoration.modifiedResourceForeground", "light": "gitDecoration.modifiedResourceForeground", "highContrast": "gitDecoration.modifiedResourceForeground", "highContrastLight": "gitDecoration.modifiedResourceForeground" } }, { "id": "oxygen.removed", "description": "A file the working copy removes. Defaults to Git's colour; themes can set Oxygen's apart.", "defaults": { "dark": "gitDecoration.deletedResourceForeground", "light": "gitDecoration.deletedResourceForeground", "highContrast": "gitDecoration.deletedResourceForeground", "highContrastLight": "gitDecoration.deletedResourceForeground" } }, { "id": "oxygen.renamed", "description": "A file the working copy moves. Defaults to Git's colour; themes can set Oxygen's apart.", "defaults": { "dark": "gitDecoration.renamedResourceForeground", "light": "gitDecoration.renamedResourceForeground", "highContrast": "gitDecoration.renamedResourceForeground", "highContrastLight": "gitDecoration.renamedResourceForeground" } }, { "id": "oxygen.conflict", "description": "A file with a conflict, or conflict markers left in it. Defaults to Git's colour; themes can set Oxygen's apart.", "defaults": { "dark": "gitDecoration.conflictingResourceForeground", "light": "gitDecoration.conflictingResourceForeground", "highContrast": "gitDecoration.conflictingResourceForeground", "highContrastLight": "gitDecoration.conflictingResourceForeground" } }, { "id": "oxygen.resolved", "description": "A conflict marked resolved. Defaults to Git's colour; themes can set Oxygen's apart.", "defaults": { "dark": "gitDecoration.stageModifiedResourceForeground", "light": "gitDecoration.stageModifiedResourceForeground", "highContrast": "gitDecoration.stageModifiedResourceForeground", "highContrastLight": "gitDecoration.stageModifiedResourceForeground" } } ], "walkthroughs": [ { "id": "oxygen.gettingStarted", "title": "Get started with Oxygen", "description": "Sign, commit, branch without merges, push and see the history of an Oxygen repository.", "steps": [ { "id": "oxygen.identity", "title": "Create your identity", "description": "Every change you make is signed with a composite key (Ed25519 and ML-DSA-65) that names you. Make it once; every repository uses it.\n[Create Identity](command:oxygen.createIdentity)", "media": { "markdown": "walkthrough/identity.md" }, "completionEvents": [ "onCommand:oxygen.createIdentity" ] }, { "id": "oxygen.repository", "title": "Open or clone a repository", "description": "Clone one from your hub, start a new one here, or open a folder that already is one.\n[Clone Repository](command:oxygen.clone)\n[Initialize Repository](command:oxygen.init)", "media": { "markdown": "walkthrough/repository.md" }, "completionEvents": [ "onContext:oxygen.hasRepository" ] }, { "id": "oxygen.commit", "title": "Commit a change", "description": "Edit a file, write a message in the Source Control box and press Ctrl+Enter. There is no staging area: the change is what you see.\n[Open Source Control](command:workbench.view.scm)", "media": { "markdown": "walkthrough/commit.md" }, "completionEvents": [ "onCommand:oxygen.commit" ] }, { "id": "oxygen.bookmarks", "title": "Bookmarks: branches without merges", "description": "A bookmark names a state. Switch to a new one for a piece of work (take your edits along with *carry*), and merge it back: a merge is just the union of both, with no merge change.\n[Create Bookmark](command:oxygen.createBookmark)", "media": { "markdown": "walkthrough/bookmarks.md" }, "completionEvents": [ "onCommand:oxygen.createBookmark" ] }, { "id": "oxygen.push", "title": "Push to your hub", "description": "Publish your bookmark. The push seals your new changes with one signature and moves the bookmark on the hub, which runs its OxygenFlow pipeline.\n[Push](command:oxygen.push)", "media": { "markdown": "walkthrough/push.md" }, "completionEvents": [ "onCommand:oxygen.push" ] }, { "id": "oxygen.history", "title": "See the history", "description": "Changes form a graph, not a line: independent work runs in its own lane, in the Oxygen colours.\n[Show History](command:oxygen.showHistory)", "media": { "markdown": "walkthrough/history.md" }, "completionEvents": [ "onCommand:oxygen.showHistory" ] } ] } ] }, "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 && 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 && esbuild src/commitbox.ts --bundle --platform=node --format=esm --outfile=out/commitbox.mjs && esbuild src/handoff.ts --bundle --platform=node --format=esm --outfile=out/handoff.mjs && esbuild src/paths.ts --bundle --platform=node --format=esm --outfile=out/paths.mjs && esbuild src/looks.ts --bundle --platform=node --format=esm --outfile=out/looks.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" } }