{ "name": "gitlens", "version": "8.3.0", "author": { "name": "Eric Amodio", "email": "eamodio@gmail.com" }, "publisher": "eamodio", "engines": { "vscode": "^1.23.0" }, "license": "SEE LICENSE IN LICENSE", "displayName": "GitLens \u2014 Git supercharged", "description": "Supercharge the Git capabilities built into Visual Studio Code \u2014 Visualize code authorship at a glance via Git blame annotations and code lens, seamlessly navigate and explore Git repositories, gain valuable insights via powerful comparison commands, and so much more", "badges": [ { "url": "https://img.shields.io/badge/vscode--dev--community-gitlens-blue.svg?logo=slack", "href": "https://join.slack.com/t/vscode-dev-community/shared_invite/enQtMjIxOTgxNDE3NzM0LWU5M2ZiZDU1YjBlMzdlZjA2YjBjYzRhYTM5NTgzMTAxMjdiNWU0ZmQzYWI3MWU5N2Q1YjBiYmQ4MzY0NDE1MzY", "description": "Join us in the #gitlens channel" } ], "categories": [ "Other" ], "keywords": [ "gitlens", "git", "blame", "log", "annotation", "multi-root ready" ], "galleryBanner": { "color": "#8647ae", "theme": "dark" }, "icon": "images/gitlens-icon.png", "preview": false, "homepage": "https://github.com/eamodio/vscode-gitlens/blob/master/README.md", "bugs": { "url": "https://github.com/eamodio/vscode-gitlens/issues" }, "repository": { "type": "git", "url": "https://github.com/eamodio/vscode-gitlens.git" }, "main": "./out/extension", "contributes": { "configuration": { "type": "object", "title": "GitLens configuration", "properties": { "gitlens.blame.avatars": { "type": "boolean", "default": true, "description": "Specifies whether to show avatar images in the gutter blame annotations", "scope": "window" }, "gitlens.blame.compact": { "type": "boolean", "default": true, "description": "Specifies whether to compact (deduplicate) matching adjacent gutter blame annotations", "scope": "window" }, "gitlens.blame.dateFormat": { "type": "string", "default": null, "description": "Specifies how to format absolute dates (using the `${date}` token) in gutter blame annotations\nSee https://momentjs.com/docs/#/displaying/format/ for valid formats", "scope": "window" }, "gitlens.blame.format": { "type": "string", "default": "${message|40?} ${agoOrDate|14-}", "description": "Specifies the format of the gutter blame annotations\nAvailable tokens\n ${id} - commit id\n ${author} - commit author\n ${message} - commit message\n ${ago} - relative commit date (e.g. 1 day ago)\n ${date} - formatted commit date (format specified by `gitlens.blame.dateFormat`)\n ${agoOrDate} - commit date specified by `gitlens.defaultDateStyle`\n ${authorAgo} - commit author, relative commit date\n ${authorAgoOrDate} - commit author, commit date specified by `gitlens.defaultDateStyle`\nSee https://github.com/eamodio/vscode-gitlens/wiki/Advanced-Formatting for advanced formatting", "scope": "window" }, "gitlens.blame.heatmap.enabled": { "type": "boolean", "default": true, "description": "Specifies whether to provide a heatmap indicator in the gutter blame annotations", "scope": "window" }, "gitlens.blame.heatmap.location": { "type": "string", "default": "right", "enum": [ "left", "right" ], "description": "Specifies where the heatmap indicators will be shown in the gutter blame annotations\n `left` - adds a heatmap indicator on the left edge of the gutter blame annotations\n `right` - adds a heatmap indicator on the right edge of the gutter blame annotations", "scope": "window" }, "gitlens.blame.highlight.enabled": { "type": "boolean", "default": true, "description": "Specifies whether to highlight lines associated with the current line", "scope": "window" }, "gitlens.blame.highlight.locations": { "type": "array", "default": [ "gutter", "line", "overview" ], "items": { "type": "string", "enum": [ "gutter", "line", "overview" ] }, "minItems": 1, "maxItems": 3, "uniqueItems": true, "description": "Specifies where the associated line highlights will be shown\n `gutter` - adds a gutter glyph\n `line` - adds a full-line highlight background color\n `overview` - adds a decoration to the overview ruler (scroll bar)", "scope": "window" }, "gitlens.blame.ignoreWhitespace": { "type": "boolean", "default": false, "description": "Specifies whether to ignore whitespace when comparing revisions during blame operations", "scope": "resource" }, "gitlens.blame.separateLines": { "type": "boolean", "default": true, "description": "Specifies whether gutter blame annotations will be separated by a small gap", "scope": "window" }, "gitlens.blame.toggleMode": { "type": "string", "default": "file", "enum": [ "file", "window" ], "description": "Specifies how the gutter blame annotations will be toggled\n `file` - toggle each file individually\n `window` - toggle the window, i.e. all files at once", "scope": "window" }, "gitlens.codeLens.authors.command": { "type": "string", "default": "gitlens.toggleFileBlame", "enum": [ "gitlens.toggleFileBlame", "gitlens.diffWithPrevious", "gitlens.showQuickCommitDetails", "gitlens.showQuickCommitFileDetails", "gitlens.showQuickFileHistory", "gitlens.showQuickRepoHistory" ], "description": "Specifies the command to be executed when the `authors` code lens is clicked\n `gitlens.toggleFileBlame` - toggles file blame annotations\n `gitlens.diffWithPrevious` - compares the current committed file with the previous commit\n `gitlens.showQuickCommitDetails` - shows a commit details quick pick\n `gitlens.showQuickCommitFileDetails` - shows a commit file details quick pick\n `gitlens.showQuickFileHistory` - shows a file history quick pick\n `gitlens.showQuickRepoHistory` - shows a branch history quick pick", "scope": "window" }, "gitlens.codeLens.authors.enabled": { "type": "boolean", "default": true, "description": "Specifies whether to show an `authors` code lens showing number of authors of the file or code block and the most prominent author (if there is more than one)", "scope": "window" }, "gitlens.codeLens.enabled": { "type": "boolean", "default": true, "description": "Specifies whether to provide any Git code lens, by default\nUse the `Toggle Git Code Lens` command (`gitlens.toggleCodeLens`) to toggle the Git code lens on and off for the current window", "scope": "window" }, "gitlens.codeLens.recentChange.command": { "type": "string", "default": "gitlens.showQuickCommitFileDetails", "enum": [ "gitlens.toggleFileBlame", "gitlens.diffWithPrevious", "gitlens.showQuickCommitDetails", "gitlens.showQuickCommitFileDetails", "gitlens.showQuickFileHistory", "gitlens.showQuickRepoHistory" ], "description": "Specifies the command to be executed when the `recent change` code lens is clicked\n `gitlens.toggleFileBlame` - toggles file blame annotations\n `gitlens.diffWithPrevious` - compares the current committed file with the previous commit\n `gitlens.showQuickCommitDetails` - shows a commit details quick pick\n `gitlens.showQuickCommitFileDetails` - shows a commit file details quick pick\n `gitlens.showQuickFileHistory` - shows a file history quick pick\n `gitlens.showQuickRepoHistory` - shows a branch history quick pick", "scope": "window" }, "gitlens.codeLens.recentChange.enabled": { "type": "boolean", "default": true, "description": "Specifies whether to show a `recent change` code lens showing the author and date of the most recent commit for the file or code block", "scope": "window" }, "gitlens.codeLens.scopes": { "type": "array", "default": [ "document", "containers" ], "items": { "type": "string", "enum": [ "document", "containers", "blocks" ] }, "minItems": 1, "maxItems": 4, "uniqueItems": true, "description": "Specifies where Git code lens will be shown in the document\n `document` - adds code lens at the top of the document\n `containers` - adds code lens at the start of container-like symbols (modules, classes, interfaces, etc)\n `blocks` - adds code lens at the start of block-like symbols (functions, methods, etc) lines", "scope": "resource" }, "gitlens.codeLens.scopesByLanguage": { "type": "array", "default": [ { "language": "css", "scopes": [ "document" ] }, { "language": "html", "scopes": [ "document" ] }, { "language": "json", "scopes": [ "document" ] }, { "language": "jsonc", "scopes": [ "document" ] }, { "language": "less", "scopes": [ "document" ] }, { "language": "python", "symbolScopes": [ "!Module" ] }, { "language": "scss", "scopes": [ "document" ] }, { "language": "stylus", "scopes": [ "document" ] }, { "language": "vue", "scopes": [ "document" ] } ], "items": { "type": "object", "required": [ "language", "scopes" ], "properties": { "language": { "type": "string", "description": "Specifies the language to which this code lens override applies" }, "scopes": { "type": "array", "default": [ "document", "containers" ], "items": { "type": "string", "enum": [ "document", "containers", "blocks", "custom" ] }, "minItems": 1, "maxItems": 4, "uniqueItems": true, "description": "Specifies where Git code lens will be shown in the document for the specified language\n `document` - adds code lens at the top of the document\n `containers` - adds code lens at the start of container-like symbols (modules, classes, interfaces, etc)\n `blocks` - adds code lens at the start of block-like symbols (functions, methods, properties, etc) lines\n `custom` - adds code lens at the start of symbols contained in `symbolScopes`" }, "symbolScopes": { "type": "array", "items": { "type": "string" }, "uniqueItems": true, "description": "Specifies the set of document symbols where Git code lens will be shown in the document for the specified language\nMust be a member of `SymbolKind`" } } }, "uniqueItems": true, "description": "Specifies where Git code lens will be shown in the document for the specified languages", "scope": "resource" }, "gitlens.codeLens.symbolScopes": { "type": "array", "items": { "type": "string" }, "uniqueItems": true, "description": "Specifies a set of document symbols where Git code lens will or will not be shown in the document\nPrefix with `!` to not show Git code lens for the symbol\nMust be a member of `SymbolKind`", "scope": "resource" }, "gitlens.currentLine.dateFormat": { "type": "string", "default": null, "description": "Specifies how to format absolute dates (using the `${date}` token) for the current line blame annotation\nSee https://momentjs.com/docs/#/displaying/format/ for valid formats", "scope": "window" }, "gitlens.currentLine.enabled": { "type": "boolean", "default": true, "description": "Specifies whether to provide a blame annotation for the current line, by default\nUse the `Toggle Line Blame Annotations` command (`gitlens.toggleLineBlame`) to toggle the annotations on and off for the current window", "scope": "window" }, "gitlens.currentLine.format": { "type": "string", "default": "${authorAgoOrDate} \u2022 ${message}", "description": "Specifies the format of the current line blame annotation\nAvailable tokens\n ${id} - commit id\n ${author} - commit author\n ${message} - commit message\n ${ago} - relative commit date (e.g. 1 day ago)\n ${date} - formatted commit date (format specified by `gitlens.currentLine.dateFormat`)\n ${agoOrDate} - commit date specified by `gitlens.defaultDateStyle`\n ${authorAgo} - commit author, relative commit date\n ${authorAgoOrDate} - commit author, commit date specified by `gitlens.defaultDateStyle`\nSee https://github.com/eamodio/vscode-gitlens/wiki/Advanced-Formatting for advanced formatting", "scope": "window" }, "gitlens.currentLine.scrollable": { "type": "boolean", "default": true, "description": "Specifies whether the current line blame annotation can be scrolled into view when it is outside the viewport", "scope": "window" }, "gitlens.debug": { "type": "boolean", "default": false, "description": "Specifies debug mode", "scope": "window" }, "gitlens.defaultDateFormat": { "type": "string", "default": null, "description": "Specifies how absolute dates will be formatted by default\nSee https://momentjs.com/docs/#/displaying/format/ for valid formats", "scope": "window" }, "gitlens.defaultDateStyle": { "type": "string", "default": "relative", "enum": [ "relative", "absolute" ], "description": "Specifies how dates will be displayed by default", "scope": "window" }, "gitlens.defaultGravatarsStyle": { "type": "string", "default": "robohash", "enum": [ "identicon", "mm", "monsterid", "retro", "robohash", "wavatar" ], "description": "Specifies the style of the gravatar default (fallback) images\n `identicon` - a geometric pattern\n `mm` - (mystery-man) a simple, cartoon-style silhouetted outline of a person (does not vary by email hash)\n `monsterid` - a monster with different colors, faces, etc\n `retro` - 8-bit arcade-style pixelated faces\n `robohash` - a robot with different colors, faces, etc\n `wavatar` - faces with differing features and backgrounds", "scope": "window" }, "gitlens.explorers.avatars": { "type": "boolean", "default": true, "description": "Specifies whether to show avatar images instead of commit (or status) icons in the `GitLens` and `GitLens Results` views", "scope": "window" }, "gitlens.explorers.commitFileFormat": { "type": "string", "default": "${filePath}", "description": "Specifies the format of a committed file in the `GitLens` and `GitLens Results` views\nAvailable tokens\n ${directory} - directory name\n ${file} - file name\n ${filePath} - formatted file name and path\n ${path} - full file path", "scope": "window" }, "gitlens.explorers.commitFormat": { "type": "string", "default": "${message} \u00a0\u2022\u00a0 ${authorAgoOrDate} \u00a0 (${id})", "description": "Specifies the format of committed changes in the `GitLens` and `GitLens Results` views\nAvailable tokens\n ${id} - commit id\n ${author} - commit author\n ${message} - commit message\n ${ago} - relative commit date (e.g. 1 day ago)\n ${date} - formatted commit date (format specified by `gitlens.defaultDateFormat`)\\n ${agoOrDate} - commit date specified by `gitlens.defaultDateStyle`\n ${authorAgo} - commit author, relative commit date\n ${authorAgoOrDate} - commit author, commit date specified by `gitlens.defaultDateStyle`\nSee https://github.com/eamodio/vscode-gitlens/wiki/Advanced-Formatting for advanced formatting", "scope": "window" }, "gitlens.explorers.stashFileFormat": { "type": "string", "default": "${filePath}", "description": "Specifies the format of a stashed file in the `GitLens` and `GitLens Results` views\nAvailable tokens\n ${directory} - directory name\n ${file} - file name\n ${filePath} - formatted file name and path\n ${path} - full file path", "scope": "window" }, "gitlens.explorers.stashFormat": { "type": "string", "default": "${message}", "description": "Specifies the format of stashed changes in the `GitLens` and `GitLens Results` views\nAvailable tokens\n ${id} - commit id\n ${author} - commit author\n ${message} - commit message\n ${ago} - relative commit date (e.g. 1 day ago)\n ${date} - formatted commit date (format specified by `gitlens.statusBar.dateFormat`)\n ${agoOrDate} - commit date specified by `gitlens.defaultDateStyle`\n ${authorAgo} - commit author, relative commit date\n ${authorAgoOrDate} - commit author, commit date specified by `gitlens.defaultDateStyle`\nSee https://github.com/eamodio/vscode-gitlens/wiki/Advanced-Formatting for advanced formatting", "scope": "window" }, "gitlens.explorers.statusFileFormat": { "type": "string", "default": "${working}${filePath}", "description": "Specifies the format of the status of a working or committed file in the `GitLens` and `GitLens Results` views\nAvailable tokens\n ${directory} - directory name\n ${file} - file name\n ${filePath} - formatted file name and path\n ${path} - full file path\n ${working} - optional indicator if the file is uncommitted", "scope": "window" }, "gitlens.gitExplorer.autoRefresh": { "type": "boolean", "default": true, "description": "Specifies whether to automatically refresh the `GitLens` explorer when the repository or the file system changes", "scope": "window" }, "gitlens.gitExplorer.branches.layout": { "type": "string", "default": "tree", "enum": [ "list", "tree" ], "description": "Specifies how the `GitLens` explorer will display branches\n `list` - displays branches as a list \n`tree` - displays branches as a tree when branch names contain slashes `/`", "scope": "window" }, "gitlens.gitExplorer.enabled": { "type": "boolean", "default": true, "description": "Specifies whether to show the `GitLens` explorer", "scope": "window" }, "gitlens.gitExplorer.files.compact": { "type": "boolean", "default": true, "description": "Specifies whether to compact (flatten) unnecessary file nesting in the `GitLens` explorer\nOnly applies when displaying files as a `tree` or `auto`", "scope": "window" }, "gitlens.gitExplorer.files.layout": { "type": "string", "default": "auto", "enum": [ "auto", "list", "tree" ], "description": "Specifies how the `GitLens` explorer will display files\n `auto` - automatically switches between displaying files as a `tree` or `list` based on the `gitlens.gitExplorer.files.threshold` setting and the number of files at each nesting level\n `list` - displays files as a list\n `tree` - displays files as a tree", "scope": "window" }, "gitlens.gitExplorer.files.threshold": { "type": "number", "default": 5, "description": "Specifies when to switch between displaying files as a `tree` or `list` based on the number of files in a nesting level in the `GitLens` explorer\nOnly applies when displaying files as `auto`", "scope": "window" }, "gitlens.gitExplorer.includeWorkingTree": { "type": "boolean", "default": true, "description": "Specifies whether to include working tree files inside the `Repository Status` node of the `GitLens` explorer", "scope": "window" }, "gitlens.gitExplorer.showTrackingBranch": { "type": "boolean", "default": true, "description": "Specifies whether to show the tracking branch when displaying local branches in the `GitLens` explorer", "scope": "window" }, "gitlens.gitExplorer.view": { "type": "string", "default": "auto", "enum": [ "auto", "history", "repository" ], "description": "Specifies the starting view of the `GitLens` explorer\n `auto` - shows the last selected view, defaults to `repository`\n `history` - shows the commit history of the current file\n `repository` - shows a repository explorer", "scope": "window" }, "gitlens.heatmap.toggleMode": { "type": "string", "default": "file", "enum": [ "file", "window" ], "description": "Specifies how the gutter heatmap annotations will be toggled\n `file` - toggle each file individually\n `window` - toggle the window, i.e. all files at once", "scope": "window" }, "gitlens.historyExplorer.enabled": { "type": "boolean", "default": true, "description": "Specifies whether to show the current file history undocked in a `GitLens History` explorer", "scope": "window" }, "gitlens.hovers.annotations.changes": { "type": "boolean", "default": true, "description": "Specifies whether to provide a changes (diff) hover for all lines when showing blame annotations", "scope": "window" }, "gitlens.hovers.annotations.details": { "type": "boolean", "default": true, "description": "Specifies whether to provide a commit details hover for all lines when showing blame annotations", "scope": "window" }, "gitlens.hovers.annotations.enabled": { "type": "boolean", "default": true, "description": "Specifies whether to provide any hovers when showing blame annotations", "scope": "window" }, "gitlens.hovers.annotations.over": { "type": "string", "default": "line", "enum": [ "annotation", "line" ], "description": "Specifies when to trigger hovers when showing blame annotations\n `annotation` - only shown when hovering over the line annotation\n `line` - shown when hovering anywhere over the line", "scope": "window" }, "gitlens.hovers.currentLine.changes": { "type": "boolean", "default": true, "description": "Specifies whether to provide a changes (diff) hover for the current line", "scope": "window" }, "gitlens.hovers.currentLine.details": { "type": "boolean", "default": true, "description": "Specifies whether to provide a commit details hover for the current line", "scope": "window" }, "gitlens.hovers.currentLine.enabled": { "type": "boolean", "default": true, "description": "Specifies whether to provide any hovers for the current line", "scope": "window" }, "gitlens.hovers.currentLine.over": { "type": "string", "default": "annotation", "enum": [ "annotation", "line" ], "description": "Specifies when to trigger hovers for the current line\n `annotation` - only shown when hovering over the line annotation\n `line` - shown when hovering anywhere over the line", "scope": "window" }, "gitlens.hovers.enabled": { "type": "boolean", "default": true, "description": "Specifies whether to provide any hovers", "scope": "window" }, "gitlens.insiders": { "type": "boolean", "default": false, "description": "Specifies whether to enable new experimental features (expect there to be issues)", "scope": "window" }, "gitlens.keymap": { "type": "string", "default": "chorded", "enum": [ "alternate", "chorded", "none" ], "description": "Specifies the keymap to use for GitLens shortcut keys\n `alternate` - adds an alternate set of shortcut keys that start with `Alt` (\u2325 on macOS)\n `chorded` - adds a chorded set of shortcut keys that start with `Ctrl+Alt+G` (`\u2325\u2318G` on macOS)\n `none` - no shortcut keys will be added", "scope": "window" }, "gitlens.menus": { "anyOf": [ { "enum": [false] }, { "type": "object", "properties": { "editor": { "anyOf": [ { "enum": [false] }, { "type": "object", "properties": { "blame": { "type": "boolean" }, "clipboard": { "type": "boolean" }, "compare": { "type": "boolean" }, "details": { "type": "boolean" }, "history": { "type": "boolean" }, "remote": { "type": "boolean" } } } ] }, "editorGroup": { "anyOf": [ { "enum": [false] }, { "type": "object", "properties": { "blame": { "type": "boolean" }, "compare": { "type": "boolean" }, "history": { "type": "boolean" }, "remote": { "type": "boolean" } } } ] }, "editorTab": { "anyOf": [ { "enum": [false] }, { "type": "object", "properties": { "compare": { "type": "boolean" }, "history": { "type": "boolean" }, "remote": { "type": "boolean" } } } ] }, "explorer": { "anyOf": [ { "enum": [false] }, { "type": "object", "properties": { "compare": { "type": "boolean" }, "history": { "type": "boolean" }, "remote": { "type": "boolean" } } } ] } } } ], "default": { "editor": { "blame": false, "clipboard": true, "compare": true, "details": true, "history": false, "remote": true }, "editorGroup": { "blame": true, "compare": true, "history": false, "remote": false }, "editorTab": { "compare": false, "history": false, "remote": true }, "explorer": { "compare": true, "history": true, "remote": true } }, "description": "Specifies which commands will be added to which menus", "scope": "window" }, "gitlens.mode.active": { "type": "string", "description": "Specifies the active GitLens mode, if any", "scope": "window" }, "gitlens.mode.statusBar.enabled": { "type": "boolean", "default": true, "description": "Specifies whether to provide the active GitLens mode on the status bar", "scope": "window" }, "gitlens.mode.statusBar.alignment": { "type": "string", "default": "right", "enum": [ "left", "right" ], "description": "Specifies the active GitLens mode alignment in the status bar\n `left` - align to the left\n `right` - align to the right", "scope": "window" }, "gitlens.modes": { "type": "object", "properties": { "zen": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string"}, "statusBarItemName": { "type": "string"}, "description": { "type": "string"}, "codeLens": { "type": "boolean" }, "currentLine": { "type": "boolean" }, "explorers": { "type": "boolean" }, "hovers": { "type": "boolean" }, "statusBar": { "type": "boolean" } } }, "review": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string"}, "statusBarItemName": { "type": "string"}, "description": { "type": "string"}, "codeLens": { "type": "boolean" }, "currentLine": { "type": "boolean" }, "explorers": { "type": "boolean" }, "hovers": { "type": "boolean" }, "statusBar": { "type": "boolean" } } } }, "additionalProperties": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string"}, "statusBarItemName": { "type": "string"}, "description": { "type": "string"}, "codeLens": { "type": "boolean" }, "currentLine": { "type": "boolean" }, "explorers": { "type": "boolean" }, "hovers": { "type": "boolean" }, "statusBar": { "type": "boolean" } } }, "default": { "zen": { "name": "Zen", "statusBarItemName": "Zen", "description": "for a zen-like experience, disables many visual features", "codeLens": false, "currentLine": false, "explorers": false, "hovers": false, "statusBar": false }, "review": { "name": "Review", "statusBarItemName": "Reviewing", "description": "for reviewing code, enables many visual features", "codeLens": true, "currentLine": true, "hovers": true } }, "description": "Specifies the user-defined GitLens modes", "scope": "window" }, "gitlens.outputLevel": { "type": "string", "default": "silent", "enum": [ "silent", "errors", "verbose", "debug" ], "description": "Specifies how much (if any) output will be sent to the GitLens output channel", "scope": "window" }, "gitlens.recentChanges.highlight.locations": { "type": "array", "default": [ "gutter", "line", "overview" ], "items": { "type": "string", "enum": [ "gutter", "line", "overview" ] }, "minItems": 1, "maxItems": 3, "uniqueItems": true, "description": "Specifies where the highlights of the recently changed lines will be shown\n `gutter` - adds a gutter glyph\n `line` - adds a full-line highlight background color\n `overview` - adds a decoration to the overview ruler (scroll bar)", "scope": "window" }, "gitlens.recentChanges.toggleMode": { "type": "string", "default": "file", "enum": [ "file", "window" ], "description": "Specifies how the recently changed lines annotations will be toggled\n `file` - toggle each file individually\n `window` - toggle the window, i.e. all files at once", "scope": "window" }, "gitlens.remotes": { "type": "array", "default": null, "items": { "type": "object", "required": [ "type", "domain" ], "properties": { "type": { "type": "string", "enum": [ "Bitbucket", "BitbucketServer", "Custom", "GitHub", "GitLab" ], "description": "Specifies the type of the custom remote service\n `Bitbucket`, `BitbucketServer`, `GitHub`, or `GitLab`" }, "domain": { "type": "string", "description": "Specifies the domain name of the custom remote service" }, "name": { "type": "string", "description": "Specifies an optional friendly name for the custom remote service" }, "protocol": { "type": "string", "default": "https", "description": "Specifies an optional url protocol for the custom remote service" }, "urls": { "type": "object", "required": [ "repository", "branches", "branch", "commit", "file", "fileInCommit", "fileInBranch", "fileLine", "fileRange" ], "properties": { "repository": { "type": "string", "description": "Specifies the format of a respository url for the custom remote service\nAvailable tokens\n ${repo} - repository path" }, "branches": { "type": "string", "description": "Specifies the format of a branches url for the custom remote service\nAvailable tokens\n ${repo} - repository path\n ${branch} - branch" }, "branch": { "type": "string", "description": "Specifies the format of a branch url for the custom remote service\nAvailable tokens\n ${repo} - repository path\n ${branch} - branch" }, "commit": { "type": "string", "description": "Specifies the format of a commit url for the custom remote service\nAvailable tokens\n ${repo} - repository path\n ${id} - commit id" }, "file": { "type": "string", "description": "Specifies the format of a file url for the custom remote service\nAvailable tokens\n ${repo} - repository path\n ${file} - file name\n ${line} - formatted line information" }, "fileInBranch": { "type": "string", "description": "Specifies the format of a branch file url for the custom remote service\nAvailable tokens\n ${repo} - repository path\n ${file} - file name\n ${branch} - branch\n ${line} - formatted line information" }, "fileInCommit": { "type": "string", "description": "Specifies the format of a commit file url for the custom remote service\nAvailable tokens\n ${repo} - repository path\n ${file} - file name\n ${id} - commit id\n ${line} - formatted line information" }, "fileLine": { "type": "string", "description": "Specifies the format of a line in a file url for the custom remote service\nAvailable tokens\n ${line} - line" }, "fileRange": { "type": "string", "description": "Specifies the format of a range in a file url for the custom remote service\nAvailable tokens\n ${start} - starting line\n ${end} - ending line" } } }, "description": "Specifies the url formats of the custom remote service" } }, "uniqueItems": true, "description": "Specifies user-defined remote (code-hosting) services or custom domains for built-in remote services", "scope": "resource" }, "gitlens.resultsExplorer.files.compact": { "type": "boolean", "default": true, "description": "Specifies whether to compact (flatten) unnecessary file nesting in the `GitLens Results` view\nOnly applies when displaying files as a `tree` or `auto`", "scope": "window" }, "gitlens.resultsExplorer.files.layout": { "type": "string", "default": "auto", "enum": [ "auto", "list", "tree" ], "description": "Specifies how the `GitLens Results` view will display files\n `auto` - automatically switches between displaying files as a `tree` or `list` based on the `gitlens.gitExplorer.files.threshold` setting and the number of files at each nesting level\n `list` - displays files as a list\n `tree` - displays files as a tree", "scope": "window" }, "gitlens.resultsExplorer.files.threshold": { "type": "number", "default": 5, "description": "Specifies when to switch between displaying files as a `tree` or `list` based on the number of files in a nesting level in the `GitLens Results` view\nOnly applies when displaying files as `auto`", "scope": "window" }, "gitlens.settings.mode": { "type": "string", "default": "simple", "enum": [ "simple", "advanced" ], "description": "Specifies the display mode of the interactive settings editor\n `simple` - only displays common settings\n `advanced` - displays all settings", "scope": "window" }, "gitlens.showWhatsNewAfterUpgrades": { "type": "boolean", "default": true, "description": "Specifies whether to show What's New after upgrading to new feature releases", "scope": "window" }, "gitlens.statusBar.alignment": { "type": "string", "default": "right", "enum": [ "left", "right" ], "description": "Specifies the blame alignment in the status bar\n `left` - align to the left\n `right` - align to the right", "scope": "window" }, "gitlens.statusBar.command": { "type": "string", "default": "gitlens.showQuickCommitDetails", "enum": [ "gitlens.toggleFileBlame", "gitlens.diffWithPrevious", "gitlens.diffWithWorking", "gitlens.toggleCodeLens", "gitlens.showQuickCommitDetails", "gitlens.showQuickCommitFileDetails", "gitlens.showQuickFileHistory", "gitlens.showQuickRepoHistory" ], "description": "Specifies the command to be executed when the blame status bar item is clicked\n `gitlens.toggleFileBlame` - toggles file blame annotations\n `gitlens.diffWithPrevious` - compares the current line commit with the previous\n `gitlens.diffWithWorking` - compares the current line commit with the working tree\n `gitlens.toggleCodeLens` - toggles Git code lens\n `gitlens.showQuickCommitDetails` - shows a commit details quick pick\n `gitlens.showQuickCommitFileDetails` - shows a commit file details quick pick\n `gitlens.showQuickFileHistory` - shows a file history quick pick\n `gitlens.showQuickRepoHistory` - shows a branch history quick pick", "scope": "window" }, "gitlens.statusBar.dateFormat": { "type": "string", "default": null, "description": "Specifies the date format of absolute dates shown in the blame information on the status bar. See https://momentjs.com/docs/#/displaying/format/ for valid formats", "scope": "window" }, "gitlens.statusBar.enabled": { "type": "boolean", "default": true, "description": "Specifies whether to provide blame information on the status bar", "scope": "window" }, "gitlens.statusBar.format": { "type": "string", "default": "${authorAgoOrDate}", "description": "Specifies the format of the status bar blame information\nAvailable tokens\n ${id} - commit id\n ${author} - commit author\n ${message} - commit message\n ${ago} - relative commit date (e.g. 1 day ago)\n ${date} - formatted commit date (format specified by `gitlens.statusBar.dateFormat`)\n ${agoOrDate} - commit date specified by `gitlens.defaultDateStyle`\n ${authorAgo} - commit author, relative commit date\n ${authorAgoOrDate} - commit author, commit date specified by `gitlens.defaultDateStyle`\nSee https://github.com/eamodio/vscode-gitlens/wiki/Advanced-Formatting for advanced formatting", "scope": "window" }, "gitlens.statusBar.reduceFlicker": { "type": "boolean", "default": false, "description": "Specifies whether to avoid clearing the previous blame information when changing lines to reduce status bar \"flashing\"", "scope": "window" }, "gitlens.strings.codeLens.unsavedChanges.recentChangeAndAuthors": { "type": "string", "default": "Unsaved changes (cannot determine recent change or authors)", "description": "Specifies the string to be shown in place of both the `recent change` and `authors` code lens when there are unsaved changes", "scope": "window" }, "gitlens.strings.codeLens.unsavedChanges.recentChangeOnly": { "type": "string", "default": "Unsaved changes (cannot determine recent change)", "description": "Specifies the string to be shown in place of the `recent change` code lens when there are unsaved changes", "scope": "window" }, "gitlens.strings.codeLens.unsavedChanges.authorsOnly": { "type": "string", "default": "Unsaved changes (cannot determine authors)", "description": "Specifies the string to be shown in place of the `authors` code lens when there are unsaved changes", "scope": "window" }, "gitlens.advanced.blame.customArguments": { "type": "array", "default": null, "items": { "type": "string" }, "description": "Specifies additional arguments to pass to the `git blame` command", "scope": "resource" }, "gitlens.advanced.blame.delayAfterEdit": { "type": "number", "default": 5000, "description": "Specifies the time (in milliseconds) to wait before re-blaming an unsaved document after an edit. Use 0 to specify an infinite wait", "scope": "window" }, "gitlens.advanced.blame.sizeThresholdAfterEdit": { "type": "number", "default": 5000, "description": "Specifies the maximum document size (in lines) allowed to be re-blamed after an edit while still unsaved. Use 0 to specify no maximum", "scope": "window" }, "gitlens.advanced.caching.enabled": { "type": "boolean", "default": true, "description": "Specifies whether git output will be cached -- changing the default is not recommended", "scope": "window" }, "gitlens.advanced.git": { "type": "string", "default": null, "description": "Specifies the path to the git executable to use. Use as a last resort as GitLens will use the built-in `git.path` setting first", "scope": "window" }, "gitlens.advanced.fileHistoryFollowsRenames": { "type": "boolean", "default": true, "description": "Specifies whether file histories will follow renames -- will affect how merge commits are shown in histories", "scope": "window" }, "gitlens.advanced.maxListItems": { "type": "number", "default": 200, "description": "Specifies the maximum number of items to show in a list. Use 0 to specify no maximum", "scope": "window" }, "gitlens.advanced.messages": { "type": "object", "default": { "suppressCommitHasNoPreviousCommitWarning": false, "suppressCommitNotFoundWarning": false, "suppressFileNotUnderSourceControlWarning": false, "suppressGitDisabledWarning": false, "suppressGitVersionWarning": false, "suppressLineUncommittedWarning": false, "suppressNoRepositoryWarning": false, "suppressShowKeyBindingsNotice": false }, "properties": { "suppressCommitHasNoPreviousCommitWarning": { "type": "boolean", "default": false }, "suppressCommitNotFoundWarning": { "type": "boolean", "default": false }, "suppressFileNotUnderSourceControlWarning": { "type": "boolean", "default": false }, "suppressGitDisabledWarning": { "type": "boolean", "default": false }, "suppressGitVersionWarning": { "type": "boolean", "default": false }, "suppressLineUncommittedWarning": { "type": "boolean", "default": false }, "suppressNoRepositoryWarning": { "type": "boolean", "default": false }, "suppressShowKeyBindingsNotice": { "type": "boolean", "default": false } }, "description": "Specifies which messages should be suppressed", "scope": "window" }, "gitlens.advanced.quickPick.closeOnFocusOut": { "type": "boolean", "default": true, "description": "Specifies whether to close QuickPick menus when focus is lost", "scope": "window" }, "gitlens.advanced.repositorySearchDepth": { "type": "number", "default": 1, "description": "Specifies how many folders deep to search for repositories", "scope": "resource" }, "gitlens.advanced.telemetry.enabled": { "type": "boolean", "default": true, "description": "Specifies whether to enable GitLens telemetry (even if enabled still abides by the overall `telemetry.enableTelemetry` setting", "scope": "window" } } }, "colors": [ { "id": "gitlens.gutterBackgroundColor", "description": "Specifies the background color of the gutter blame annotations", "defaults": { "dark": "#FFFFFF13", "light": "#0000000C", "highContrast": "#FFFFFF13" } }, { "id": "gitlens.gutterForegroundColor", "description": "Specifies the foreground color of the gutter blame annotations", "defaults": { "dark": "#BEBEBE", "light": "#747474", "highContrast": "#BEBEBE" } }, { "id": "gitlens.gutterUncommittedForegroundColor", "description": "Specifies the foreground color of an uncommitted line in the gutter blame annotations", "defaults": { "dark": "#00BCF299", "light": "#00BCF299", "highContrast": "#00BCF2FF" } }, { "id": "gitlens.trailingLineBackgroundColor", "description": "Specifies the background color of the blame annotation for the current line", "defaults": { "dark": "#00000000", "light": "#00000000", "highContrast": "#00000000" } }, { "id": "gitlens.trailingLineForegroundColor", "description": "Specifies the foreground color of the blame annotation for the current line", "defaults": { "dark": "#99999959", "light": "#99999959", "highContrast": "#99999999" } }, { "id": "gitlens.lineHighlightBackgroundColor", "description": "Specifies the background color of the associated line highlights in blame annotations", "defaults": { "dark": "#00BCF233", "light": "#00BCF233", "highContrast": "#00BCF233" } }, { "id": "gitlens.lineHighlightOverviewRulerColor", "description": "Specifies the overview ruler color of the associated line highlights in blame annotations", "defaults": { "dark": "#00BCF299", "light": "#00BCF299", "highContrast": "#00BCF299" } } ], "commands": [ { "command": "gitlens.showSettingsPage", "title": "Open Settings", "category": "GitLens" }, { "command": "gitlens.showWelcomePage", "title": "Welcome", "category": "GitLens" }, { "command": "gitlens.showGitExplorer", "title": "Show GitLens Explorer", "category": "GitLens" }, { "command": "gitlens.showHistoryExplorer", "title": "Show History Explorer", "category": "GitLens" }, { "command": "gitlens.showResultsExplorer", "title": "Show Results Explorer", "category": "GitLens" }, { "command": "gitlens.diffDirectory", "title": "Directory Compare Working Tree with...", "category": "GitLens" }, { "command": "gitlens.diffHeadWithBranch", "title": "Compare HEAD with Branch or Tag...", "category": "GitLens" }, { "command": "gitlens.diffWorkingWithBranch", "title": "Compare Working Tree with Branch or Tag...", "category": "GitLens" }, { "command": "gitlens.diffWith", "title": "Compare File Revisions", "category": "GitLens" }, { "command": "gitlens.diffWithBranch", "title": "Compare File with Branch or Tag...", "category": "GitLens" }, { "command": "gitlens.diffWithNext", "title": "Compare File with Next Revision", "category": "GitLens", "icon": { "dark": "images/dark/icon-next-commit.svg", "light": "images/light/icon-next-commit.svg" } }, { "command": "gitlens.diffWithPrevious", "title": "Compare File with Previous Revision", "category": "GitLens", "icon": { "dark": "images/dark/icon-prev-commit.svg", "light": "images/light/icon-prev-commit.svg" } }, { "command": "gitlens.diffWithPreviousInDiff", "title": "Compare File with Previous Revision", "category": "GitLens", "icon": { "dark": "images/dark/icon-prev-commit.svg", "light": "images/light/icon-prev-commit.svg" } }, { "command": "gitlens.diffLineWithPrevious", "title": "Compare Commit with Previous", "category": "GitLens" }, { "command": "gitlens.diffWithRevision", "title": "Compare File with Revision...", "category": "GitLens" }, { "command": "gitlens.diffWithWorking", "title": "Compare File with Working Revision", "category": "GitLens" }, { "command": "gitlens.diffLineWithWorking", "title": "Compare Commit with Working File", "category": "GitLens" }, { "command": "gitlens.toggleFileBlame", "title": "Toggle File Blame Annotations", "category": "GitLens", "icon": { "dark": "images/dark/git-icon.svg", "light": "images/light/git-icon.svg" } }, { "command": "gitlens.clearFileAnnotations", "title": "Clear File Annotations", "category": "GitLens", "icon": { "dark": "images/dark/git-icon-orange.svg", "light": "images/light/git-icon-orange.svg" } }, { "command": "gitlens.computingFileAnnotations", "title": "Computing File Annotations...", "category": "GitLens", "icon": { "dark": "images/dark/git-icon-progress.svg", "light": "images/light/git-icon-progress.svg" } }, { "command": "gitlens.toggleFileHeatmap", "title": "Toggle File Heatmap Annotations", "category": "GitLens" }, { "command": "gitlens.toggleFileRecentChanges", "title": "Toggle Recent File Changes Annotations", "category": "GitLens", "icon": { "dark": "images/dark/git-icon.svg", "light": "images/light/git-icon.svg" } }, { "command": "gitlens.toggleLineBlame", "title": "Toggle Line Blame Annotations", "category": "GitLens" }, { "command": "gitlens.toggleCodeLens", "title": "Toggle Git Code Lens", "category": "GitLens" }, { "command": "gitlens.switchMode", "title": "Switch Mode", "category": "GitLens" }, { "command": "gitlens.toggleReviewMode", "title": "Toggle Review Mode", "category": "GitLens" }, { "command": "gitlens.toggleZenMode", "title": "Toggle Zen Mode", "category": "GitLens" }, { "command": "gitlens.showCommitSearch", "title": "Search Commits", "category": "GitLens", "icon": { "dark": "images/dark/icon-search.svg", "light": "images/light/icon-search.svg" } }, { "command": "gitlens.showLastQuickPick", "title": "Show Last Opened Quick Pick", "category": "GitLens" }, { "command": "gitlens.showQuickCommitDetails", "title": "Show Commit Details", "category": "GitLens" }, { "command": "gitlens.showQuickCommitFileDetails", "title": "Show Commit Details", "category": "GitLens" }, { "command": "gitlens.showQuickFileHistory", "title": "Show File History", "category": "GitLens" }, { "command": "gitlens.showQuickBranchHistory", "title": "Show Branch History", "category": "GitLens" }, { "command": "gitlens.showQuickRepoHistory", "title": "Show Current Branch History", "category": "GitLens" }, { "command": "gitlens.showQuickRepoStatus", "title": "Show Repository Status", "category": "GitLens" }, { "command": "gitlens.showQuickStashList", "title": "Show Stashed Changes", "category": "GitLens" }, { "command": "gitlens.copyShaToClipboard", "title": "Copy Commit ID to Clipboard", "category": "GitLens" }, { "command": "gitlens.copyMessageToClipboard", "title": "Copy Commit Message to Clipboard", "category": "GitLens" }, { "command": "gitlens.closeUnchangedFiles", "title": "Close Unchanged Files", "category": "GitLens" }, { "command": "gitlens.openChangedFiles", "title": "Open Changed Files", "category": "GitLens" }, { "command": "gitlens.openBranchesInRemote", "title": "Open Branches in Remote", "category": "GitLens" }, { "command": "gitlens.openBranchInRemote", "title": "Open Branch in Remote", "category": "GitLens" }, { "command": "gitlens.openCommitInRemote", "title": "Open Commit in Remote", "category": "GitLens" }, { "command": "gitlens.openFileInRemote", "title": "Open File in Remote", "category": "GitLens" }, { "command": "gitlens.openFileRevision", "title": "Open Revision...", "category": "GitLens" }, { "command": "gitlens.openRepoInRemote", "title": "Open Repository in Remote", "category": "GitLens" }, { "command": "gitlens.openWorkingFile", "title": "Open Working File", "category": "GitLens", "icon": { "dark": "images/dark/icon-open-working-file.svg", "light": "images/light/icon-open-working-file.svg" } }, { "command": "gitlens.stashApply", "title": "Apply Stashed Changes", "category": "GitLens" }, { "command": "gitlens.stashDelete", "title": "Delete Stashed Changes", "category": "GitLens" }, { "command": "gitlens.stashSave", "title": "Stash Changes", "category": "GitLens", "icon": { "dark": "images/dark/icon-add.svg", "light": "images/light/icon-add.svg" } }, { "command": "gitlens.externalDiff", "title": "Open Changes (with difftool)", "category": "GitLens" }, { "command": "gitlens.externalDiffAll", "title": "Open All Changes (with difftool)", "category": "GitLens" }, { "command": "gitlens.resetSuppressedWarnings", "title": "Reset Suppressed Warnings", "category": "GitLens" }, { "command": "gitlens.explorers.openDirectoryDiff", "title": "Open Directory Compare", "category": "GitLens" }, { "command": "gitlens.explorers.openDirectoryDiffWithWorking", "title": "Open Directory Compare with Working Tree", "category": "GitLens" }, { "command": "gitlens.explorers.openChanges", "title": "Open Changes", "category": "GitLens" }, { "command": "gitlens.explorers.openChangesWithWorking", "title": "Open Changes with Working File", "category": "GitLens" }, { "command": "gitlens.explorers.openFile", "title": "Open File", "category": "GitLens", "icon": { "dark": "images/dark/icon-open-file.svg", "light": "images/light/icon-open-file.svg" } }, { "command": "gitlens.explorers.openFileRevision", "title": "Open Revision", "category": "GitLens" }, { "command": "gitlens.explorers.openFileRevisionInRemote", "title": "Open Revision in Remote", "category": "GitLens" }, { "command": "gitlens.explorers.openChangedFiles", "title": "Open Files", "category": "GitLens" }, { "command": "gitlens.explorers.openChangedFileChanges", "title": "Open All Changes", "category": "GitLens" }, { "command": "gitlens.explorers.openChangedFileChangesWithWorking", "title": "Open All Changes with Working Tree", "category": "GitLens" }, { "command": "gitlens.explorers.openChangedFileRevisions", "title": "Open Revisions", "category": "GitLens" }, { "command": "gitlens.explorers.applyChanges", "title": "Apply Changes", "category": "GitLens" }, { "command": "gitlens.explorers.compareAncestryWithWorking", "title": "Compare Ancestry with Working Tree", "category": "GitLens" }, { "command": "gitlens.explorers.compareWithHead", "title": "Compare with HEAD", "category": "GitLens" }, { "command": "gitlens.explorers.compareWithRemote", "title": "Compare with Remote", "category": "GitLens" }, { "command": "gitlens.explorers.compareWithSelected", "title": "Compare with Selected", "category": "GitLens" }, { "command": "gitlens.explorers.compareWithWorking", "title": "Compare with Working Tree", "category": "GitLens" }, { "command": "gitlens.explorers.selectForCompare", "title": "Select for Compare", "category": "GitLens" }, { "command": "gitlens.explorers.terminalCheckoutBranch", "title": "Checkout Branch (via Terminal)", "category": "GitLens" }, { "command": "gitlens.explorers.terminalCreateBranch", "title": "Create Branch (via Terminal)...", "category": "GitLens" }, { "command": "gitlens.explorers.terminalDeleteBranch", "title": "Delete Branch (via Terminal)", "category": "GitLens" }, { "command": "gitlens.explorers.terminalMergeBranch", "title": "Merge Branch (via Terminal)", "category": "GitLens" }, { "command": "gitlens.explorers.terminalRebaseBranch", "title": "Rebase (Interactive) Branch (via Terminal)", "category": "GitLens" }, { "command": "gitlens.explorers.terminalRebaseBranchToRemote", "title": "Rebase (Interactive) Branch to Remote (via Terminal)", "category": "GitLens" }, { "command": "gitlens.explorers.terminalSquashBranchIntoCommit", "title": "Squash Branch into Commit (via Terminal)", "category": "GitLens" }, { "command": "gitlens.explorers.terminalCherryPickCommit", "title": "Cherry Pick Commit (via Terminal)", "category": "GitLens" }, { "command": "gitlens.explorers.terminalPushCommit", "title": "Push to Commit (via Terminal)", "category": "GitLens" }, { "command": "gitlens.explorers.terminalRebaseCommit", "title": "Rebase to Commit (via Terminal)", "category": "GitLens" }, { "command": "gitlens.explorers.terminalResetCommit", "title": "Reset to Commit (via Terminal)", "category": "GitLens" }, { "command": "gitlens.explorers.terminalRevertCommit", "title": "Revert Commit (via Terminal)", "category": "GitLens" }, { "command": "gitlens.explorers.terminalRemoveRemote", "title": "Remove Remote (via Terminal)", "category": "GitLens" }, { "command": "gitlens.explorers.terminalCreateTag", "title": "Create Tag (via Terminal)...", "category": "GitLens" }, { "command": "gitlens.explorers.terminalDeleteTag", "title": "Delete Tag (via Terminal)", "category": "GitLens" }, { "command": "gitlens.gitExplorer.undockHistory", "title": "Undock History from GitLens Explorer", "category": "GitLens", "icon": { "dark": "images/dark/icon-undock.svg", "light": "images/light/icon-undock.svg" } }, { "command": "gitlens.gitExplorer.refresh", "title": "Refresh", "category": "GitLens", "icon": { "dark": "images/dark/icon-refresh.svg", "light": "images/light/icon-refresh.svg" } }, { "command": "gitlens.gitExplorer.refreshNode", "title": "Refresh", "category": "GitLens" }, { "command": "gitlens.gitExplorer.setFilesLayoutToAuto", "title": "Automatic Layout", "category": "GitLens" }, { "command": "gitlens.gitExplorer.setFilesLayoutToList", "title": "List Layout", "category": "GitLens" }, { "command": "gitlens.gitExplorer.setFilesLayoutToTree", "title": "Tree Layout", "category": "GitLens" }, { "command": "gitlens.gitExplorer.setAutoRefreshToOn", "title": "Enable Automatic Refresh", "category": "GitLens" }, { "command": "gitlens.gitExplorer.setAutoRefreshToOff", "title": "Disable Automatic Refresh", "category": "GitLens" }, { "command": "gitlens.gitExplorer.setRenameFollowingOn", "title": "Follow Renames", "category": "GitLens" }, { "command": "gitlens.gitExplorer.setRenameFollowingOff", "title": "Don't Follow Renames", "category": "GitLens" }, { "command": "gitlens.gitExplorer.switchToHistoryView", "title": "Switch to History View", "category": "GitLens", "icon": { "dark": "images/dark/icon-history.svg", "light": "images/light/icon-history.svg" } }, { "command": "gitlens.gitExplorer.switchToRepositoryView", "title": "Switch to Repository View", "category": "GitLens", "icon": { "dark": "images/dark/icon-repo.svg", "light": "images/light/icon-repo.svg" } }, { "command": "gitlens.historyExplorer.close", "title": "Close", "category": "GitLens", "icon": { "dark": "images/dark/icon-close.svg", "light": "images/light/icon-close.svg" } }, { "command": "gitlens.historyExplorer.dock", "title": "Dock History to GitLens Explorer", "category": "GitLens", "icon": { "dark": "images/dark/icon-dock.svg", "light": "images/light/icon-dock.svg" } }, { "command": "gitlens.historyExplorer.refresh", "title": "Refresh", "category": "GitLens", "icon": { "dark": "images/dark/icon-refresh.svg", "light": "images/light/icon-refresh.svg" } }, { "command": "gitlens.historyExplorer.refreshNode", "title": "Refresh", "category": "GitLens" }, { "command": "gitlens.historyExplorer.setRenameFollowingOn", "title": "Follow Renames", "category": "GitLens" }, { "command": "gitlens.historyExplorer.setRenameFollowingOff", "title": "Don't Follow Renames", "category": "GitLens" }, { "command": "gitlens.resultsExplorer.clearResultsNode", "title": "Clear Results", "category": "GitLens", "icon": { "dark": "images/dark/icon-close-small.svg", "light": "images/light/icon-close-small.svg" } }, { "command": "gitlens.resultsExplorer.close", "title": "Close", "category": "GitLens", "icon": { "dark": "images/dark/icon-close.svg", "light": "images/light/icon-close.svg" } }, { "command": "gitlens.resultsExplorer.refresh", "title": "Refresh", "category": "GitLens", "icon": { "dark": "images/dark/icon-refresh.svg", "light": "images/light/icon-refresh.svg" } }, { "command": "gitlens.resultsExplorer.refreshNode", "title": "Refresh", "category": "GitLens" }, { "command": "gitlens.resultsExplorer.setFilesLayoutToAuto", "title": "Automatic Layout", "category": "GitLens" }, { "command": "gitlens.resultsExplorer.setFilesLayoutToList", "title": "List Layout", "category": "GitLens" }, { "command": "gitlens.resultsExplorer.setFilesLayoutToTree", "title": "Tree Layout", "category": "GitLens" }, { "command": "gitlens.resultsExplorer.setKeepResultsToOn", "title": "Keep Results", "category": "GitLens", "icon": { "dark": "images/dark/icon-lock.svg", "light": "images/light/icon-lock.svg" } }, { "command": "gitlens.resultsExplorer.setKeepResultsToOff", "title": "Keep Results", "category": "GitLens", "icon": { "dark": "images/dark/icon-locked.svg", "light": "images/light/icon-locked.svg" } }, { "command": "gitlens.resultsExplorer.swapComparision", "title": "Swap Comparision", "category": "GitLens", "icon": { "dark": "images/dark/icon-swap.svg", "light": "images/light/icon-swap.svg" } } ], "menus": { "commandPalette": [ { "command": "gitlens.showGitExplorer", "when": "gitlens:enabled && gitlens:gitExplorer" }, { "command": "gitlens.showHistoryExplorer", "when": "gitlens:enabled && gitlens:historyExplorer" }, { "command": "gitlens.showHistoryExplorer", "when": "gitlens:enabled && !gitlens:historyExplorer && gitlens:gitExplorer" }, { "command": "gitlens.showResultsExplorer", "when": "gitlens:enabled && gitlens:resultsExplorer" }, { "command": "gitlens.diffDirectory", "when": "gitlens:enabled" }, { "command": "gitlens.diffHeadWithBranch", "when": "gitlens:enabled" }, { "command": "gitlens.diffWorkingWithBranch", "when": "gitlens:enabled" }, { "command": "gitlens.diffWith", "when": "false" }, { "command": "gitlens.diffWithBranch", "when": "gitlens:activeIsTracked" }, { "command": "gitlens.diffWithNext", "when": "gitlens:activeIsTracked && gitlens:activeIsRevision" }, { "command": "gitlens.diffWithPrevious", "when": "!isInDiffEditor && gitlens:activeIsTracked" }, { "command": "gitlens.diffWithPreviousInDiff", "when": "isInDiffEditor && gitlens:activeIsTracked" }, { "command": "gitlens.diffLineWithPrevious", "when": "gitlens:activeIsBlameable" }, { "command": "gitlens.diffWithRevision", "when": "gitlens:activeIsTracked" }, { "command": "gitlens.diffWithWorking", "when": "gitlens:activeIsTracked" }, { "command": "gitlens.diffLineWithWorking", "when": "gitlens:activeIsBlameable" }, { "command": "gitlens.externalDiff", "when": "gitlens:enabled" }, { "command": "gitlens.externalDiffAll", "when": "gitlens:enabled" }, { "command": "gitlens.toggleFileBlame", "when": "gitlens:activeIsBlameable" }, { "command": "gitlens.clearFileAnnotations", "when": "gitlens:activeIsBlameable && gitlens:annotationStatus == computed" }, { "command": "gitlens.computingFileAnnotations", "when": "false" }, { "command": "gitlens.toggleFileHeatmap", "when": "gitlens:activeIsBlameable" }, { "command": "gitlens.toggleFileRecentChanges", "when": "gitlens:activeIsBlameable" }, { "command": "gitlens.toggleLineBlame", "when": "gitlens:enabled" }, { "command": "gitlens.toggleCodeLens", "when": "gitlens:enabled && gitlens:canToggleCodeLens" }, { "command": "gitlens.switchMode", "when": "gitlens:enabled" }, { "command": "gitlens.toggleReviewMode", "when": "gitlens:enabled" }, { "command": "gitlens.toggleZenMode", "when": "gitlens:enabled" }, { "command": "gitlens.showCommitSearch", "when": "gitlens:enabled" }, { "command": "gitlens.showLastQuickPick", "when": "gitlens:enabled" }, { "command": "gitlens.showQuickCommitDetails", "when": "gitlens:activeIsBlameable" }, { "command": "gitlens.showQuickCommitFileDetails", "when": "editorTextFocus && gitlens:activeIsBlameable" }, { "command": "gitlens.showQuickFileHistory", "when": "gitlens:activeIsTracked" }, { "command": "gitlens.showQuickBranchHistory", "when": "gitlens:enabled" }, { "command": "gitlens.showQuickRepoHistory", "when": "gitlens:enabled" }, { "command": "gitlens.showQuickRepoStatus", "when": "gitlens:enabled" }, { "command": "gitlens.showQuickStashList", "when": "gitlens:enabled" }, { "command": "gitlens.copyShaToClipboard", "when": "gitlens:activeIsBlameable" }, { "command": "gitlens.copyMessageToClipboard", "when": "gitlens:activeIsBlameable" }, { "command": "gitlens.closeUnchangedFiles", "when": "gitlens:enabled" }, { "command": "gitlens.openChangedFiles", "when": "gitlens:enabled" }, { "command": "gitlens.openBranchesInRemote", "when": "gitlens:activeHasRemote" }, { "command": "gitlens.openBranchInRemote", "when": "gitlens:activeHasRemote" }, { "command": "gitlens.openCommitInRemote", "when": "gitlens:activeIsBlameable && gitlens:activeHasRemote" }, { "command": "gitlens.openFileInRemote", "when": "gitlens:activeIsTracked && gitlens:activeHasRemote" }, { "command": "gitlens.openFileRevision", "when": "gitlens:activeIsTracked" }, { "command": "gitlens.openRepoInRemote", "when": "gitlens:activeHasRemote" }, { "command": "gitlens.openWorkingFile", "when": "gitlens:activeIsRevision" }, { "command": "gitlens.stashApply", "when": "gitlens:enabled" }, { "command": "gitlens.stashDelete", "when": "false" }, { "command": "gitlens.stashSave", "when": "gitlens:enabled" }, { "command": "gitlens.resetSuppressedWarnings", "when": "gitlens:enabled" }, { "command": "gitlens.explorers.openChanges", "when": "false" }, { "command": "gitlens.explorers.openDirectoryDiff", "when": "false" }, { "command": "gitlens.explorers.openDirectoryDiffWithWorking", "when": "false" }, { "command": "gitlens.explorers.openChangesWithWorking", "when": "false" }, { "command": "gitlens.explorers.openFile", "when": "false" }, { "command": "gitlens.explorers.openFileRevision", "when": "false" }, { "command": "gitlens.explorers.openFileRevisionInRemote", "when": "false" }, { "command": "gitlens.explorers.openChangedFiles", "when": "false" }, { "command": "gitlens.explorers.openChangedFileChanges", "when": "false" }, { "command": "gitlens.explorers.openChangedFileChangesWithWorking", "when": "false" }, { "command": "gitlens.explorers.openChangedFileRevisions", "when": "false" }, { "command": "gitlens.explorers.applyChanges", "when": "false" }, { "command": "gitlens.explorers.compareAncestryWithWorking", "when": "false" }, { "command": "gitlens.explorers.compareWithHead", "when": "false" }, { "command": "gitlens.explorers.compareWithRemote", "when": "false" }, { "command": "gitlens.explorers.compareWithSelected", "when": "false" }, { "command": "gitlens.explorers.compareWithWorking", "when": "false" }, { "command": "gitlens.explorers.selectForCompare", "when": "false" }, { "command": "gitlens.explorers.terminalCheckoutBranch", "when": "false" }, { "command": "gitlens.explorers.terminalCreateBranch", "when": "false" }, { "command": "gitlens.explorers.terminalDeleteBranch", "when": "false" }, { "command": "gitlens.explorers.terminalMergeBranch", "when": "false" }, { "command": "gitlens.explorers.terminalRebaseBranch", "when": "false" }, { "command": "gitlens.explorers.terminalRebaseBranchToRemote", "when": "false" }, { "command": "gitlens.explorers.terminalSquashBranchIntoCommit", "when": "false" }, { "command": "gitlens.explorers.terminalCherryPickCommit", "when": "false" }, { "command": "gitlens.explorers.terminalPushCommit", "when": "false" }, { "command": "gitlens.explorers.terminalRebaseCommit", "when": "false" }, { "command": "gitlens.explorers.terminalResetCommit", "when": "false" }, { "command": "gitlens.explorers.terminalRevertCommit", "when": "false" }, { "command": "gitlens.explorers.terminalRemoveRemote", "when": "false" }, { "command": "gitlens.explorers.terminalCreateTag", "when": "false" }, { "command": "gitlens.explorers.terminalDeleteTag", "when": "false" }, { "command": "gitlens.gitExplorer.refresh", "when": "false" }, { "command": "gitlens.gitExplorer.refreshNode", "when": "false" }, { "command": "gitlens.gitExplorer.setFilesLayoutToAuto", "when": "false" }, { "command": "gitlens.gitExplorer.setFilesLayoutToList", "when": "false" }, { "command": "gitlens.gitExplorer.setFilesLayoutToTree", "when": "false" }, { "command": "gitlens.gitExplorer.setAutoRefreshToOn", "when": "false" }, { "command": "gitlens.gitExplorer.setAutoRefreshToOff", "when": "false" }, { "command": "gitlens.gitExplorer.setRenameFollowingOn", "when": "false" }, { "command": "gitlens.gitExplorer.setRenameFollowingOff", "when": "false" }, { "command": "gitlens.gitExplorer.switchToHistoryView", "when": "gitlens:enabled && !gitlens:historyExplorer && gitlens:gitExplorer:view == repository" }, { "command": "gitlens.gitExplorer.switchToRepositoryView", "when": "gitlens:enabled && !gitlens:historyExplorer && gitlens:gitExplorer:view == history" }, { "command": "gitlens.gitExplorer.undockHistory", "when": "gitlens:enabled && !gitlens:historyExplorer" }, { "command": "gitlens.historyExplorer.close", "when": "false" }, { "command": "gitlens.historyExplorer.dock", "when": "gitlens:enabled && gitlens:historyExplorer" }, { "command": "gitlens.historyExplorer.refresh", "when": "false" }, { "command": "gitlens.historyExplorer.refreshNode", "when": "false" }, { "command": "gitlens.historyExplorer.setRenameFollowingOn", "when": "false" }, { "command": "gitlens.historyExplorer.setRenameFollowingOff", "when": "false" }, { "command": "gitlens.resultsExplorer.clearResultsNode", "when": "false" }, { "command": "gitlens.resultsExplorer.close", "when": "false" }, { "command": "gitlens.resultsExplorer.refresh", "when": "false" }, { "command": "gitlens.resultsExplorer.refreshNode", "when": "false" }, { "command": "gitlens.resultsExplorer.setFilesLayoutToAuto", "when": "false" }, { "command": "gitlens.resultsExplorer.setFilesLayoutToList", "when": "false" }, { "command": "gitlens.resultsExplorer.setFilesLayoutToTree", "when": "false" }, { "command": "gitlens.resultsExplorer.setKeepResultsToOn", "when": "false" }, { "command": "gitlens.resultsExplorer.setKeepResultsToOff", "when": "false" }, { "command": "gitlens.resultsExplorer.swapComparision", "when": "false" } ], "editor/context": [ { "command": "gitlens.diffLineWithPrevious", "when": "editorTextFocus && gitlens:activeIsBlameable && config.gitlens.menus.editor.compare", "group": "1_gitlens@1" }, { "command": "gitlens.diffLineWithWorking", "when": "editorTextFocus && gitlens:activeIsBlameable && config.gitlens.menus.editor.compare", "group": "1_gitlens@2" }, { "command": "gitlens.openFileInRemote", "when": "editorTextFocus && gitlens:activeHasRemote && config.gitlens.menus.editor.remote", "group": "1_gitlens_1@1" }, { "command": "gitlens.openCommitInRemote", "when": "editorTextFocus && gitlens:activeHasRemote && config.gitlens.menus.editor.remote", "group": "1_gitlens_1@2" }, { "command": "gitlens.showQuickCommitFileDetails", "when": "editorTextFocus && gitlens:activeIsBlameable && config.gitlens.menus.editor.details", "group": "1_gitlens_1@3" }, { "command": "gitlens.showQuickFileHistory", "when": "gitlens:activeIsTracked && config.gitlens.menus.editor.history", "group": "3_gitlens@1" }, { "command": "gitlens.toggleFileBlame", "when": "editorTextFocus && gitlens:activeIsBlameable && config.gitlens.menus.editor.blame", "group": "3_gitlens@2" }, { "command": "gitlens.copyShaToClipboard", "when": "editorTextFocus && gitlens:activeIsBlameable && config.gitlens.menus.editor.clipboard", "group": "9_gitlens@1" }, { "command": "gitlens.copyMessageToClipboard", "when": "editorTextFocus && gitlens:activeIsBlameable && config.gitlens.menus.editor.clipboard", "group": "9_gitlens@2" } ], "editor/title": [ { "command": "gitlens.openWorkingFile", "when": "gitlens:activeIsRevision && resourceScheme != git", "group": "navigation@1" }, { "command": "gitlens.openWorkingFile", "when": "gitlens:activeIsRevision && resourceScheme == git && !isInDiffEditor", "group": "navigation@1" }, { "command": "gitlens.diffWithPrevious", "when": "editorTextFocus && !isInDiffEditor && gitlens:activeIsTracked && config.gitlens.menus.editorGroup.compare", "group": "navigation@98" }, { "command": "gitlens.diffWithPreviousInDiff", "when": "isInDiffEditor && gitlens:activeIsTracked && config.gitlens.menus.editorGroup.compare", "group": "navigation@98" }, { "command": "gitlens.diffWithNext", "when": "editorTextFocus && gitlens:activeIsTracked && gitlens:activeIsTracked && gitlens:activeIsRevision && config.gitlens.menus.editorGroup.compare", "group": "navigation@99" }, { "command": "gitlens.toggleFileBlame", "alt": "gitlens.toggleFileRecentChanges", "when": "gitlens:activeIsBlameable && !gitlens:annotationStatus && config.gitlens.menus.editorGroup.blame", "group": "navigation@100" }, { "command": "gitlens.computingFileAnnotations", "when": "gitlens:activeIsBlameable && gitlens:annotationStatus == computing && config.gitlens.menus.editorGroup.blame", "group": "navigation@100" }, { "command": "gitlens.clearFileAnnotations", "when": "gitlens:activeIsBlameable && gitlens:annotationStatus == computed && config.gitlens.menus.editorGroup.blame", "group": "navigation@100" }, { "command": "gitlens.openFileInRemote", "when": "gitlens:enabled && gitlens:activeHasRemote && config.gitlens.menus.editorGroup.remote", "group": "4_gitlens" }, { "command": "gitlens.showQuickFileHistory", "when": "editorFocus && gitlens:activeIsTracked && config.gitlens.menus.editorGroup.history", "group": "4_gitlens" } ], "editor/title/context": [ { "command": "gitlens.openFileInRemote", "when": "gitlens:enabled && gitlens:activeHasRemote && config.gitlens.menus.editorTab.remote", "group": "2_files@100" }, { "command": "gitlens.diffWithPrevious", "when": "gitlens:enabled && config.gitlens.menus.editorTab.compare", "group": "1_gitlens_1@1" }, { "command": "gitlens.diffWithWorking", "when": "gitlens:enabled && config.gitlens.menus.editorTab.compare", "group": "1_gitlens_1@2" }, { "command": "gitlens.showQuickFileHistory", "when": "gitlens:enabled && config.gitlens.menus.editorTab.history", "group": "1_gitlens_2@1" } ], "explorer/context": [ { "command": "gitlens.openFileInRemote", "when": "!explorerResourceIsRoot && !explorerResourceIsFolder && gitlens:enabled && gitlens:hasRemotes && config.gitlens.menus.explorer.remote", "group": "navigation@100" }, { "command": "gitlens.showQuickFileHistory", "when": "!explorerResourceIsRoot && !explorerResourceIsFolder && gitlens:enabled && config.gitlens.menus.explorer.history", "group": "1_gitlens_1@1" }, { "command": "gitlens.diffWithPrevious", "when": "!explorerResourceIsRoot && !explorerResourceIsFolder && gitlens:enabled && config.gitlens.menus.explorer.compare", "group": "3_compare@1" } ], "scm/resourceGroup/context": [ { "command": "gitlens.openChangedFiles", "when": "gitlens:enabled", "group": "2_gitlens@1" }, { "command": "gitlens.closeUnchangedFiles", "when": "gitlens:enabled", "group": "2_gitlens@2" }, { "command": "gitlens.externalDiff", "when": "gitlens:enabled", "group": "2_gitlens@3" }, { "command": "gitlens.externalDiffAll", "when": "gitlens:enabled", "group": "2_gitlens@4" }, { "command": "gitlens.stashSave", "when": "gitlens:enabled", "group": "3_gitlens@1" } ], "scm/resourceState/context": [ { "command": "gitlens.openFileInRemote", "when": "gitlens:enabled && gitlens:hasRemotes", "group": "navigation" }, { "command": "gitlens.externalDiff", "when": "gitlens:enabled", "group": "navigation" }, { "command": "gitlens.diffWithRevision", "when": "gitlens:enabled", "group": "1_gitlens@1" }, { "command": "gitlens.diffWithBranch", "when": "gitlens:enabled", "group": "1_gitlens@2" }, { "command": "gitlens.showQuickFileHistory", "when": "gitlens:enabled", "group": "1_gitlens_1@1" }, { "command": "gitlens.stashSave", "when": "gitlens:enabled", "group": "2_gitlens@1" } ], "view/title": [ { "command": "gitlens.showCommitSearch", "when": "view == gitlens.gitExplorer", "group": "navigation@1" }, { "command": "gitlens.gitExplorer.undockHistory", "when": "view == gitlens.gitExplorer && gitlens:gitExplorer:view == history && !gitlens:historyExplorer", "group": "navigation@2" }, { "command": "gitlens.gitExplorer.switchToHistoryView", "when": "view == gitlens.gitExplorer && !gitlens:historyExplorer && gitlens:gitExplorer:view == repository", "group": "navigation@3" }, { "command": "gitlens.gitExplorer.switchToRepositoryView", "when": "view == gitlens.gitExplorer && !gitlens:historyExplorer && gitlens:gitExplorer:view == history", "group": "navigation@3" }, { "command": "gitlens.gitExplorer.refresh", "when": "view == gitlens.gitExplorer", "group": "navigation@8" }, { "command": "gitlens.gitExplorer.setFilesLayoutToAuto", "when": "view == gitlens.gitExplorer && gitlens:gitExplorer:view == repository", "group": "1_gitlens" }, { "command": "gitlens.gitExplorer.setFilesLayoutToList", "when": "view == gitlens.gitExplorer && gitlens:gitExplorer:view == repository", "group": "1_gitlens" }, { "command": "gitlens.gitExplorer.setFilesLayoutToTree", "when": "view == gitlens.gitExplorer && gitlens:gitExplorer:view == repository", "group": "1_gitlens" }, { "command": "gitlens.gitExplorer.setAutoRefreshToOn", "when": "view == gitlens.gitExplorer && config.gitlens.gitExplorer.autoRefresh && !gitlens:gitExplorer:autoRefresh", "group": "2_gitlens" }, { "command": "gitlens.gitExplorer.setAutoRefreshToOff", "when": "view == gitlens.gitExplorer && config.gitlens.gitExplorer.autoRefresh && gitlens:gitExplorer:autoRefresh", "group": "2_gitlens" }, { "command": "gitlens.gitExplorer.setRenameFollowingOn", "when": "view == gitlens.gitExplorer && gitlens:gitExplorer:view == history && !config.gitlens.advanced.fileHistoryFollowsRenames", "group": "2_gitlens_1" }, { "command": "gitlens.gitExplorer.setRenameFollowingOff", "when": "view == gitlens.gitExplorer && gitlens:gitExplorer:view == history && config.gitlens.advanced.fileHistoryFollowsRenames", "group": "2_gitlens_1" }, { "command": "gitlens.historyExplorer.refresh", "when": "view == gitlens.historyExplorer", "group": "navigation@1" }, { "command": "gitlens.historyExplorer.dock", "when": "view == gitlens.historyExplorer && gitlens:gitExplorer", "group": "navigation@9" }, { "command": "gitlens.historyExplorer.close", "when": "view == gitlens.historyExplorer && !gitlens:gitExplorer", "group": "navigation@9" }, { "command": "gitlens.historyExplorer.setRenameFollowingOn", "when": "view == gitlens.historyExplorer && !config.gitlens.advanced.fileHistoryFollowsRenames", "group": "1_gitlens" }, { "command": "gitlens.historyExplorer.setRenameFollowingOff", "when": "view == gitlens.historyExplorer && config.gitlens.advanced.fileHistoryFollowsRenames", "group": "1_gitlens" }, { "command": "gitlens.showCommitSearch", "when": "view == gitlens.resultsExplorer", "group": "navigation@1" }, { "command": "gitlens.resultsExplorer.setKeepResultsToOn", "when": "view == gitlens.resultsExplorer && !gitlens:resultsExplorer:keepResults", "group": "navigation@2" }, { "command": "gitlens.resultsExplorer.setKeepResultsToOff", "when": "view == gitlens.resultsExplorer && gitlens:resultsExplorer:keepResults", "group": "navigation@2" }, { "command": "gitlens.resultsExplorer.refresh", "when": "view == gitlens.resultsExplorer", "group": "navigation@3" }, { "command": "gitlens.resultsExplorer.close", "when": "view == gitlens.resultsExplorer", "group": "navigation@9" }, { "command": "gitlens.resultsExplorer.setFilesLayoutToAuto", "when": "view == gitlens.resultsExplorer", "group": "1_gitlens" }, { "command": "gitlens.resultsExplorer.setFilesLayoutToList", "when": "view == gitlens.resultsExplorer", "group": "1_gitlens" }, { "command": "gitlens.resultsExplorer.setFilesLayoutToTree", "when": "view == gitlens.resultsExplorer", "group": "1_gitlens" } ], "view/item/context": [ { "command": "gitlens.openBranchesInRemote", "when": "viewItem == gitlens:branches:remotes", "group": "1_gitlens@1" }, { "command": "gitlens.openBranchInRemote", "when": "viewItem =~ /gitlens:(branch\\b(.*?:tracking|:remote))/", "group": "1_gitlens@1" }, { "command": "gitlens.explorers.compareWithRemote", "when": "viewItem =~ /gitlens:(branch\\b.*?:tracking)/", "group": "7_gitlens@1" }, { "command": "gitlens.explorers.compareWithHead", "when": "viewItem =~ /gitlens:(branch(?!:current)|commit|stash|tag)\\b/", "group": "7_gitlens@2" }, { "command": "gitlens.explorers.compareWithWorking", "when": "viewItem =~ /gitlens:(branch(?!:current)|commit|stash|tag)\\b/", "group": "7_gitlens@3" }, { "command": "gitlens.explorers.compareAncestryWithWorking", "when": "viewItem =~ /gitlens:branch(?!:current)\\b/", "group": "7_gitlens@4" }, { "command": "gitlens.explorers.compareWithSelected", "when": "viewItem =~ /gitlens:(branch|commit|stash|tag)\\b/ && gitlens:explorers:canCompare", "group": "7_gitlens_@1" }, { "command": "gitlens.explorers.selectForCompare", "when": "viewItem =~ /gitlens:(branch|commit|stash|tag)\\b/", "group": "7_gitlens_@2" }, { "command": "gitlens.explorers.openDirectoryDiffWithWorking", "when": "viewItem =~ /gitlens:(branch|tag)\\b/", "group": "7_gitlens_diff@1" }, { "command": "gitlens.explorers.terminalCheckoutBranch", "when": "viewItem =~ /gitlens:(branch\\b(?!:current))/", "group": "8_gitlens@1" }, { "command": "gitlens.explorers.terminalRebaseBranchToRemote", "when": "viewItem =~ /gitlens:(branch:current:tracking|status:upstream)\\b/", "group": "8_gitlens@1" }, { "command": "gitlens.explorers.terminalMergeBranch", "when": "viewItem =~ /gitlens:(branch\\b(?!:current))/", "group": "8_gitlens@2" }, { "command": "gitlens.explorers.terminalRebaseBranch", "when": "viewItem =~ /gitlens:(branch\\b(?!:current))/", "group": "8_gitlens@3" }, { "command": "gitlens.explorers.terminalSquashBranchIntoCommit", "when": "viewItem =~ /gitlens:(branch\\b(?!:current))/", "group": "8_gitlens@4" }, { "command": "gitlens.explorers.terminalCreateBranch", "when": "viewItem =~ /gitlens:(branch|commit|status:upstream|tag)\\b/", "group": "8_gitlens@5" }, { "command": "gitlens.explorers.terminalDeleteBranch", "when": "viewItem =~ /gitlens:(branch\\b(?!:current))/", "group": "8_gitlens@6" }, { "command": "gitlens.explorers.terminalCreateTag", "when": "viewItem =~ /gitlens:(branch|commit|status:upstream)\\b/", "group": "8_gitlens@7" }, { "command": "gitlens.openCommitInRemote", "when": "viewItem =~ /gitlens:commit\\b/ && gitlens:hasRemotes", "group": "1_gitlens@1" }, { "command": "gitlens.explorers.openChangedFileChanges", "when": "viewItem =~ /gitlens:(commit|stash)\\b/", "group": "2_gitlens@1" }, { "command": "gitlens.explorers.openChangedFileChangesWithWorking", "when": "viewItem =~ /gitlens:(commit|stash)\\b/", "group": "2_gitlens@2" }, { "command": "gitlens.explorers.openChangedFiles", "when": "viewItem =~ /gitlens:(commit|stash)\\b/", "group": "3_gitlens@1" }, { "command": "gitlens.explorers.openChangedFileRevisions", "when": "viewItem =~ /gitlens:(commit|stash)\\b/", "group": "3_gitlens@2" }, { "command": "gitlens.copyShaToClipboard", "when": "viewItem =~ /gitlens:(file:)?commit\\b/", "group": "5_gitlens@1" }, { "command": "gitlens.copyMessageToClipboard", "when": "viewItem =~ /gitlens:(file:)?(commit|stash)\\b/", "group": "5_gitlens@2" }, { "command": "gitlens.showQuickCommitDetails", "when": "viewItem =~ /gitlens:commit\\b/", "group": "5_gitlens_1@1" }, { "command": "gitlens.explorers.terminalCherryPickCommit", "when": "viewItem == gitlens:commit", "group": "8_gitlens@1" }, { "command": "gitlens.explorers.terminalPushCommit", "when": "viewItem == gitlens:commit:current", "group": "8_gitlens@1" }, { "command": "gitlens.explorers.terminalRevertCommit", "when": "viewItem == gitlens:commit:current", "group": "8_gitlens@1" }, { "command": "gitlens.explorers.terminalRebaseCommit", "when": "viewItem == gitlens:commit:current", "group": "8_gitlens@2" }, { "command": "gitlens.explorers.terminalResetCommit", "when": "viewItem == gitlens:commit:current", "group": "8_gitlens@3" }, { "command": "gitlens.explorers.openFile", "when": "viewItem =~ /gitlens:file\\b/", "group": "inline" }, { "command": "gitlens.explorers.openChanges", "when": "viewItem =~ /gitlens:file\\b/", "group": "2_gitlens@1" }, { "command": "gitlens.explorers.openChangesWithWorking", "when": "viewItem =~ /gitlens:file\\b/", "group": "2_gitlens@2" }, { "command": "gitlens.explorers.openFile", "when": "viewItem =~ /gitlens:(file|history-file|status:file)\\b/", "group": "3_gitlens@1" }, { "command": "gitlens.explorers.openFileRevision", "when": "viewItem =~ /gitlens:file\\b/", "group": "3_gitlens@2" }, { "command": "gitlens.openFileInRemote", "when": "viewItem =~ /gitlens:file\\b/ && gitlens:hasRemotes", "group": "4_gitlens@1" }, { "command": "gitlens.explorers.openFileRevisionInRemote", "when": "viewItem == gitlens:file:commit && gitlens:hasRemotes", "group": "4_gitlens@2" }, { "command": "gitlens.openFileInRemote", "when": "viewItem =~ /gitlens:(history-file|status:file)\\b/ && gitlens:hasRemotes", "group": "3_gitlens@2" }, { "command": "gitlens.showQuickFileHistory", "when": "viewItem =~ /gitlens:file\\b/ && gitlens:gitExplorer:view == repository", "group": "8_gitlens@1" }, { "command": "gitlens.showQuickCommitFileDetails", "when": "viewItem =~ /gitlens:file\\b(?!:stash)/", "group": "8_gitlens@2" }, { "command": "gitlens.explorers.applyChanges", "when": "viewItem == gitlens:file:commit", "group": "5_gitlens_1@1" }, { "command": "gitlens.explorers.applyChanges", "when": "viewItem == gitlens:file:stash", "group": "1_gitlens@1" }, { "command": "gitlens.openRepoInRemote", "when": "viewItem == gitlens:status && gitlens:hasRemotes", "group": "1_gitlens@1" }, { "command": "gitlens.openBranchesInRemote", "when": "viewItem == gitlens:remote", "group": "1_gitlens@1" }, { "command": "gitlens.openRepoInRemote", "when": "viewItem == gitlens:remote", "group": "1_gitlens@2" }, { "command": "gitlens.explorers.terminalRemoveRemote", "when": "viewItem == gitlens:remote", "group": "8_gitlens@1" }, { "command": "gitlens.openRepoInRemote", "when": "viewItem == gitlens:repository && gitlens:hasRemotes", "group": "1_gitlens@1" }, { "command": "gitlens.resultsExplorer.swapComparision", "when": "viewItem == gitlens:results:comparison", "group": "inline@1" }, { "command": "gitlens.resultsExplorer.clearResultsNode", "when": "viewItem =~ /gitlens:results\\b(?!:(commits|files))/", "group": "inline@2" }, { "command": "gitlens.resultsExplorer.clearResultsNode", "when": "viewItem =~ /gitlens:results\\b(?!:(commits|files))/", "group": "1_gitlens@1" }, { "command": "gitlens.resultsExplorer.swapComparision", "when": "viewItem == gitlens:results:comparison", "group": "1_gitlens@2" }, { "command": "gitlens.explorers.openDirectoryDiff", "when": "viewItem == gitlens:results:comparison", "group": "7_gitlens@1" }, { "command": "gitlens.stashSave", "when": "viewItem == gitlens:stashes", "group": "1_gitlens@1" }, { "command": "gitlens.stashApply", "when": "viewItem == gitlens:stash", "group": "1_gitlens@1" }, { "command": "gitlens.stashDelete", "when": "viewItem == gitlens:stash", "group": "1_gitlens@2" }, { "command": "gitlens.explorers.terminalDeleteTag", "when": "viewItem == gitlens:tag", "group": "8_gitlens" }, { "command": "gitlens.gitExplorer.refreshNode", "when": "view == gitlens.gitExplorer && viewItem =~ /gitlens:(?!file\\b)/", "group": "9_gitlens@1" }, { "command": "gitlens.resultsExplorer.refreshNode", "when": "view == gitlens.resultsExplorer && viewItem =~ /gitlens:(?!file\\b)/", "group": "9_gitlens@1" }, { "command": "gitlens.historyExplorer.refreshNode", "when": "view == gitlens.historyExplorer && viewItem =~ /gitlens:(?!file\\b)/", "group": "9_gitlens@1" } ] }, "keybindings": [ { "command": "gitlens.key.left", "key": "alt+left", "when": "gitlens:key:left" }, { "command": "gitlens.key.right", "key": "alt+right", "when": "gitlens:key:right" }, { "command": "gitlens.key.,", "key": "alt+,", "when": "gitlens:key:," }, { "command": "gitlens.key..", "key": "alt+.", "when": "gitlens:key:." }, { "command": "gitlens.key.escape", "key": "escape", "when": "gitlens:key:escape && editorTextFocus && !findWidgetVisible && !renameInputVisible && !suggestWidgetVisible && !isInEmbeddedEditor" }, { "command": "gitlens.toggleFileBlame", "key": "alt+b", "when": "gitlens:keymap == alternate && editorTextFocus && gitlens:activeIsBlameable" }, { "command": "gitlens.toggleCodeLens", "key": "shift+alt+b", "when": "gitlens:keymap == alternate && editorTextFocus && gitlens:enabled && gitlens:canToggleCodeLens" }, { "command": "gitlens.showLastQuickPick", "key": "alt+-", "when": "gitlens:keymap == alternate && gitlens:enabled" }, { "command": "gitlens.showCommitSearch", "key": "alt+/", "when": "gitlens:keymap == alternate && gitlens:enabled" }, { "command": "gitlens.showQuickFileHistory", "key": "alt+h", "when": "gitlens:keymap == alternate && gitlens:enabled" }, { "command": "gitlens.showQuickRepoHistory", "key": "shift+alt+h", "when": "gitlens:keymap == alternate && gitlens:enabled" }, { "command": "gitlens.showQuickRepoStatus", "key": "alt+s", "when": "gitlens:keymap == alternate && gitlens:enabled" }, { "command": "gitlens.showQuickCommitFileDetails", "key": "alt+c", "when": "gitlens:keymap == alternate && editorTextFocus && gitlens:enabled" }, { "command": "gitlens.diffWithNext", "key": "alt+.", "when": "gitlens:keymap == alternate && editorTextFocus && gitlens:activeIsTracked" }, { "command": "gitlens.diffLineWithPrevious", "key": "shift+alt+,", "when": "gitlens:keymap == alternate && editorTextFocus && gitlens:activeIsTracked" }, { "command": "gitlens.diffWithPrevious", "key": "alt+,", "when": "gitlens:keymap == alternate && editorTextFocus && !isInDiffEditor && gitlens:activeIsTracked" }, { "command": "gitlens.diffWithPreviousInDiff", "key": "alt+,", "when": "gitlens:keymap == alternate && isInDiffEditor && gitlens:activeIsTracked" }, { "command": "gitlens.diffLineWithWorking", "key": "alt+w", "when": "gitlens:keymap == alternate && editorTextFocus && gitlens:activeIsTracked" }, { "command": "gitlens.diffWithWorking", "key": "shift+alt+w", "when": "gitlens:keymap == alternate && editorTextFocus && gitlens:activeIsTracked" }, { "command": "gitlens.toggleFileBlame", "key": "ctrl+shift+g b", "mac": "cmd+alt+g b", "when": "gitlens:keymap == chorded && editorTextFocus && gitlens:activeIsBlameable" }, { "command": "gitlens.toggleCodeLens", "key": "ctrl+shift+g shift+b", "mac": "cmd+alt+g shift+b", "when": "gitlens:keymap == chorded && editorTextFocus && gitlens:enabled && gitlens:canToggleCodeLens" }, { "command": "gitlens.showLastQuickPick", "key": "ctrl+shift+g -", "mac": "cmd+alt+g -", "when": "gitlens:keymap == chorded && gitlens:enabled" }, { "command": "gitlens.showCommitSearch", "key": "ctrl+shift+g /", "mac": "cmd+alt+g /", "when": "gitlens:keymap == chorded && gitlens:enabled" }, { "command": "gitlens.showQuickFileHistory", "key": "ctrl+shift+g h", "mac": "cmd+alt+g h", "when": "gitlens:keymap == chorded && gitlens:enabled" }, { "command": "gitlens.showQuickRepoHistory", "key": "ctrl+shift+g shift+h", "mac": "cmd+alt+g shift+h", "when": "gitlens:keymap == chorded && gitlens:enabled" }, { "command": "gitlens.showQuickRepoStatus", "key": "ctrl+shift+g s", "mac": "cmd+alt+g s", "when": "gitlens:keymap == chorded && gitlens:enabled" }, { "command": "gitlens.showQuickCommitFileDetails", "key": "ctrl+shift+g c", "mac": "cmd+alt+g c", "when": "gitlens:keymap == chorded && editorTextFocus && gitlens:enabled" }, { "command": "gitlens.diffWithNext", "key": "ctrl+shift+g .", "mac": "cmd+alt+g .", "when": "gitlens:keymap == chorded && editorTextFocus && gitlens:activeIsTracked" }, { "command": "gitlens.diffLineWithPrevious", "key": "ctrl+shift+g shift+,", "mac": "cmd+alt+g shift+,", "when": "gitlens:keymap == chorded && editorTextFocus && gitlens:activeIsTracked" }, { "command": "gitlens.diffWithPrevious", "key": "ctrl+shift+g ,", "mac": "cmd+alt+g ,", "when": "gitlens:keymap == chorded && editorTextFocus && !isInDiffEditor && gitlens:activeIsTracked" }, { "command": "gitlens.diffWithPreviousInDiff", "key": "alt+,", "when": "gitlens:keymap == chorded && isInDiffEditor && gitlens:activeIsTracked" }, { "command": "gitlens.diffLineWithWorking", "key": "ctrl+shift+g w", "mac": "cmd+alt+g w", "when": "gitlens:keymap == chorded && editorTextFocus && gitlens:activeIsTracked" }, { "command": "gitlens.diffWithWorking", "key": "ctrl+shift+g shift+w", "mac": "cmd+alt+g shift+w", "when": "gitlens:keymap == chorded && editorTextFocus && gitlens:activeIsTracked" }, { "command": "workbench.view.scm", "key": "ctrl+shift+g g", "when": "gitlens:keymap == chorded && gitlens:enabled" } ], "views": { "scm": [ { "id": "gitlens.gitExplorer", "name": "GitLens", "when": "gitlens:enabled && gitlens:gitExplorer" }, { "id": "gitlens.historyExplorer", "name": "GitLens History", "when": "gitlens:enabled && gitlens:historyExplorer" }, { "id": "gitlens.resultsExplorer", "name": "GitLens Results", "when": "gitlens:enabled && gitlens:resultsExplorer" } ] } }, "activationEvents": [ "*" ], "scripts": { "build": "npm run lint && tsc -m commonjs -p ./ && npm run build-ui -- --env.quick", "build-ui": "webpack --context ./src/ui --config ./src/ui/webpack.config.js", "bundle": "npm run lint && webpack --env.production --context ./src/ui --config ./src/ui/webpack.config.js && webpack --env.production", "clean": "git clean -Xdf", "lint": "tslint --project tsconfig.json", "pack": "vsce package", "pub": "vsce publish", "rebuild": "npm run reset && npm run lint && tsc -m commonjs -p ./ && npm run build-ui", "reset": "npm run clean && npm install --no-save", "watch": "tsc -watch -m commonjs -p ./", "watch-ui": "pushd \"./src/ui\" && npm run watch --no-save && popd", "postinstall": "node ./node_modules/vscode/bin/install && pushd \"./src/ui\" && npm install --no-save && popd", "prepush": "npm run build", "vscode:prepublish": "npm run reset && npm run bundle" }, "dependencies": { "copy-paste": "1.3.0", "date-fns": "1.29.0", "iconv-lite": "0.4.23", "lodash.debounce": "4.0.8", "lodash.once": "4.1.1", "tmp": "0.0.33", "tslib": "1.9.0" }, "devDependencies": { "@types/copy-paste": "1.1.30", "@types/node": "10.0.8", "@types/tmp": "0.0.33", "husky": "0.14.3", "ts-loader": "4.3.0", "tslint": "5.10.0", "typescript": "2.8.3", "uglify-es": "3.3.9", "uglifyjs-webpack-plugin": "1.2.5", "vscode": "1.1.17", "webpack": "4.8.3", "webpack-cli": "2.1.3", "webpack-node-externals": "1.7.2" } }