{
    "name": "gitlens",
    "version": "8.2.4",
    "author": {
        "name": "Eric Amodio",
        "email": "eamodio@gmail.com"
    },
    "publisher": "eamodio",
    "engines": {
        "vscode": "^1.21.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": false,
                    "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.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.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.menus": {
                    "type": "object",
                    "default": {
                        "editorContext": {
                            "blame": true,
                            "copy": true,
                            "details": true,
                            "fileDiff": true,
                            "history": true,
                            "lineDiff": true,
                            "remote": true
                        },
                        "editorTitle": {
                            "blame": true,
                            "fileDiff": false,
                            "history": false,
                            "remote": false,
                            "status": false
                        },
                        "editorTitleContext": {
                            "blame": false,
                            "fileDiff": false,
                            "history": false,
                            "remote": false
                        },
                        "explorerContext": {
                            "fileDiff": true,
                            "history": true,
                            "remote": true
                        }
                    },
                    "properties": {
                        "editorContext": {
                            "type": "object",
                            "default": {
                                "blame": true,
                                "copy": true,
                                "details": true,
                                "fileDiff": true,
                                "history": true,
                                "lineDiff": true,
                                "remote": true
                            },
                            "properties": {
                                "blame": {
                                    "type": "boolean",
                                    "default": true
                                },
                                "copy": {
                                    "type": "boolean",
                                    "default": true
                                },
                                "details": {
                                    "type": "boolean",
                                    "default": true
                                },
                                "fileDiff": {
                                    "type": "boolean",
                                    "default": true
                                },
                                "history": {
                                    "type": "boolean",
                                    "default": true
                                },
                                "lineDiff": {
                                    "type": "boolean",
                                    "default": true
                                },
                                "remote": {
                                    "type": "boolean",
                                    "default": true
                                }
                            }
                        },
                        "editorTitle": {
                            "type": "object",
                            "default": {
                                "blame": true,
                                "fileDiff": true,
                                "history": true,
                                "remote": true,
                                "status": true
                            },
                            "properties": {
                                "blame": {
                                    "type": "boolean",
                                    "default": true
                                },
                                "fileDiff": {
                                    "type": "boolean",
                                    "default": true
                                },
                                "history": {
                                    "type": "boolean",
                                    "default": true
                                },
                                "remote": {
                                    "type": "boolean",
                                    "default": true
                                },
                                "status": {
                                    "type": "boolean",
                                    "default": true
                                }
                            }
                        },
                        "editorTitleContext": {
                            "type": "object",
                            "default": {
                                "blame": true,
                                "fileDiff": true,
                                "history": true,
                                "remote": true
                            },
                            "properties": {
                                "blame": {
                                    "type": "boolean",
                                    "default": true
                                },
                                "fileDiff": {
                                    "type": "boolean",
                                    "default": true
                                },
                                "history": {
                                    "type": "boolean",
                                    "default": true
                                },
                                "remote": {
                                    "type": "boolean",
                                    "default": true
                                }
                            }
                        },
                        "explorerContext": {
                            "type": "object",
                            "default": {
                                "fileDiff": true,
                                "history": true,
                                "remote": true
                            },
                            "properties": {
                                "fileDiff": {
                                    "type": "boolean",
                                    "default": true
                                },
                                "history": {
                                    "type": "boolean",
                                    "default": true
                                },
                                "remote": {
                                    "type": "boolean",
                                    "default": true
                                }
                            }
                        }
                    },
                    "description": "Specifies which commands will be added to which menus",
                    "scope": "window"
                },
                "gitlens.advanced.messages": {
                    "type": "object",
                    "default": {
                        "suppressCommitHasNoPreviousCommitWarning": false,
                        "suppressCommitNotFoundWarning": false,
                        "suppressFileNotUnderSourceControlWarning": false,
                        "suppressGitDisabledWarning": false,
                        "suppressGitVersionWarning": false,
                        "suppressLineUncommittedWarning": false,
                        "suppressNoRepositoryWarning": false,
                        "suppressResultsExplorerNotice": 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
                        },
                        "suppressResultsExplorerNotice": {
                            "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 trailing blame annotation",
                "defaults": {
                    "dark": "#00000000",
                    "light": "#00000000",
                    "highContrast": "#00000000"
                }
            },
            {
                "id": "gitlens.trailingLineForegroundColor",
                "description": "Specifies the foreground color of the trailing blame annotation",
                "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.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"
            },
            {
                "command": "gitlens.diffWithPrevious",
                "title": "Compare File with Previous Revision",
                "category": "GitLens"
            },
            {
                "command": "gitlens.diffLineWithPrevious",
                "title": "Compare Line Revision 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 Line Revision 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.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 File 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.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"
                },
                {
                    "command": "gitlens.diffWithPrevious",
                    "when": "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.showLastQuickPick",
                    "when": "gitlens:enabled"
                },
                {
                    "command": "gitlens.showCommitSearch",
                    "when": "gitlens:enabled"
                },
                {
                    "command": "gitlens.showQuickCommitDetails",
                    "when": "gitlens:activeIsBlameable"
                },
                {
                    "command": "gitlens.showQuickCommitFileDetails",
                    "when": "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.openFileInRemote",
                    "when": "editorTextFocus && gitlens:activeHasRemote && config.gitlens.advanced.menus.editorContext.remote",
                    "group": "navigation@100"
                },
                {
                    "command": "gitlens.diffLineWithPrevious",
                    "when": "editorTextFocus && gitlens:activeIsBlameable && config.gitlens.advanced.menus.editorContext.lineDiff",
                    "group": "1_gitlens@1"
                },
                {
                    "command": "gitlens.diffLineWithWorking",
                    "when": "editorTextFocus && gitlens:activeIsBlameable && config.gitlens.advanced.menus.editorContext.lineDiff",
                    "group": "1_gitlens@2"
                },
                {
                    "command": "gitlens.showQuickCommitFileDetails",
                    "when": "editorTextFocus && gitlens:activeIsBlameable && config.gitlens.advanced.menus.editorContext.details",
                    "group": "1_gitlens@3"
                },
                {
                    "command": "gitlens.diffWithPrevious",
                    "when": "editorTextFocus && gitlens:activeIsTracked && config.gitlens.advanced.menus.editorContext.fileDiff",
                    "group": "1_gitlens_1@1"
                },
                {
                    "command": "gitlens.diffWithWorking",
                    "when": "editorTextFocus && gitlens:activeIsTracked && config.gitlens.advanced.menus.editorContext.fileDiff",
                    "group": "1_gitlens_1@2"
                },
                {
                    "command": "gitlens.showQuickFileHistory",
                    "when": "gitlens:activeIsTracked && config.gitlens.advanced.menus.editorContext.history",
                    "group": "3_gitlens@1"
                },
                {
                    "command": "gitlens.toggleFileBlame",
                    "when": "editorTextFocus && gitlens:activeIsBlameable && config.gitlens.advanced.menus.editorContext.blame",
                    "group": "3_gitlens@2"
                },
                {
                    "command": "gitlens.copyShaToClipboard",
                    "when": "editorTextFocus && gitlens:activeIsBlameable && config.gitlens.advanced.menus.editorContext.copy",
                    "group": "9_gitlens@1"
                },
                {
                    "command": "gitlens.copyMessageToClipboard",
                    "when": "editorTextFocus && gitlens:activeIsBlameable && config.gitlens.advanced.menus.editorContext.copy",
                    "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.toggleFileBlame",
                    "alt": "gitlens.toggleFileRecentChanges",
                    "when": "gitlens:activeIsBlameable && !gitlens:annotationStatus && config.gitlens.advanced.menus.editorTitle.blame",
                    "group": "navigation@100"
                },
                {
                    "command": "gitlens.computingFileAnnotations",
                    "when": "gitlens:activeIsBlameable && gitlens:annotationStatus == computing && config.gitlens.advanced.menus.editorTitle.blame",
                    "group": "navigation@100"
                },
                {
                    "command": "gitlens.clearFileAnnotations",
                    "when": "gitlens:activeIsBlameable && gitlens:annotationStatus == computed && config.gitlens.advanced.menus.editorTitle.blame",
                    "group": "navigation@100"
                },
                {
                    "command": "gitlens.openFileInRemote",
                    "when": "gitlens:enabled && gitlens:activeHasRemote && config.gitlens.advanced.menus.editorTitle.remote",
                    "group": "2_gitlens"
                },
                {
                    "command": "gitlens.openRepoInRemote",
                    "when": "gitlens:enabled && gitlens:activeHasRemote && config.gitlens.advanced.menus.editorTitle.remote",
                    "group": "2_gitlens"
                },
                {
                    "command": "gitlens.diffWithPrevious",
                    "when": "editorTextFocus && gitlens:activeIsTracked && config.gitlens.advanced.menus.editorTitle.fileDiff",
                    "group": "2_gitlens_1"
                },
                {
                    "command": "gitlens.diffWithWorking",
                    "when": "editorTextFocus && gitlens:activeIsTracked && config.gitlens.advanced.menus.editorTitle.fileDiff",
                    "group": "2_gitlens_1"
                },
                {
                    "command": "gitlens.showQuickFileHistory",
                    "when": "editorFocus && gitlens:activeIsTracked && config.gitlens.advanced.menus.editorTitle.history",
                    "group": "2_gitlens_2"
                },
                {
                    "command": "gitlens.showQuickRepoHistory",
                    "when": "!editorFocus && gitlens:enabled && config.gitlens.advanced.menus.editorTitle.history",
                    "group": "2_gitlens_2"
                },
                {
                    "command": "gitlens.showQuickRepoStatus",
                    "when": "gitlens:enabled && config.gitlens.advanced.menus.editorTitle.status",
                    "group": "2_gitlens_2"
                }
            ],
            "editor/title/context": [
                {
                    "command": "gitlens.openFileInRemote",
                    "when": "gitlens:enabled && gitlens:activeHasRemote && config.gitlens.advanced.menus.editorTitleContext.remote",
                    "group": "1_gitlens"
                },
                {
                    "command": "gitlens.diffWithPrevious",
                    "when": "gitlens:enabled && config.gitlens.advanced.menus.editorTitleContext.fileDiff",
                    "group": "1_gitlens_1@1"
                },
                {
                    "command": "gitlens.diffWithWorking",
                    "when": "gitlens:enabled && config.gitlens.advanced.menus.editorTitleContext.fileDiff",
                    "group": "1_gitlens_1@2"
                },
                {
                    "command": "gitlens.showQuickFileHistory",
                    "when": "gitlens:enabled && config.gitlens.advanced.menus.editorTitleContext.history",
                    "group": "1_gitlens_2@1"
                },
                {
                    "command": "gitlens.toggleFileBlame",
                    "when": "gitlens:enabled && config.gitlens.advanced.menus.editorTitleContext.blame",
                    "group": "1_gitlens_2@2"
                }
            ],
            "explorer/context": [
                {
                    "command": "gitlens.openFileInRemote",
                    "when": "!explorerResourceIsRoot && !explorerResourceIsFolder && gitlens:enabled && gitlens:hasRemotes && config.gitlens.advanced.menus.explorerContext.remote",
                    "group": "navigation@100"
                },
                {
                    "command": "gitlens.diffWithPrevious",
                    "when": "!explorerResourceIsRoot && !explorerResourceIsFolder && gitlens:enabled && config.gitlens.advanced.menus.explorerContext.fileDiff",
                    "group": "1_gitlens@1"
                },
                {
                    "command": "gitlens.diffWithWorking",
                    "when": "!explorerResourceIsRoot && !explorerResourceIsFolder && gitlens:enabled && config.gitlens.advanced.menus.explorerContext.fileDiff",
                    "group": "1_gitlens@2"
                },
                {
                    "command": "gitlens.showQuickFileHistory",
                    "when": "!explorerResourceIsRoot && !explorerResourceIsFolder && gitlens:enabled && config.gitlens.advanced.menus.explorerContext.history",
                    "group": "1_gitlens_1@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 && 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 && 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": {
            "explorer": [
                {
                    "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 ./",

        "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.21",
        "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": "9.6.6",
        "@types/tmp": "0.0.33",
        "husky": "0.14.3",
        "ts-loader": "4.2.0",
        "tslint": "5.9.1",
        "typescript": "2.8.3",
        "uglify-es": "3.3.9",
        "uglifyjs-webpack-plugin": "1.2.5",
        "vscode": "1.1.14",
        "webpack": "4.6.0",
        "webpack-cli": "2.0.14",
        "webpack-node-externals": "1.7.2"
    }
}