From d1936765028d40847d1a9be2fda94c843a5d1f5b Mon Sep 17 00:00:00 2001 From: Eric Amodio Date: Sun, 25 Jun 2017 23:41:03 -0400 Subject: [PATCH] Adds status icons to explorer views Adds templating support to explorer views --- images/dark/icon-commit.svg | 2 +- images/dark/icon-refresh.svg | 5 + images/dark/icon-status-added.svg | 6 + images/dark/icon-status-conflict.svg | 6 + images/dark/icon-status-copied.svg | 6 + images/dark/icon-status-deleted.svg | 6 + images/dark/icon-status-ignored.svg | 6 + images/dark/icon-status-modified.svg | 6 + images/dark/icon-status-renamed.svg | 6 + images/dark/icon-status-untracked.svg | 6 + images/light/icon-commit.svg | 2 +- images/light/icon-refresh.svg | 5 + images/light/icon-status-added.svg | 6 + images/light/icon-status-conflict.svg | 6 + images/light/icon-status-copied.svg | 6 + images/light/icon-status-deleted.svg | 6 + images/light/icon-status-ignored.svg | 6 + images/light/icon-status-modified.svg | 6 + images/light/icon-status-renamed.svg | 6 + images/light/icon-status-untracked.svg | 6 + package.json | 2997 ++++++++++++++++---------------- src/configuration.ts | 7 +- src/git/models/status.ts | 15 + src/views/commitFileNode.ts | 15 +- src/views/commitNode.ts | 4 +- src/views/stashCommitNode.ts | 4 +- 26 files changed, 1646 insertions(+), 1506 deletions(-) create mode 100644 images/dark/icon-status-added.svg create mode 100644 images/dark/icon-status-conflict.svg create mode 100644 images/dark/icon-status-copied.svg create mode 100644 images/dark/icon-status-deleted.svg create mode 100644 images/dark/icon-status-ignored.svg create mode 100644 images/dark/icon-status-modified.svg create mode 100644 images/dark/icon-status-renamed.svg create mode 100644 images/dark/icon-status-untracked.svg create mode 100644 images/light/icon-refresh.svg create mode 100644 images/light/icon-status-added.svg create mode 100644 images/light/icon-status-conflict.svg create mode 100644 images/light/icon-status-copied.svg create mode 100644 images/light/icon-status-deleted.svg create mode 100644 images/light/icon-status-ignored.svg create mode 100644 images/light/icon-status-modified.svg create mode 100644 images/light/icon-status-renamed.svg create mode 100644 images/light/icon-status-untracked.svg diff --git a/images/dark/icon-commit.svg b/images/dark/icon-commit.svg index 33f77ba..2e6dc1c 100644 --- a/images/dark/icon-commit.svg +++ b/images/dark/icon-commit.svg @@ -1,4 +1,4 @@ - + \ No newline at end of file diff --git a/images/dark/icon-refresh.svg b/images/dark/icon-refresh.svg index e69de29..c916dd2 100644 --- a/images/dark/icon-refresh.svg +++ b/images/dark/icon-refresh.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/images/dark/icon-status-added.svg b/images/dark/icon-status-added.svg new file mode 100644 index 0000000..cdc40f4 --- /dev/null +++ b/images/dark/icon-status-added.svg @@ -0,0 +1,6 @@ + + + + A + + \ No newline at end of file diff --git a/images/dark/icon-status-conflict.svg b/images/dark/icon-status-conflict.svg new file mode 100644 index 0000000..53b243c --- /dev/null +++ b/images/dark/icon-status-conflict.svg @@ -0,0 +1,6 @@ + + + + C + + \ No newline at end of file diff --git a/images/dark/icon-status-copied.svg b/images/dark/icon-status-copied.svg new file mode 100644 index 0000000..7bd78c9 --- /dev/null +++ b/images/dark/icon-status-copied.svg @@ -0,0 +1,6 @@ + + + + C + + \ No newline at end of file diff --git a/images/dark/icon-status-deleted.svg b/images/dark/icon-status-deleted.svg new file mode 100644 index 0000000..e7596e2 --- /dev/null +++ b/images/dark/icon-status-deleted.svg @@ -0,0 +1,6 @@ + + + + D + + \ No newline at end of file diff --git a/images/dark/icon-status-ignored.svg b/images/dark/icon-status-ignored.svg new file mode 100644 index 0000000..85abc36 --- /dev/null +++ b/images/dark/icon-status-ignored.svg @@ -0,0 +1,6 @@ + + + + I + + \ No newline at end of file diff --git a/images/dark/icon-status-modified.svg b/images/dark/icon-status-modified.svg new file mode 100644 index 0000000..d0de37d --- /dev/null +++ b/images/dark/icon-status-modified.svg @@ -0,0 +1,6 @@ + + + + M + + \ No newline at end of file diff --git a/images/dark/icon-status-renamed.svg b/images/dark/icon-status-renamed.svg new file mode 100644 index 0000000..a77fb41 --- /dev/null +++ b/images/dark/icon-status-renamed.svg @@ -0,0 +1,6 @@ + + + + R + + \ No newline at end of file diff --git a/images/dark/icon-status-untracked.svg b/images/dark/icon-status-untracked.svg new file mode 100644 index 0000000..c6a48e1 --- /dev/null +++ b/images/dark/icon-status-untracked.svg @@ -0,0 +1,6 @@ + + + + U + + \ No newline at end of file diff --git a/images/light/icon-commit.svg b/images/light/icon-commit.svg index ac914a4..4724a89 100644 --- a/images/light/icon-commit.svg +++ b/images/light/icon-commit.svg @@ -1,4 +1,4 @@ - + \ No newline at end of file diff --git a/images/light/icon-refresh.svg b/images/light/icon-refresh.svg new file mode 100644 index 0000000..e11b8f9 --- /dev/null +++ b/images/light/icon-refresh.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/images/light/icon-status-added.svg b/images/light/icon-status-added.svg new file mode 100644 index 0000000..587fc08 --- /dev/null +++ b/images/light/icon-status-added.svg @@ -0,0 +1,6 @@ + + + + A + + \ No newline at end of file diff --git a/images/light/icon-status-conflict.svg b/images/light/icon-status-conflict.svg new file mode 100644 index 0000000..b6088ec --- /dev/null +++ b/images/light/icon-status-conflict.svg @@ -0,0 +1,6 @@ + + + + C + + \ No newline at end of file diff --git a/images/light/icon-status-copied.svg b/images/light/icon-status-copied.svg new file mode 100644 index 0000000..151fdb2 --- /dev/null +++ b/images/light/icon-status-copied.svg @@ -0,0 +1,6 @@ + + + + C + + \ No newline at end of file diff --git a/images/light/icon-status-deleted.svg b/images/light/icon-status-deleted.svg new file mode 100644 index 0000000..7ed166a --- /dev/null +++ b/images/light/icon-status-deleted.svg @@ -0,0 +1,6 @@ + + + + D + + \ No newline at end of file diff --git a/images/light/icon-status-ignored.svg b/images/light/icon-status-ignored.svg new file mode 100644 index 0000000..85abc36 --- /dev/null +++ b/images/light/icon-status-ignored.svg @@ -0,0 +1,6 @@ + + + + I + + \ No newline at end of file diff --git a/images/light/icon-status-modified.svg b/images/light/icon-status-modified.svg new file mode 100644 index 0000000..ff338b8 --- /dev/null +++ b/images/light/icon-status-modified.svg @@ -0,0 +1,6 @@ + + + + M + + \ No newline at end of file diff --git a/images/light/icon-status-renamed.svg b/images/light/icon-status-renamed.svg new file mode 100644 index 0000000..a77fb41 --- /dev/null +++ b/images/light/icon-status-renamed.svg @@ -0,0 +1,6 @@ + + + + R + + \ No newline at end of file diff --git a/images/light/icon-status-untracked.svg b/images/light/icon-status-untracked.svg new file mode 100644 index 0000000..c6a48e1 --- /dev/null +++ b/images/light/icon-status-untracked.svg @@ -0,0 +1,6 @@ + + + + U + + \ No newline at end of file diff --git a/package.json b/package.json index 005bdc1..f403db8 100644 --- a/package.json +++ b/package.json @@ -1,1498 +1,1503 @@ -{ - "name": "gitlens", - "version": "4.2.0", - "author": { - "name": "Eric Amodio", - "email": "eamodio@gmail.com" - }, - "publisher": "eamodio", - "engines": { - "vscode": "^1.13.0" - }, - "license": "SEE LICENSE IN LICENSE", - "displayName": "Git Lens \u2014 git blame annotations, code lens, and more", - "description": "Supercharge Visual Studio Code's Git capabilities \u2014 Visualize code authorship at a glance via Git blame annotations and code lens, seamlessly navigate and explore the history of a file or branch, gain valuable insights via powerful comparison commands, and so much more", - "badges": [ - { - "url": "https://badges.gitter.im/vscode-gitlens/Lobby.svg", - "href": "https://gitter.im/vscode-gitlens/Lobby", - "description": "Chat at https://gitter.im/vscode-gitlens/Lobby" - } - ], - "categories": [ - "Other" - ], - "keywords": [ - "git", - "code lens", - "blame", - "history", - "annotation", - "log", - "inline blame", - "compare", - "diff" - ], - "galleryBanner": { - "color": "#56098c", - "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/src/extension", - "contributes": { - "configuration": { - "type": "object", - "title": "GitLens configuration", - "properties": { - "gitlens.debug": { - "type": "boolean", - "default": false, - "description": "Specifies debug mode" - }, - "gitlens.insiders": { - "type": "boolean", - "default": false, - "description": "Specifies whether or not to enable new experimental features (expect there to be issues)" - }, - "gitlens.outputLevel": { - "type": "string", - "default": "silent", - "enum": [ - "silent", - "errors", - "verbose" - ], - "description": "Specifies how much (if any) output will be sent to the GitLens output channel" - }, - "gitlens.annotations.file.gutter.format": { - "type": "string", - "default": "${message|40?} ${ago|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.annotations.file.gutter.dateFormat`)\n ${authorAgo} - commit author, relative commit date\nSee https://github.com/eamodio/vscode-gitlens/wiki/Advanced-Formatting for advanced formatting" - }, - "gitlens.annotations.file.gutter.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" - }, - "gitlens.annotations.file.gutter.compact": { - "type": "boolean", - "default": true, - "description": "Specifies whether or not to compact (deduplicate) matching adjacent gutter blame annotations" - }, - "gitlens.annotations.file.gutter.heatmap.enabled": { - "type": "boolean", - "default": true, - "description": "Specifies whether or not to provide a heatmap indicator in the gutter blame annotations" - }, - "gitlens.annotations.file.gutter.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" - }, - "gitlens.annotations.file.gutter.hover.details": { - "type": "boolean", - "default": true, - "description": "Specifies whether or not to provide a commit details hover annotation over the gutter blame annotations" - }, - "gitlens.annotations.file.gutter.hover.wholeLine": { - "type": "boolean", - "default": false, - "description": "Specifies whether or not to trigger hover annotations over the whole line" - }, - "gitlens.annotations.file.hover.heatmap.enabled": { - "type": "boolean", - "default": true, - "description": "Specifies whether or not to provide heatmap indicators on the left edge of each line" - }, - "gitlens.annotations.file.hover.wholeLine": { - "type": "boolean", - "default": true, - "description": "Specifies whether or not to trigger hover annotations over the whole line" - }, - "gitlens.annotations.file.recentChanges.hover.details": { - "type": "boolean", - "default": true, - "description": "Specifies whether or not to provide a commit details hover annotation" - }, - "gitlens.annotations.file.recentChanges.hover.changes": { - "type": "boolean", - "default": true, - "description": "Specifies whether or not to provide a changes (diff) hover annotation" - }, - "gitlens.annotations.file.recentChanges.hover.wholeLine": { - "type": "boolean", - "default": true, - "description": "Specifies whether or not to trigger hover annotations over the whole line" - }, - "gitlens.annotations.line.hover.details": { - "type": "boolean", - "default": true, - "description": "Specifies whether or not to provide a commit details hover annotation for the current line" - }, - "gitlens.annotations.line.hover.changes": { - "type": "boolean", - "default": true, - "description": "Specifies whether or not to provide a changes (diff) hover annotation for the current line" - }, - "gitlens.annotations.line.trailing.format": { - "type": "string", - "default": "${authorAgo} \u2022 ${message}", - "description": "Specifies the format of the trailing 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.annotations.line.trailing.dateFormat`)\n ${authorAgo} - commit author, relative commit date\nSee https://github.com/eamodio/vscode-gitlens/wiki/Advanced-Formatting for advanced formatting" - }, - "gitlens.annotations.line.trailing.dateFormat": { - "type": "string", - "default": null, - "description": "Specifies how to format absolute dates (using the `${date}` token) in trailing blame annotations\nSee https://momentjs.com/docs/#/displaying/format/ for valid formats" - }, - "gitlens.annotations.line.trailing.hover.details": { - "type": "boolean", - "default": true, - "description": "Specifies whether or not to provide a commit details hover annotation over the trailing blame annotations" - }, - "gitlens.annotations.line.trailing.hover.changes": { - "type": "boolean", - "default": true, - "description": "Specifies whether or not to provide a changes (diff) hover annotation over the trailing blame annotations" - }, - "gitlens.annotations.line.trailing.hover.wholeLine": { - "type": "boolean", - "default": false, - "description": "Specifies whether or not to trigger hover annotations over the whole line" - }, - "gitlens.blame.file.annotationType": { - "type": "string", - "default": "gutter", - "enum": [ - "gutter", - "hover" - ], - "description": "Specifies the type of blame annotations that will be shown for the current file\n `gutter` - adds an annotation to the beginning of each line\n `hover` - shows annotations when hovering over each line" - }, - "gitlens.blame.file.lineHighlight.enabled": { - "type": "boolean", - "default": true, - "description": "Specifies whether or not to highlight lines associated with the current line" - }, - "gitlens.blame.file.lineHighlight.locations": { - "type": "array", - "default": [ - "gutter", - "line", - "overviewRuler" - ], - "items": { - "type": "string", - "enum": [ - "gutter", - "line", - "overviewRuler" - ] - }, - "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 `overviewRuler` - adds a decoration to the overviewRuler (scroll bar)" - }, - "gitlens.blame.line.enabled": { - "type": "boolean", - "default": true, - "description": "Specifies whether or not to provide a blame annotation for the current line, by default\nUse the `gitlens.toggleLineBlame` command to toggle the annotations on and off for the current session" - }, - "gitlens.blame.line.annotationType": { - "type": "string", - "default": "trailing", - "enum": [ - "trailing", - "hover" - ], - "description": "Specifies the type of blame annotations that will be shown for the current line\n `trailing` - adds an annotation to the end of the current line\n `hover` - shows annotations when hovering over the current line" - }, - "gitlens.recentChanges.file.lineHighlight.locations": { - "type": "array", - "default": [ - "gutter", - "line", - "overviewRuler" - ], - "items": { - "type": "string", - "enum": [ - "gutter", - "line", - "overviewRuler" - ] - }, - "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 `overviewRuler` - adds a decoration to the overviewRuler (scroll bar)" - }, - "gitlens.codeLens.enabled": { - "type": "boolean", - "default": true, - "description": "Specifies whether or not to provide any Git code lens, by default\nUse the `gitlens.toggleCodeLens` command to toggle the Git code lens on and off for the current session" - }, - "gitlens.codeLens.recentChange.enabled": { - "type": "boolean", - "default": true, - "description": "Specifies whether or not to show a `recent change` code lens showing the author and date of the most recent commit for the file or code block" - }, - "gitlens.codeLens.recentChange.command": { - "type": "string", - "default": "gitlens.showQuickCommitFileDetails", - "enum": [ - "gitlens.toggleFileBlame", - "gitlens.showBlameHistory", - "gitlens.showFileHistory", - "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.showBlameHistory` - opens the blame history explorer\n `gitlens.showFileHistory` - opens the file history explorer\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" - }, - "gitlens.codeLens.authors.enabled": { - "type": "boolean", - "default": true, - "description": "Specifies whether or not 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)" - }, - "gitlens.codeLens.authors.command": { - "type": "string", - "default": "gitlens.toggleFileBlame", - "enum": [ - "gitlens.toggleFileBlame", - "gitlens.showBlameHistory", - "gitlens.showFileHistory", - "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.showBlameHistory` - opens the blame history explorer\n `gitlens.showFileHistory` - opens the file history explorer\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" - }, - "gitlens.codeLens.locations": { - "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\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 `gitlens.codeLens.locationCustomSymbols`" - }, - "gitlens.codeLens.customLocationSymbols": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true, - "description": "Specifies the set of document symbols where Git code lens will be shown in the document\nMust be a member of `SymbolKind`" - }, - "gitlens.codeLens.perLanguageLocations": { - "type": "array", - "default": [ - { - "language": "css", - "locations": [ - "document" - ] - }, - { - "language": "html", - "locations": [ - "document" - ] - }, - { - "language": "json", - "locations": [ - "document" - ] - }, - { - "language": "less", - "locations": [ - "document" - ] - }, - { - "language": "scss", - "locations": [ - "document" - ] - }, - { - "language": "vue", - "locations": [ - "document" - ] - } - ], - "items": { - "type": "object", - "required": [ - "language", - "locations" - ], - "properties": { - "language": { - "type": "string", - "description": "Specifies the language to which this code lens override applies" - }, - "locations": { - "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 `customSymbols`" - }, - "customSymbols": { - "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" - }, - "gitlens.codeLens.debug": { - "type": "boolean", - "default": false, - "description": "Specifies whether or not to show debug information in code lens" - }, - "gitlens.defaultDateFormat": { - "type": "string", - "default": null, - "description": "Specifies how all absolute dates will be formatted by default\nSee https://momentjs.com/docs/#/displaying/format/ for valid formats" - }, - "gitlens.explorer.commitFormat": { - "type": "string", - "default": "${authorAgo} \u00a0\u2022\u00a0 ${message} \u00a0\u2022\u00a0 ${id}", - "description": "Specifies the format of a commit in the explorer view\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 ${authorAgo} - commit author, relative commit date\nSee https://github.com/eamodio/vscode-gitlens/wiki/Advanced-Formatting for advanced formatting" - }, - "gitlens.explorer.commitFileFormat": { - "type": "string", - "default": "${authorAgo} \u00a0\u2022\u00a0 ${message} \u00a0\u2022\u00a0 ${id}", - "description": "Specifies the format of a file commit in the explorer view\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 ${authorAgo} - commit author, relative commit date\nSee https://github.com/eamodio/vscode-gitlens/wiki/Advanced-Formatting for advanced formatting" - }, - "gitlens.explorer.stashFormat": { - "type": "string", - "default": "${authorAgo} \u00a0\u2022\u00a0 ${message} \u00a0\u2022\u00a0 ${id}", - "description": "Specifies the format of a stash in the explorer view\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 ${authorAgo} - commit author, relative commit date\nSee https://github.com/eamodio/vscode-gitlens/wiki/Advanced-Formatting for advanced formatting" - }, - "gitlens.statusBar.enabled": { - "type": "boolean", - "default": true, - "description": "Specifies whether or not to provide blame information on the status bar" - }, - "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" - }, - "gitlens.statusBar.command": { - "type": "string", - "default": "gitlens.showQuickCommitDetails", - "enum": [ - "gitlens.toggleFileBlame", - "gitlens.showBlameHistory", - "gitlens.showFileHistory", - "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.showBlameHistory` - opens the blame history explorer\n `gitlens.showFileHistory` - opens the file history explorer\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" - }, - "gitlens.statusBar.format": { - "type": "string", - "default": "${authorAgo}", - "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 ${authorAgo} - commit author, relative commit date\nSee https://github.com/eamodio/vscode-gitlens/wiki/Advanced-Formatting for advanced formatting" - }, - "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" - }, - "gitlens.strings.codeLens.unsavedChanges.recentChangeAndAuthors": { - "type": "string", - "default": "Cannot determine recent change or authors (unsaved changes)", - "description": "Specifies the string to be shown in place of both the `recent change` and `authors` code lens when there are unsaved changes" - }, - "gitlens.strings.codeLens.unsavedChanges.recentChangeOnly": { - "type": "string", - "default": "Cannot determine recent change (unsaved changes)", - "description": "Specifies the string to be shown in place of the `recent change` code lens when there are unsaved changes" - }, - "gitlens.strings.codeLens.unsavedChanges.authorsOnly": { - "type": "string", - "default": "Cannot determine authors (unsaved changes)", - "description": "Specifies the string to be shown in place of the `authors` code lens when there are unsaved changes" - }, - "gitlens.theme.annotations.file.gutter.separateLines": { - "type": "boolean", - "default": true, - "description": "Specifies whether or not gutter blame annotations will be separated by a small gap" - }, - "gitlens.theme.annotations.file.gutter.dark.backgroundColor": { - "type": "string", - "default": "rgba(255, 255, 255, 0.075)", - "description": "Specifies the dark theme background color of the gutter blame annotations. Must be a valid css color" - }, - "gitlens.theme.annotations.file.gutter.light.backgroundColor": { - "type": "string", - "default": "rgba(0, 0, 0, 0.05)", - "description": "Specifies the light theme background color of the gutter blame annotations. Must be a valid css color" - }, - "gitlens.theme.annotations.file.gutter.dark.foregroundColor": { - "type": "string", - "default": "rgb(190, 190, 190)", - "description": "Specifies the dark theme foreground color of the gutter blame annotations. Must be a valid css color" - }, - "gitlens.theme.annotations.file.gutter.light.foregroundColor": { - "type": "string", - "default": "rgb(116, 116, 116)", - "description": "Specifies the light theme foreground color of the gutter blame annotations. Must be a valid css color" - }, - "gitlens.theme.annotations.file.gutter.dark.uncommittedForegroundColor": { - "type": "string", - "default": "rgba(0, 188, 242, 0.6)", - "description": "Specifies the dark theme foreground color of an uncommitted line in the gutter blame annotations. Must be a valid css color" - }, - "gitlens.theme.annotations.file.gutter.light.uncommittedForegroundColor": { - "type": "string", - "default": "rgba(0, 188, 242, 0.6)", - "description": "Specifies the light theme foreground color of an uncommitted line in the gutter blame annotations. Must be a valid css color" - }, - "gitlens.theme.annotations.file.hover.separateLines": { - "type": "boolean", - "default": false, - "description": "Specifies whether or not hover blame annotations will be separated by a small gap (if heatmap is enabled)" - }, - "gitlens.theme.annotations.line.trailing.dark.backgroundColor": { - "type": "string", - "default": null, - "description": "Specifies the dark theme background color of the trailing blame annotation. Must be a valid css color" - }, - "gitlens.theme.annotations.line.trailing.light.backgroundColor": { - "type": "string", - "default": null, - "description": "Specifies the light theme background color of the trailing blame annotation. Must be a valid css color" - }, - "gitlens.theme.annotations.line.trailing.dark.foregroundColor": { - "type": "string", - "default": "rgba(153, 153, 153, 0.35)", - "description": "Specifies the dark theme foreground color of the trailing blame annotation. Must be a valid css color" - }, - "gitlens.theme.annotations.line.trailing.light.foregroundColor": { - "type": "string", - "default": "rgba(153, 153, 153, 0.35)", - "description": "Specifies the light theme foreground color of the trailing blame annotation. Must be a valid css color" - }, - "gitlens.theme.lineHighlight.dark.backgroundColor": { - "type": "string", - "default": "rgba(0, 188, 242, 0.2)", - "description": "Specifies the dark theme background color of the associated line highlights in blame annotations. Must be a valid css color" - }, - "gitlens.theme.lineHighlight.light.backgroundColor": { - "type": "string", - "default": "rgba(0, 188, 242, 0.2)", - "description": "Specifies the light theme background color of the associated line highlights in blame annotations. Must be a valid css color" - }, - "gitlens.theme.lineHighlight.dark.overviewRulerColor": { - "type": "string", - "default": "rgba(0, 188, 242, 0.6)", - "description": "Specifies the dark theme overview ruler color of the associated line highlights in blame annotations. Must be a valid css color" - }, - "gitlens.theme.lineHighlight.light.overviewRulerColor": { - "type": "string", - "default": "rgba(0, 188, 242, 0.6)", - "description": "Specifies the light theme overview ruler color of the associated line highlights in blame annotations. Must be a valid css color" - }, - "gitlens.advanced.caching.enabled": { - "type": "boolean", - "default": true, - "description": "Specifies whether git output will be cached" - }, - "gitlens.advanced.caching.maxLines": { - "type": "number", - "default": 0, - "description": "Specifies the threshold for caching larger documents" - }, - "gitlens.advanced.git": { - "type": "string", - "default": null, - "description": "Specifies the git path to use" - }, - "gitlens.advanced.gitignore.enabled": { - "type": "boolean", - "default": true, - "description": "Specifies whether or not to parse the root .gitignore file for better performance (i.e. avoids blaming excluded files)" - }, - "gitlens.advanced.maxQuickHistory": { - "type": "number", - "default": 200, - "description": "Specifies the maximum number of QuickPick history entries to show" - }, - "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": true, - "history": true, - "remote": true, - "status": true - }, - "editorTitleContext": { - "blame": true, - "fileDiff": true, - "history": true, - "remote": true - }, - "explorerContext": { - "fileDiff": true, - "history": true, - "remote": true - } - }, - "description": "Specifies which commands will be added to which menus", - "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 - } - } - } - } - }, - "gitlens.advanced.quickPick.closeOnFocusOut": { - "type": "boolean", - "default": true, - "description": "Specifies whether or not to close the QuickPick menu when focus is lost" - }, - "gitlens.advanced.telemetry.enabled": { - "type": "boolean", - "default": true, - "description": "Specifies whether or not to enable GitLens telemetry (even if enabled still abides by the overall `telemetry.enableTelemetry` setting" - }, - "gitlens.advanced.toggleWhitespace.enabled": { - "type": "boolean", - "default": true, - "description": "Specifies whether or not to toggle whitespace off then showing blame annotations (*may* be required by certain fonts/themes)" - } - } - }, - "commands": [ - { - "command": "gitlens.diffDirectory", - "title": "Directory Compare", - "category": "GitLens" - }, - { - "command": "gitlens.diffWithBranch", - "title": "Compare File with Branch...", - "category": "GitLens" - }, - { - "command": "gitlens.diffWithNext", - "title": "Compare File with Next Commit", - "category": "GitLens" - }, - { - "command": "gitlens.diffWithPrevious", - "title": "Compare File with Previous", - "category": "GitLens" - }, - { - "command": "gitlens.diffLineWithPrevious", - "title": "Compare Line Commit with Previous", - "category": "GitLens" - }, - { - "command": "gitlens.diffWithRevision", - "title": "Compare File with Revision...", - "category": "GitLens" - }, - { - "command": "gitlens.diffWithWorking", - "title": "Compare File with Working Tree", - "category": "GitLens" - }, - { - "command": "gitlens.diffLineWithWorking", - "title": "Compare Line Commit with Working Tree", - "category": "GitLens" - }, - { - "command": "gitlens.showFileBlame", - "title": "Show File Blame Annotations", - "category": "GitLens" - }, - { - "command": "gitlens.showLineBlame", - "title": "Show Line Blame Annotations", - "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.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.showBlameHistory", - "title": "Open Blame History Explorer", - "category": "GitLens" - }, - { - "command": "gitlens.showCommitSearch", - "title": "Search Commits", - "category": "GitLens" - }, - { - "command": "gitlens.showFileHistory", - "title": "Show File History in Explorer", - "category": "GitLens" - }, - { - "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.showStashList", - "title": "Show Stashed Changes in Explorer", - "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.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.openRepoInRemote", - "title": "Open Repository in Remote", - "category": "GitLens" - }, - { - "command": "gitlens.stashApply", - "title": "Apply Stashed Changes", - "category": "GitLens" - }, - { - "command": "gitlens.stashSave", - "title": "Stash Changes", - "category": "GitLens" - }, - { - "command": "gitlens.resetSuppressedWarnings", - "title": "Reset Suppressed Warnings", - "category": "GitLens" - }, - { - "command": "gitlens.gitExplorer.refresh", - "title": "Refresh", - "icon": { - "dark": "images/dark/icon-refresh.svg", - "light": "images/light/icon-refresh.svg" - } - }, - { - "command": "gitlens.stashExplorer.refresh", - "title": "Refresh", - "icon": { - "dark": "images/dark/icon-refresh.svg", - "light": "images/light/icon-refresh.svg" - } - } - ], - "menus": { - "commandPalette": [ - { - "command": "gitlens.diffDirectory", - "when": "gitlens:enabled" - }, - { - "command": "gitlens.diffWithBranch", - "when": "gitlens:isTracked" - }, - { - "command": "gitlens.diffWithNext", - "when": "gitlens:isTracked" - }, - { - "command": "gitlens.diffWithPrevious", - "when": "gitlens:isTracked" - }, - { - "command": "gitlens.diffLineWithPrevious", - "when": "gitlens:isBlameable" - }, - { - "command": "gitlens.diffWithRevision", - "when": "gitlens:isTracked" - }, - { - "command": "gitlens.diffWithWorking", - "when": "gitlens:isTracked" - }, - { - "command": "gitlens.diffLineWithWorking", - "when": "gitlens:isBlameable" - }, - { - "command": "gitlens.showFileBlame", - "when": "gitlens:isBlameable" - }, - { - "command": "gitlens.showLineBlame", - "when": "gitlens:isBlameable" - }, - { - "command": "gitlens.toggleFileBlame", - "when": "gitlens:isBlameable" - }, - { - "command": "gitlens.toggleFileRecentChanges", - "when": "gitlens:isTracked" - }, - { - "command": "gitlens.toggleLineBlame", - "when": "gitlens:isBlameable" - }, - { - "command": "gitlens.toggleCodeLens", - "when": "gitlens:isTracked && gitlens:canToggleCodeLens" - }, - { - "command": "gitlens.showBlameHistory", - "when": "gitlens:isBlameable" - }, - { - "command": "gitlens.showFileHistory", - "when": "gitlens:isTracked" - }, - { - "command": "gitlens.showLastQuickPick", - "when": "gitlens:enabled" - }, - { - "command": "gitlens.showQuickCommitDetails", - "when": "gitlens:isBlameable" - }, - { - "command": "gitlens.showQuickCommitFileDetails", - "when": "gitlens:isBlameable" - }, - { - "command": "gitlens.showQuickFileHistory", - "when": "gitlens:isTracked" - }, - { - "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.showStashList", - "when": "gitlens:enabled" - }, - { - "command": "gitlens.copyShaToClipboard", - "when": "gitlens:isBlameable" - }, - { - "command": "gitlens.copyMessageToClipboard", - "when": "gitlens:isBlameable" - }, - { - "command": "gitlens.closeUnchangedFiles", - "when": "gitlens:enabled" - }, - { - "command": "gitlens.openChangedFiles", - "when": "gitlens:enabled" - }, - { - "command": "gitlens.openBranchInRemote", - "when": "gitlens:hasRemotes" - }, - { - "command": "gitlens.openCommitInRemote", - "when": "gitlens:isBlameable && gitlens:hasRemotes" - }, - { - "command": "gitlens.openFileInRemote", - "when": "gitlens:isTracked && gitlens:hasRemotes" - }, - { - "command": "gitlens.openRepoInRemote", - "when": "gitlens:hasRemotes" - }, - { - "command": "gitlens.stashApply", - "when": "gitlens:enabled" - }, - { - "command": "gitlens.stashSave", - "when": "gitlens:enabled" - }, - { - "command": "gitlens.resetSuppressedWarnings", - "when": "gitlens:enabled" - }, - { - "command": "gitlens.gitExplorer.refresh", - "when": "gitlens:enabled" - }, - { - "command": "gitlens.stashExplorer.refresh", - "when": "gitlens:enabled" - } - ], - "editor/context": [ - { - "command": "gitlens.openFileInRemote", - "when": "editorTextFocus && gitlens:isTracked && gitlens:hasRemotes && config.gitlens.advanced.menus.editorContext.remote", - "group": "navigation@100" - }, - { - "command": "gitlens.diffLineWithPrevious", - "when": "editorTextFocus && gitlens:isBlameable && config.gitlens.advanced.menus.editorContext.lineDiff", - "group": "1_gitlens@1" - }, - { - "command": "gitlens.diffLineWithWorking", - "when": "editorTextFocus && gitlens:isBlameable && config.gitlens.advanced.menus.editorContext.lineDiff", - "group": "1_gitlens@2" - }, - { - "command": "gitlens.showQuickCommitFileDetails", - "when": "editorTextFocus && gitlens:isBlameable && config.gitlens.advanced.menus.editorContext.details", - "group": "1_gitlens@3" - }, - { - "command": "gitlens.diffWithPrevious", - "when": "editorTextFocus && gitlens:isTracked && config.gitlens.advanced.menus.editorContext.fileDiff", - "group": "1_gitlens_1@1" - }, - { - "command": "gitlens.diffWithWorking", - "when": "editorTextFocus && gitlens:isTracked && config.gitlens.advanced.menus.editorContext.fileDiff", - "group": "1_gitlens_1@2" - }, - { - "command": "gitlens.showQuickFileHistory", - "when": "gitlens:isTracked && config.gitlens.advanced.menus.editorContext.history", - "group": "3_gitlens@1" - }, - { - "command": "gitlens.toggleFileBlame", - "when": "editorTextFocus && gitlens:isBlameable && config.gitlens.advanced.menus.editorContext.blame", - "group": "3_gitlens@2" - }, - { - "command": "gitlens.copyShaToClipboard", - "when": "editorTextFocus && gitlens:isBlameable && config.gitlens.advanced.menus.editorContext.copy", - "group": "9_gitlens@1" - }, - { - "command": "gitlens.copyMessageToClipboard", - "when": "editorTextFocus && gitlens:isBlameable && config.gitlens.advanced.menus.editorContext.copy", - "group": "9_gitlens@2" - } - ], - "editor/title": [ - { - "command": "gitlens.toggleFileBlame", - "alt": "gitlens.toggleFileRecentChanges", - "when": "gitlens:isBlameable && config.gitlens.advanced.menus.editorTitle.blame", - "group": "navigation@100" - }, - { - "command": "gitlens.openFileInRemote", - "when": "gitlens:enabled && config.gitlens.advanced.menus.editorTitleContext.remote", - "group": "1_gitlens" - }, - { - "command": "gitlens.openRepoInRemote", - "when": "gitlens:enabled && config.gitlens.advanced.menus.editorTitleContext.remote", - "group": "1_gitlens" - }, - { - "command": "gitlens.diffWithPrevious", - "when": "editorTextFocus && gitlens:isTracked && config.gitlens.advanced.menus.editorTitle.fileDiff", - "group": "2_gitlens" - }, - { - "command": "gitlens.diffWithWorking", - "when": "editorTextFocus && gitlens:isTracked && config.gitlens.advanced.menus.editorTitle.fileDiff", - "group": "2_gitlens" - }, - { - "command": "gitlens.showQuickFileHistory", - "when": "editorFocus && gitlens:isTracked && config.gitlens.advanced.menus.editorTitle.history", - "group": "2_gitlens_1" - }, - { - "command": "gitlens.showQuickRepoHistory", - "when": "!editorFocus && gitlens:enabled && config.gitlens.advanced.menus.editorTitle.history", - "group": "2_gitlens_1" - }, - { - "command": "gitlens.showQuickRepoStatus", - "when": "gitlens:enabled && config.gitlens.advanced.menus.editorTitle.status", - "group": "2_gitlens_1" - } - ], - "editor/title/context": [ - { - "command": "gitlens.openFileInRemote", - "when": "gitlens:enabled && 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": "gitlens:enabled && config.gitlens.advanced.menus.explorerContext.remote", - "group": "navigation@100" - }, - { - "command": "gitlens.diffWithPrevious", - "when": "gitlens:enabled && config.gitlens.advanced.menus.explorerContext.fileDiff", - "group": "1_gitlens@1" - }, - { - "command": "gitlens.diffWithWorking", - "when": "gitlens:enabled && config.gitlens.advanced.menus.explorerContext.fileDiff", - "group": "1_gitlens@2" - }, - { - "command": "gitlens.showQuickFileHistory", - "when": "gitlens:enabled && config.gitlens.advanced.menus.explorerContext.history", - "group": "1_gitlens_1@1" - } - ], - "scm/resourceGroup/context": [ - { - "command": "gitlens.openChangedFiles", - "when": "gitlens:enabled", - "group": "1_gitlens@1" - }, - { - "command": "gitlens.closeUnchangedFiles", - "when": "gitlens:enabled", - "group": "1_gitlens@2" - } - ], - "scm/resourceState/context": [ - { - "command": "gitlens.openFileInRemote", - "when": "gitlens:enabled && gitlens:hasRemotes", - "group": "navigation" - }, - { - "command": "gitlens.diffWithRevision", - "when": "gitlens:enabled", - "group": "1_gitlens@1" - }, - { - "command": "gitlens.showQuickFileHistory", - "when": "gitlens:enabled", - "group": "1_gitlens_1@1" - } - ], - "view/title": [ - { - "command": "gitlens.gitExplorer.refresh", - "when": "gitlens:enabled && view == gitlens.gitExplorer", - "group": "navigation" - }, - { - "command": "gitlens.stashExplorer.refresh", - "when": "gitlens:enabled && view == gitlens.stashExplorer", - "group": "navigation" - } - ], - "view/item/context": [ - { - "command": "gitlens.openCommitInRemote", - "when": "gitlens:enabled && view == gitlens.gitExplorer && viewItem == commit", - "group": "1_gitlens@1" - }, - { - "command": "gitlens.openFileInRemote", - "when": "gitlens:enabled && view == gitlens.gitExplorer && viewItem == commit-file", - "group": "1_gitlens@2" - }, - { - "command": "gitlens.diffWithPrevious", - "when": "gitlens:enabled && view == gitlens.gitExplorer && viewItem == commit-file", - "group": "2_gitlens@1" - }, - { - "command": "gitlens.diffWithWorking", - "when": "gitlens:enabled && view == gitlens.gitExplorer && viewItem == commit-file", - "group": "2_gitlens@2" - }, - { - "command": "gitlens.openCommitInRemote", - "when": "gitlens:enabled && view == gitlens.stashExplorer && viewItem == stash-commit", - "group": "1_gitlens@1" - }, - { - "command": "gitlens.openFileInRemote", - "when": "gitlens:enabled && view == gitlens.stashExplorer && viewItem == commit-file", - "group": "1_gitlens@2" - }, - { - "command": "gitlens.diffWithPrevious", - "when": "gitlens:enabled && view == gitlens.stashExplorer && viewItem == commit-file", - "group": "2_gitlens@1" - }, - { - "command": "gitlens.diffWithWorking", - "when": "gitlens:enabled && view == gitlens.stashExplorer && viewItem == commit-file", - "group": "2_gitlens@2" - } - ] - }, - "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" - }, - { - "command": "gitlens.toggleFileBlame", - "key": "alt+b", - "when": "editorTextFocus && gitlens:isTracked" - }, - { - "command": "gitlens.toggleCodeLens", - "key": "shift+alt+b", - "when": "editorTextFocus && gitlens:isTracked && gitlens:canToggleCodeLens" - }, - { - "command": "gitlens.showLastQuickPick", - "key": "alt+-", - "when": "gitlens:enabled" - }, - { - "command": "gitlens.showCommitSearch", - "key": "alt+/", - "when": "gitlens:enabled" - }, - { - "command": "gitlens.showQuickFileHistory", - "key": "alt+h", - "when": "gitlens:enabled" - }, - { - "command": "gitlens.showQuickRepoHistory", - "key": "shift+alt+h", - "when": "gitlens:enabled" - }, - { - "command": "gitlens.showQuickRepoStatus", - "key": "alt+s", - "when": "gitlens:enabled" - }, - { - "command": "gitlens.showQuickCommitFileDetails", - "key": "alt+c", - "when": "editorTextFocus && gitlens:enabled" - }, - { - "command": "gitlens.diffWithNext", - "key": "alt+.", - "when": "editorTextFocus && gitlens:isTracked" - }, - { - "command": "gitlens.diffLineWithPrevious", - "key": "shift+alt+,", - "when": "editorTextFocus && gitlens:isTracked" - }, - { - "command": "gitlens.diffWithPrevious", - "key": "alt+,", - "when": "editorTextFocus && gitlens:isTracked" - }, - { - "command": "gitlens.diffLineWithWorking", - "key": "alt+w", - "when": "editorTextFocus && gitlens:isTracked" - }, - { - "command": "gitlens.diffWithWorking", - "key": "shift+alt+w", - "when": "editorTextFocus && gitlens:isTracked" - } - ], - "views": { - "explorer": [ - { +{ + "name": "gitlens", + "version": "4.2.0", + "author": { + "name": "Eric Amodio", + "email": "eamodio@gmail.com" + }, + "publisher": "eamodio", + "engines": { + "vscode": "^1.13.0" + }, + "license": "SEE LICENSE IN LICENSE", + "displayName": "Git Lens \u2014 git blame annotations, code lens, and more", + "description": "Supercharge Visual Studio Code's Git capabilities \u2014 Visualize code authorship at a glance via Git blame annotations and code lens, seamlessly navigate and explore the history of a file or branch, gain valuable insights via powerful comparison commands, and so much more", + "badges": [ + { + "url": "https://badges.gitter.im/vscode-gitlens/Lobby.svg", + "href": "https://gitter.im/vscode-gitlens/Lobby", + "description": "Chat at https://gitter.im/vscode-gitlens/Lobby" + } + ], + "categories": [ + "Other" + ], + "keywords": [ + "git", + "code lens", + "blame", + "history", + "annotation", + "log", + "inline blame", + "compare", + "diff" + ], + "galleryBanner": { + "color": "#56098c", + "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/src/extension", + "contributes": { + "configuration": { + "type": "object", + "title": "GitLens configuration", + "properties": { + "gitlens.debug": { + "type": "boolean", + "default": false, + "description": "Specifies debug mode" + }, + "gitlens.insiders": { + "type": "boolean", + "default": false, + "description": "Specifies whether or not to enable new experimental features (expect there to be issues)" + }, + "gitlens.outputLevel": { + "type": "string", + "default": "silent", + "enum": [ + "silent", + "errors", + "verbose" + ], + "description": "Specifies how much (if any) output will be sent to the GitLens output channel" + }, + "gitlens.annotations.file.gutter.format": { + "type": "string", + "default": "${message|40?} ${ago|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.annotations.file.gutter.dateFormat`)\n ${authorAgo} - commit author, relative commit date\nSee https://github.com/eamodio/vscode-gitlens/wiki/Advanced-Formatting for advanced formatting" + }, + "gitlens.annotations.file.gutter.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" + }, + "gitlens.annotations.file.gutter.compact": { + "type": "boolean", + "default": true, + "description": "Specifies whether or not to compact (deduplicate) matching adjacent gutter blame annotations" + }, + "gitlens.annotations.file.gutter.heatmap.enabled": { + "type": "boolean", + "default": true, + "description": "Specifies whether or not to provide a heatmap indicator in the gutter blame annotations" + }, + "gitlens.annotations.file.gutter.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" + }, + "gitlens.annotations.file.gutter.hover.details": { + "type": "boolean", + "default": true, + "description": "Specifies whether or not to provide a commit details hover annotation over the gutter blame annotations" + }, + "gitlens.annotations.file.gutter.hover.wholeLine": { + "type": "boolean", + "default": false, + "description": "Specifies whether or not to trigger hover annotations over the whole line" + }, + "gitlens.annotations.file.hover.heatmap.enabled": { + "type": "boolean", + "default": true, + "description": "Specifies whether or not to provide heatmap indicators on the left edge of each line" + }, + "gitlens.annotations.file.hover.wholeLine": { + "type": "boolean", + "default": true, + "description": "Specifies whether or not to trigger hover annotations over the whole line" + }, + "gitlens.annotations.file.recentChanges.hover.details": { + "type": "boolean", + "default": true, + "description": "Specifies whether or not to provide a commit details hover annotation" + }, + "gitlens.annotations.file.recentChanges.hover.changes": { + "type": "boolean", + "default": true, + "description": "Specifies whether or not to provide a changes (diff) hover annotation" + }, + "gitlens.annotations.file.recentChanges.hover.wholeLine": { + "type": "boolean", + "default": true, + "description": "Specifies whether or not to trigger hover annotations over the whole line" + }, + "gitlens.annotations.line.hover.details": { + "type": "boolean", + "default": true, + "description": "Specifies whether or not to provide a commit details hover annotation for the current line" + }, + "gitlens.annotations.line.hover.changes": { + "type": "boolean", + "default": true, + "description": "Specifies whether or not to provide a changes (diff) hover annotation for the current line" + }, + "gitlens.annotations.line.trailing.format": { + "type": "string", + "default": "${authorAgo} \u2022 ${message}", + "description": "Specifies the format of the trailing 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.annotations.line.trailing.dateFormat`)\n ${authorAgo} - commit author, relative commit date\nSee https://github.com/eamodio/vscode-gitlens/wiki/Advanced-Formatting for advanced formatting" + }, + "gitlens.annotations.line.trailing.dateFormat": { + "type": "string", + "default": null, + "description": "Specifies how to format absolute dates (using the `${date}` token) in trailing blame annotations\nSee https://momentjs.com/docs/#/displaying/format/ for valid formats" + }, + "gitlens.annotations.line.trailing.hover.details": { + "type": "boolean", + "default": true, + "description": "Specifies whether or not to provide a commit details hover annotation over the trailing blame annotations" + }, + "gitlens.annotations.line.trailing.hover.changes": { + "type": "boolean", + "default": true, + "description": "Specifies whether or not to provide a changes (diff) hover annotation over the trailing blame annotations" + }, + "gitlens.annotations.line.trailing.hover.wholeLine": { + "type": "boolean", + "default": false, + "description": "Specifies whether or not to trigger hover annotations over the whole line" + }, + "gitlens.blame.file.annotationType": { + "type": "string", + "default": "gutter", + "enum": [ + "gutter", + "hover" + ], + "description": "Specifies the type of blame annotations that will be shown for the current file\n `gutter` - adds an annotation to the beginning of each line\n `hover` - shows annotations when hovering over each line" + }, + "gitlens.blame.file.lineHighlight.enabled": { + "type": "boolean", + "default": true, + "description": "Specifies whether or not to highlight lines associated with the current line" + }, + "gitlens.blame.file.lineHighlight.locations": { + "type": "array", + "default": [ + "gutter", + "line", + "overviewRuler" + ], + "items": { + "type": "string", + "enum": [ + "gutter", + "line", + "overviewRuler" + ] + }, + "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 `overviewRuler` - adds a decoration to the overviewRuler (scroll bar)" + }, + "gitlens.blame.line.enabled": { + "type": "boolean", + "default": true, + "description": "Specifies whether or not to provide a blame annotation for the current line, by default\nUse the `gitlens.toggleLineBlame` command to toggle the annotations on and off for the current session" + }, + "gitlens.blame.line.annotationType": { + "type": "string", + "default": "trailing", + "enum": [ + "trailing", + "hover" + ], + "description": "Specifies the type of blame annotations that will be shown for the current line\n `trailing` - adds an annotation to the end of the current line\n `hover` - shows annotations when hovering over the current line" + }, + "gitlens.recentChanges.file.lineHighlight.locations": { + "type": "array", + "default": [ + "gutter", + "line", + "overviewRuler" + ], + "items": { + "type": "string", + "enum": [ + "gutter", + "line", + "overviewRuler" + ] + }, + "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 `overviewRuler` - adds a decoration to the overviewRuler (scroll bar)" + }, + "gitlens.codeLens.enabled": { + "type": "boolean", + "default": true, + "description": "Specifies whether or not to provide any Git code lens, by default\nUse the `gitlens.toggleCodeLens` command to toggle the Git code lens on and off for the current session" + }, + "gitlens.codeLens.recentChange.enabled": { + "type": "boolean", + "default": true, + "description": "Specifies whether or not to show a `recent change` code lens showing the author and date of the most recent commit for the file or code block" + }, + "gitlens.codeLens.recentChange.command": { + "type": "string", + "default": "gitlens.showQuickCommitFileDetails", + "enum": [ + "gitlens.toggleFileBlame", + "gitlens.showBlameHistory", + "gitlens.showFileHistory", + "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.showBlameHistory` - opens the blame history explorer\n `gitlens.showFileHistory` - opens the file history explorer\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" + }, + "gitlens.codeLens.authors.enabled": { + "type": "boolean", + "default": true, + "description": "Specifies whether or not 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)" + }, + "gitlens.codeLens.authors.command": { + "type": "string", + "default": "gitlens.toggleFileBlame", + "enum": [ + "gitlens.toggleFileBlame", + "gitlens.showBlameHistory", + "gitlens.showFileHistory", + "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.showBlameHistory` - opens the blame history explorer\n `gitlens.showFileHistory` - opens the file history explorer\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" + }, + "gitlens.codeLens.locations": { + "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\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 `gitlens.codeLens.locationCustomSymbols`" + }, + "gitlens.codeLens.customLocationSymbols": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true, + "description": "Specifies the set of document symbols where Git code lens will be shown in the document\nMust be a member of `SymbolKind`" + }, + "gitlens.codeLens.perLanguageLocations": { + "type": "array", + "default": [ + { + "language": "css", + "locations": [ + "document" + ] + }, + { + "language": "html", + "locations": [ + "document" + ] + }, + { + "language": "json", + "locations": [ + "document" + ] + }, + { + "language": "less", + "locations": [ + "document" + ] + }, + { + "language": "scss", + "locations": [ + "document" + ] + }, + { + "language": "vue", + "locations": [ + "document" + ] + } + ], + "items": { + "type": "object", + "required": [ + "language", + "locations" + ], + "properties": { + "language": { + "type": "string", + "description": "Specifies the language to which this code lens override applies" + }, + "locations": { + "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 `customSymbols`" + }, + "customSymbols": { + "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" + }, + "gitlens.codeLens.debug": { + "type": "boolean", + "default": false, + "description": "Specifies whether or not to show debug information in code lens" + }, + "gitlens.defaultDateFormat": { + "type": "string", + "default": null, + "description": "Specifies how all absolute dates will be formatted by default\nSee https://momentjs.com/docs/#/displaying/format/ for valid formats" + }, + "gitlens.gitExplorer.commitFormat": { + "type": "string", + "default": "${authorAgo} \u00a0\u2022\u00a0 ${message} \u00a0\u2022\u00a0 ${id}", + "description": "Specifies the format of a commit in the explorer view\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 ${authorAgo} - commit author, relative commit date\nSee https://github.com/eamodio/vscode-gitlens/wiki/Advanced-Formatting for advanced formatting" + }, + "gitlens.gitExplorer.commitFileFormat": { + "type": "string", + "default": "${file} \u00a0\u2022\u00a0 ${path}", + "description": "Specifies the format of a file commit in the explorer view\nAvailable tokens\n ${file} - file name\n ${path} - file path" + }, + "gitlens.stashExplorer.stashFormat": { + "type": "string", + "default": "${message}", + "description": "Specifies the format of a stash in the explorer view\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 ${authorAgo} - commit author, relative commit date\nSee https://github.com/eamodio/vscode-gitlens/wiki/Advanced-Formatting for advanced formatting" + }, + "gitlens.stashExplorer.stashFileFormat": { + "type": "string", + "default": "${file} \u00a0\u2022\u00a0 ${path}", + "description": "Specifies the format of a stashed file in the stash explorer view\nAvailable tokens\n ${file} - file name\n ${path} - file path" + }, + "gitlens.statusBar.enabled": { + "type": "boolean", + "default": true, + "description": "Specifies whether or not to provide blame information on the status bar" + }, + "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" + }, + "gitlens.statusBar.command": { + "type": "string", + "default": "gitlens.showQuickCommitDetails", + "enum": [ + "gitlens.toggleFileBlame", + "gitlens.showBlameHistory", + "gitlens.showFileHistory", + "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.showBlameHistory` - opens the blame history explorer\n `gitlens.showFileHistory` - opens the file history explorer\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" + }, + "gitlens.statusBar.format": { + "type": "string", + "default": "${authorAgo}", + "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 ${authorAgo} - commit author, relative commit date\nSee https://github.com/eamodio/vscode-gitlens/wiki/Advanced-Formatting for advanced formatting" + }, + "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" + }, + "gitlens.strings.codeLens.unsavedChanges.recentChangeAndAuthors": { + "type": "string", + "default": "Cannot determine recent change or authors (unsaved changes)", + "description": "Specifies the string to be shown in place of both the `recent change` and `authors` code lens when there are unsaved changes" + }, + "gitlens.strings.codeLens.unsavedChanges.recentChangeOnly": { + "type": "string", + "default": "Cannot determine recent change (unsaved changes)", + "description": "Specifies the string to be shown in place of the `recent change` code lens when there are unsaved changes" + }, + "gitlens.strings.codeLens.unsavedChanges.authorsOnly": { + "type": "string", + "default": "Cannot determine authors (unsaved changes)", + "description": "Specifies the string to be shown in place of the `authors` code lens when there are unsaved changes" + }, + "gitlens.theme.annotations.file.gutter.separateLines": { + "type": "boolean", + "default": true, + "description": "Specifies whether or not gutter blame annotations will be separated by a small gap" + }, + "gitlens.theme.annotations.file.gutter.dark.backgroundColor": { + "type": "string", + "default": "rgba(255, 255, 255, 0.075)", + "description": "Specifies the dark theme background color of the gutter blame annotations. Must be a valid css color" + }, + "gitlens.theme.annotations.file.gutter.light.backgroundColor": { + "type": "string", + "default": "rgba(0, 0, 0, 0.05)", + "description": "Specifies the light theme background color of the gutter blame annotations. Must be a valid css color" + }, + "gitlens.theme.annotations.file.gutter.dark.foregroundColor": { + "type": "string", + "default": "rgb(190, 190, 190)", + "description": "Specifies the dark theme foreground color of the gutter blame annotations. Must be a valid css color" + }, + "gitlens.theme.annotations.file.gutter.light.foregroundColor": { + "type": "string", + "default": "rgb(116, 116, 116)", + "description": "Specifies the light theme foreground color of the gutter blame annotations. Must be a valid css color" + }, + "gitlens.theme.annotations.file.gutter.dark.uncommittedForegroundColor": { + "type": "string", + "default": "rgba(0, 188, 242, 0.6)", + "description": "Specifies the dark theme foreground color of an uncommitted line in the gutter blame annotations. Must be a valid css color" + }, + "gitlens.theme.annotations.file.gutter.light.uncommittedForegroundColor": { + "type": "string", + "default": "rgba(0, 188, 242, 0.6)", + "description": "Specifies the light theme foreground color of an uncommitted line in the gutter blame annotations. Must be a valid css color" + }, + "gitlens.theme.annotations.file.hover.separateLines": { + "type": "boolean", + "default": false, + "description": "Specifies whether or not hover blame annotations will be separated by a small gap (if heatmap is enabled)" + }, + "gitlens.theme.annotations.line.trailing.dark.backgroundColor": { + "type": "string", + "default": null, + "description": "Specifies the dark theme background color of the trailing blame annotation. Must be a valid css color" + }, + "gitlens.theme.annotations.line.trailing.light.backgroundColor": { + "type": "string", + "default": null, + "description": "Specifies the light theme background color of the trailing blame annotation. Must be a valid css color" + }, + "gitlens.theme.annotations.line.trailing.dark.foregroundColor": { + "type": "string", + "default": "rgba(153, 153, 153, 0.35)", + "description": "Specifies the dark theme foreground color of the trailing blame annotation. Must be a valid css color" + }, + "gitlens.theme.annotations.line.trailing.light.foregroundColor": { + "type": "string", + "default": "rgba(153, 153, 153, 0.35)", + "description": "Specifies the light theme foreground color of the trailing blame annotation. Must be a valid css color" + }, + "gitlens.theme.lineHighlight.dark.backgroundColor": { + "type": "string", + "default": "rgba(0, 188, 242, 0.2)", + "description": "Specifies the dark theme background color of the associated line highlights in blame annotations. Must be a valid css color" + }, + "gitlens.theme.lineHighlight.light.backgroundColor": { + "type": "string", + "default": "rgba(0, 188, 242, 0.2)", + "description": "Specifies the light theme background color of the associated line highlights in blame annotations. Must be a valid css color" + }, + "gitlens.theme.lineHighlight.dark.overviewRulerColor": { + "type": "string", + "default": "rgba(0, 188, 242, 0.6)", + "description": "Specifies the dark theme overview ruler color of the associated line highlights in blame annotations. Must be a valid css color" + }, + "gitlens.theme.lineHighlight.light.overviewRulerColor": { + "type": "string", + "default": "rgba(0, 188, 242, 0.6)", + "description": "Specifies the light theme overview ruler color of the associated line highlights in blame annotations. Must be a valid css color" + }, + "gitlens.advanced.caching.enabled": { + "type": "boolean", + "default": true, + "description": "Specifies whether git output will be cached" + }, + "gitlens.advanced.caching.maxLines": { + "type": "number", + "default": 0, + "description": "Specifies the threshold for caching larger documents" + }, + "gitlens.advanced.git": { + "type": "string", + "default": null, + "description": "Specifies the git path to use" + }, + "gitlens.advanced.gitignore.enabled": { + "type": "boolean", + "default": true, + "description": "Specifies whether or not to parse the root .gitignore file for better performance (i.e. avoids blaming excluded files)" + }, + "gitlens.advanced.maxQuickHistory": { + "type": "number", + "default": 200, + "description": "Specifies the maximum number of QuickPick history entries to show" + }, + "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": true, + "history": true, + "remote": true, + "status": true + }, + "editorTitleContext": { + "blame": true, + "fileDiff": true, + "history": true, + "remote": true + }, + "explorerContext": { + "fileDiff": true, + "history": true, + "remote": true + } + }, + "description": "Specifies which commands will be added to which menus", + "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 + } + } + } + } + }, + "gitlens.advanced.quickPick.closeOnFocusOut": { + "type": "boolean", + "default": true, + "description": "Specifies whether or not to close the QuickPick menu when focus is lost" + }, + "gitlens.advanced.telemetry.enabled": { + "type": "boolean", + "default": true, + "description": "Specifies whether or not to enable GitLens telemetry (even if enabled still abides by the overall `telemetry.enableTelemetry` setting" + }, + "gitlens.advanced.toggleWhitespace.enabled": { + "type": "boolean", + "default": true, + "description": "Specifies whether or not to toggle whitespace off then showing blame annotations (*may* be required by certain fonts/themes)" + } + } + }, + "commands": [ + { + "command": "gitlens.diffDirectory", + "title": "Directory Compare", + "category": "GitLens" + }, + { + "command": "gitlens.diffWithBranch", + "title": "Compare File with Branch...", + "category": "GitLens" + }, + { + "command": "gitlens.diffWithNext", + "title": "Compare File with Next Commit", + "category": "GitLens" + }, + { + "command": "gitlens.diffWithPrevious", + "title": "Compare File with Previous", + "category": "GitLens" + }, + { + "command": "gitlens.diffLineWithPrevious", + "title": "Compare Line Commit with Previous", + "category": "GitLens" + }, + { + "command": "gitlens.diffWithRevision", + "title": "Compare File with Revision...", + "category": "GitLens" + }, + { + "command": "gitlens.diffWithWorking", + "title": "Compare File with Working Tree", + "category": "GitLens" + }, + { + "command": "gitlens.diffLineWithWorking", + "title": "Compare Line Commit with Working Tree", + "category": "GitLens" + }, + { + "command": "gitlens.showFileBlame", + "title": "Show File Blame Annotations", + "category": "GitLens" + }, + { + "command": "gitlens.showLineBlame", + "title": "Show Line Blame Annotations", + "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.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.showBlameHistory", + "title": "Open Blame History Explorer", + "category": "GitLens" + }, + { + "command": "gitlens.showCommitSearch", + "title": "Search Commits", + "category": "GitLens" + }, + { + "command": "gitlens.showFileHistory", + "title": "Show File History in Explorer", + "category": "GitLens" + }, + { + "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.showStashList", + "title": "Show Stashed Changes in Explorer", + "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.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.openRepoInRemote", + "title": "Open Repository in Remote", + "category": "GitLens" + }, + { + "command": "gitlens.stashApply", + "title": "Apply Stashed Changes", + "category": "GitLens" + }, + { + "command": "gitlens.stashSave", + "title": "Stash Changes", + "category": "GitLens" + }, + { + "command": "gitlens.resetSuppressedWarnings", + "title": "Reset Suppressed Warnings", + "category": "GitLens" + }, + { + "command": "gitlens.gitExplorer.refresh", + "title": "Refresh", + "icon": { + "dark": "images/dark/icon-refresh.svg", + "light": "images/light/icon-refresh.svg" + } + }, + { + "command": "gitlens.stashExplorer.refresh", + "title": "Refresh", + "icon": { + "dark": "images/dark/icon-refresh.svg", + "light": "images/light/icon-refresh.svg" + } + } + ], + "menus": { + "commandPalette": [ + { + "command": "gitlens.diffDirectory", + "when": "gitlens:enabled" + }, + { + "command": "gitlens.diffWithBranch", + "when": "gitlens:isTracked" + }, + { + "command": "gitlens.diffWithNext", + "when": "gitlens:isTracked" + }, + { + "command": "gitlens.diffWithPrevious", + "when": "gitlens:isTracked" + }, + { + "command": "gitlens.diffLineWithPrevious", + "when": "gitlens:isBlameable" + }, + { + "command": "gitlens.diffWithRevision", + "when": "gitlens:isTracked" + }, + { + "command": "gitlens.diffWithWorking", + "when": "gitlens:isTracked" + }, + { + "command": "gitlens.diffLineWithWorking", + "when": "gitlens:isBlameable" + }, + { + "command": "gitlens.showFileBlame", + "when": "gitlens:isBlameable" + }, + { + "command": "gitlens.showLineBlame", + "when": "gitlens:isBlameable" + }, + { + "command": "gitlens.toggleFileBlame", + "when": "gitlens:isBlameable" + }, + { + "command": "gitlens.toggleFileRecentChanges", + "when": "gitlens:isTracked" + }, + { + "command": "gitlens.toggleLineBlame", + "when": "gitlens:isBlameable" + }, + { + "command": "gitlens.toggleCodeLens", + "when": "gitlens:isTracked && gitlens:canToggleCodeLens" + }, + { + "command": "gitlens.showBlameHistory", + "when": "gitlens:isBlameable" + }, + { + "command": "gitlens.showFileHistory", + "when": "gitlens:isTracked" + }, + { + "command": "gitlens.showLastQuickPick", + "when": "gitlens:enabled" + }, + { + "command": "gitlens.showQuickCommitDetails", + "when": "gitlens:isBlameable" + }, + { + "command": "gitlens.showQuickCommitFileDetails", + "when": "gitlens:isBlameable" + }, + { + "command": "gitlens.showQuickFileHistory", + "when": "gitlens:isTracked" + }, + { + "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.showStashList", + "when": "gitlens:enabled" + }, + { + "command": "gitlens.copyShaToClipboard", + "when": "gitlens:isBlameable" + }, + { + "command": "gitlens.copyMessageToClipboard", + "when": "gitlens:isBlameable" + }, + { + "command": "gitlens.closeUnchangedFiles", + "when": "gitlens:enabled" + }, + { + "command": "gitlens.openChangedFiles", + "when": "gitlens:enabled" + }, + { + "command": "gitlens.openBranchInRemote", + "when": "gitlens:hasRemotes" + }, + { + "command": "gitlens.openCommitInRemote", + "when": "gitlens:isBlameable && gitlens:hasRemotes" + }, + { + "command": "gitlens.openFileInRemote", + "when": "gitlens:isTracked && gitlens:hasRemotes" + }, + { + "command": "gitlens.openRepoInRemote", + "when": "gitlens:hasRemotes" + }, + { + "command": "gitlens.stashApply", + "when": "gitlens:enabled" + }, + { + "command": "gitlens.stashSave", + "when": "gitlens:enabled" + }, + { + "command": "gitlens.resetSuppressedWarnings", + "when": "gitlens:enabled" + }, + { + "command": "gitlens.gitExplorer.refresh", + "when": "gitlens:enabled" + }, + { + "command": "gitlens.stashExplorer.refresh", + "when": "gitlens:enabled" + } + ], + "editor/context": [ + { + "command": "gitlens.openFileInRemote", + "when": "editorTextFocus && gitlens:isTracked && gitlens:hasRemotes && config.gitlens.advanced.menus.editorContext.remote", + "group": "navigation@100" + }, + { + "command": "gitlens.diffLineWithPrevious", + "when": "editorTextFocus && gitlens:isBlameable && config.gitlens.advanced.menus.editorContext.lineDiff", + "group": "1_gitlens@1" + }, + { + "command": "gitlens.diffLineWithWorking", + "when": "editorTextFocus && gitlens:isBlameable && config.gitlens.advanced.menus.editorContext.lineDiff", + "group": "1_gitlens@2" + }, + { + "command": "gitlens.showQuickCommitFileDetails", + "when": "editorTextFocus && gitlens:isBlameable && config.gitlens.advanced.menus.editorContext.details", + "group": "1_gitlens@3" + }, + { + "command": "gitlens.diffWithPrevious", + "when": "editorTextFocus && gitlens:isTracked && config.gitlens.advanced.menus.editorContext.fileDiff", + "group": "1_gitlens_1@1" + }, + { + "command": "gitlens.diffWithWorking", + "when": "editorTextFocus && gitlens:isTracked && config.gitlens.advanced.menus.editorContext.fileDiff", + "group": "1_gitlens_1@2" + }, + { + "command": "gitlens.showQuickFileHistory", + "when": "gitlens:isTracked && config.gitlens.advanced.menus.editorContext.history", + "group": "3_gitlens@1" + }, + { + "command": "gitlens.toggleFileBlame", + "when": "editorTextFocus && gitlens:isBlameable && config.gitlens.advanced.menus.editorContext.blame", + "group": "3_gitlens@2" + }, + { + "command": "gitlens.copyShaToClipboard", + "when": "editorTextFocus && gitlens:isBlameable && config.gitlens.advanced.menus.editorContext.copy", + "group": "9_gitlens@1" + }, + { + "command": "gitlens.copyMessageToClipboard", + "when": "editorTextFocus && gitlens:isBlameable && config.gitlens.advanced.menus.editorContext.copy", + "group": "9_gitlens@2" + } + ], + "editor/title": [ + { + "command": "gitlens.toggleFileBlame", + "alt": "gitlens.toggleFileRecentChanges", + "when": "gitlens:isBlameable && config.gitlens.advanced.menus.editorTitle.blame", + "group": "navigation@100" + }, + { + "command": "gitlens.openFileInRemote", + "when": "gitlens:enabled && config.gitlens.advanced.menus.editorTitleContext.remote", + "group": "1_gitlens" + }, + { + "command": "gitlens.openRepoInRemote", + "when": "gitlens:enabled && config.gitlens.advanced.menus.editorTitleContext.remote", + "group": "1_gitlens" + }, + { + "command": "gitlens.diffWithPrevious", + "when": "editorTextFocus && gitlens:isTracked && config.gitlens.advanced.menus.editorTitle.fileDiff", + "group": "2_gitlens" + }, + { + "command": "gitlens.diffWithWorking", + "when": "editorTextFocus && gitlens:isTracked && config.gitlens.advanced.menus.editorTitle.fileDiff", + "group": "2_gitlens" + }, + { + "command": "gitlens.showQuickFileHistory", + "when": "editorFocus && gitlens:isTracked && config.gitlens.advanced.menus.editorTitle.history", + "group": "2_gitlens_1" + }, + { + "command": "gitlens.showQuickRepoHistory", + "when": "!editorFocus && gitlens:enabled && config.gitlens.advanced.menus.editorTitle.history", + "group": "2_gitlens_1" + }, + { + "command": "gitlens.showQuickRepoStatus", + "when": "gitlens:enabled && config.gitlens.advanced.menus.editorTitle.status", + "group": "2_gitlens_1" + } + ], + "editor/title/context": [ + { + "command": "gitlens.openFileInRemote", + "when": "gitlens:enabled && 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": "gitlens:enabled && config.gitlens.advanced.menus.explorerContext.remote", + "group": "navigation@100" + }, + { + "command": "gitlens.diffWithPrevious", + "when": "gitlens:enabled && config.gitlens.advanced.menus.explorerContext.fileDiff", + "group": "1_gitlens@1" + }, + { + "command": "gitlens.diffWithWorking", + "when": "gitlens:enabled && config.gitlens.advanced.menus.explorerContext.fileDiff", + "group": "1_gitlens@2" + }, + { + "command": "gitlens.showQuickFileHistory", + "when": "gitlens:enabled && config.gitlens.advanced.menus.explorerContext.history", + "group": "1_gitlens_1@1" + } + ], + "scm/resourceGroup/context": [ + { + "command": "gitlens.openChangedFiles", + "when": "gitlens:enabled", + "group": "1_gitlens@1" + }, + { + "command": "gitlens.closeUnchangedFiles", + "when": "gitlens:enabled", + "group": "1_gitlens@2" + } + ], + "scm/resourceState/context": [ + { + "command": "gitlens.openFileInRemote", + "when": "gitlens:enabled && gitlens:hasRemotes", + "group": "navigation" + }, + { + "command": "gitlens.diffWithRevision", + "when": "gitlens:enabled", + "group": "1_gitlens@1" + }, + { + "command": "gitlens.showQuickFileHistory", + "when": "gitlens:enabled", + "group": "1_gitlens_1@1" + } + ], + "view/title": [ + { + "command": "gitlens.gitExplorer.refresh", + "when": "gitlens:enabled && view == gitlens.gitExplorer", + "group": "navigation" + }, + { + "command": "gitlens.stashExplorer.refresh", + "when": "gitlens:enabled && view == gitlens.stashExplorer", + "group": "navigation" + } + ], + "view/item/context": [ + { + "command": "gitlens.openCommitInRemote", + "when": "gitlens:enabled && view == gitlens.gitExplorer && viewItem == commit", + "group": "1_gitlens@1" + }, + { + "command": "gitlens.openFileInRemote", + "when": "gitlens:enabled && view == gitlens.gitExplorer && viewItem == commit-file", + "group": "1_gitlens@2" + }, + { + "command": "gitlens.diffWithPrevious", + "when": "gitlens:enabled && view == gitlens.gitExplorer && viewItem == commit-file", + "group": "2_gitlens@1" + }, + { + "command": "gitlens.diffWithWorking", + "when": "gitlens:enabled && view == gitlens.gitExplorer && viewItem == commit-file", + "group": "2_gitlens@2" + }, + { + "command": "gitlens.openCommitInRemote", + "when": "gitlens:enabled && view == gitlens.stashExplorer && viewItem == stash-commit", + "group": "1_gitlens@1" + }, + { + "command": "gitlens.openFileInRemote", + "when": "gitlens:enabled && view == gitlens.stashExplorer && viewItem == commit-file", + "group": "1_gitlens@2" + }, + { + "command": "gitlens.diffWithPrevious", + "when": "gitlens:enabled && view == gitlens.stashExplorer && viewItem == commit-file", + "group": "2_gitlens@1" + }, + { + "command": "gitlens.diffWithWorking", + "when": "gitlens:enabled && view == gitlens.stashExplorer && viewItem == commit-file", + "group": "2_gitlens@2" + } + ] + }, + "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" + }, + { + "command": "gitlens.toggleFileBlame", + "key": "alt+b", + "when": "editorTextFocus && gitlens:isTracked" + }, + { + "command": "gitlens.toggleCodeLens", + "key": "shift+alt+b", + "when": "editorTextFocus && gitlens:isTracked && gitlens:canToggleCodeLens" + }, + { + "command": "gitlens.showLastQuickPick", + "key": "alt+-", + "when": "gitlens:enabled" + }, + { + "command": "gitlens.showCommitSearch", + "key": "alt+/", + "when": "gitlens:enabled" + }, + { + "command": "gitlens.showQuickFileHistory", + "key": "alt+h", + "when": "gitlens:enabled" + }, + { + "command": "gitlens.showQuickRepoHistory", + "key": "shift+alt+h", + "when": "gitlens:enabled" + }, + { + "command": "gitlens.showQuickRepoStatus", + "key": "alt+s", + "when": "gitlens:enabled" + }, + { + "command": "gitlens.showQuickCommitFileDetails", + "key": "alt+c", + "when": "editorTextFocus && gitlens:enabled" + }, + { + "command": "gitlens.diffWithNext", + "key": "alt+.", + "when": "editorTextFocus && gitlens:isTracked" + }, + { + "command": "gitlens.diffLineWithPrevious", + "key": "shift+alt+,", + "when": "editorTextFocus && gitlens:isTracked" + }, + { + "command": "gitlens.diffWithPrevious", + "key": "alt+,", + "when": "editorTextFocus && gitlens:isTracked" + }, + { + "command": "gitlens.diffLineWithWorking", + "key": "alt+w", + "when": "editorTextFocus && gitlens:isTracked" + }, + { + "command": "gitlens.diffWithWorking", + "key": "shift+alt+w", + "when": "editorTextFocus && gitlens:isTracked" + } + ], + "views": { + "explorer": [ + { "id": "gitlens.gitExplorer", - "name": "GitLens Explorer" - }, - { + "name": "GitLens Explorer" + }, + { "id": "gitlens.stashExplorer", - "name": "Git Stashes" - } - ] - } - }, - "activationEvents": [ - "*" - ], - "scripts": { - "clean": "git clean -xdf", - "compile": "tslint --project tslint.json && tsc -p ./", - "watch": "tsc -watch -p ./", - "lint": "tslint --project tslint.json", - "pack": "git clean -xdf && vsce package", - "postinstall": "node ./node_modules/vscode/bin/install", - "pub": "git clean -xdf && vsce publish", - "reset": "git clean -xdf && npm install", - "vscode:prepublish": "npm install --no-save && npm run compile" - }, - "dependencies": { - "applicationinsights": "0.21.0", - "copy-paste": "1.3.0", - "iconv-lite": "0.4.18", - "ignore": "3.3.3", - "lodash.debounce": "4.0.8", - "lodash.escaperegexp": "4.1.2", - "lodash.isequal": "4.5.0", - "lodash.once": "4.1.1", - "moment": "2.18.1", - "spawn-rx": "2.0.11", - "tmp": "0.0.31" - }, - "devDependencies": { - "@types/copy-paste": "1.1.30", - "@types/iconv-lite": "0.0.1", - "@types/mocha": "2.2.41", - "@types/node": "8.0.7", - "@types/tmp": "0.0.33", - "mocha": "3.4.2", - "tslint": "5.4.3", - "typescript": "2.4.1", - "vscode": "1.1.1" - } -} + "name": "Git Stashes" + } + ] + } + }, + "activationEvents": [ + "*" + ], + "scripts": { + "clean": "git clean -xdf", + "compile": "tslint --project tslint.json && tsc -p ./", + "watch": "tsc -watch -p ./", + "lint": "tslint --project tslint.json", + "pack": "git clean -xdf && vsce package", + "postinstall": "node ./node_modules/vscode/bin/install", + "pub": "git clean -xdf && vsce publish", + "reset": "git clean -xdf && npm install", + "vscode:prepublish": "npm install --no-save && npm run compile" + }, + "dependencies": { + "applicationinsights": "0.21.0", + "copy-paste": "1.3.0", + "iconv-lite": "0.4.18", + "ignore": "3.3.3", + "lodash.debounce": "4.0.8", + "lodash.escaperegexp": "4.1.2", + "lodash.isequal": "4.5.0", + "lodash.once": "4.1.1", + "moment": "2.18.1", + "spawn-rx": "2.0.11", + "tmp": "0.0.31" + }, + "devDependencies": { + "@types/copy-paste": "1.1.30", + "@types/iconv-lite": "0.0.1", + "@types/mocha": "2.2.41", + "@types/node": "8.0.7", + "@types/tmp": "0.0.33", + "mocha": "3.4.2", + "tslint": "5.4.3", + "typescript": "2.4.1", + "vscode": "1.1.1" + } +} diff --git a/src/configuration.ts b/src/configuration.ts index 650c27b..33b6eac 100644 --- a/src/configuration.ts +++ b/src/configuration.ts @@ -303,10 +303,15 @@ export interface IConfig { defaultDateFormat: string | null; - explorer: { + gitExplorer: { commitFormat: string; commitFileFormat: string; + // dateFormat: string | null; + }; + + stashExplorer: { stashFormat: string; + stashFileFormat: string; // dateFormat: string | null; }; diff --git a/src/git/models/status.ts b/src/git/models/status.ts index cdfd6d7..af9ef7c 100644 --- a/src/git/models/status.ts +++ b/src/git/models/status.ts @@ -72,4 +72,19 @@ const statusOcticonsMap = { export function getGitStatusOcticon(status: GitStatusFileStatus, missing: string = GlyphChars.Space.repeat(4)): string { return statusOcticonsMap[status] || missing; +} + +const statusIconsMap = { + '!': 'icon-status-ignored.svg', + '?': 'icon-status-untracked.svg', + A: 'icon-status-added.svg', + C: 'icon-status-copied.svg', + D: 'icon-status-deleted.svg', + M: 'icon-status-modified.svg', + R: 'icon-status-renamed.svg', + U: 'icon-status-conflict.svg' +}; + +export function getGitStatusIcon(status: GitStatusFileStatus): string { + return statusIconsMap[status]; } \ No newline at end of file diff --git a/src/views/commitFileNode.ts b/src/views/commitFileNode.ts index 670e6aa..c74cc6a 100644 --- a/src/views/commitFileNode.ts +++ b/src/views/commitFileNode.ts @@ -2,13 +2,14 @@ import { ExtensionContext, TreeItem, TreeItemCollapsibleState } from 'vscode'; import { Commands, DiffWithPreviousCommandArgs } from '../commands'; import { ExplorerNode, ResourceType } from './explorerNode'; -import { GitCommit, GitService, GitUri, IGitStatusFile } from '../gitService'; +import { getGitStatusIcon, GitCommit, GitService, GitUri, IGitStatusFile, StatusFileFormatter } from '../gitService'; +import * as path from 'path'; export class CommitFileNode extends ExplorerNode { readonly resourceType: ResourceType = 'commit-file'; - constructor(public status: IGitStatusFile, public commit: GitCommit, uri: GitUri, context: ExtensionContext, git: GitService) { + constructor(public status: IGitStatusFile, public commit: GitCommit, private template: string, uri: GitUri, context: ExtensionContext, git: GitService) { super(uri, context, git); } @@ -24,8 +25,15 @@ export class CommitFileNode extends ExplorerNode { } } - const item = new TreeItem(`${GitUri.getFormattedPath(this.status.fileName)}`, TreeItemCollapsibleState.None); + const item = new TreeItem(StatusFileFormatter.fromTemplate(this.template, this.status), TreeItemCollapsibleState.None); item.contextValue = this.resourceType; + + const icon = getGitStatusIcon(this.status.status); + item.iconPath = { + dark: this.context.asAbsolutePath(path.join('images', 'dark', icon)), + light: this.context.asAbsolutePath(path.join('images', 'light', icon)) + }; + item.command = { title: 'Compare File with Previous', command: Commands.DiffWithPrevious, @@ -41,6 +49,7 @@ export class CommitFileNode extends ExplorerNode { } as DiffWithPreviousCommandArgs ] }; + return item; } } \ No newline at end of file diff --git a/src/views/commitNode.ts b/src/views/commitNode.ts index 6511fe1..6306231 100644 --- a/src/views/commitNode.ts +++ b/src/views/commitNode.ts @@ -20,11 +20,11 @@ export class CommitNode extends ExplorerNode { const commit = Iterables.first(log.commits.values()); if (commit === undefined) return []; - return [...Iterables.map(commit.fileStatuses, s => new CommitFileNode(s, commit, this.uri, this.context, this.git))]; + return [...Iterables.map(commit.fileStatuses, s => new CommitFileNode(s, commit, this.git.config.gitExplorer.commitFileFormat, this.uri, this.context, this.git))]; } getTreeItem(): TreeItem { - const label = CommitFormatter.fromTemplate(this.git.config.explorer.commitFormat, this.commit, this.git.config.defaultDateFormat); + const label = CommitFormatter.fromTemplate(this.git.config.gitExplorer.commitFormat, this.commit, this.git.config.defaultDateFormat); const item = new TreeItem(label, TreeItemCollapsibleState.Collapsed); item.contextValue = this.resourceType; diff --git a/src/views/stashCommitNode.ts b/src/views/stashCommitNode.ts index 31e861a..c145d20 100644 --- a/src/views/stashCommitNode.ts +++ b/src/views/stashCommitNode.ts @@ -13,11 +13,11 @@ export class StashCommitNode extends ExplorerNode { } async getChildren(): Promise { - return Promise.resolve((this.commit as GitStashCommit).fileStatuses.map(_ => new CommitFileNode(_, this.commit, this.uri, this.context, this.git))); + return Promise.resolve((this.commit as GitStashCommit).fileStatuses.map(_ => new CommitFileNode(_, this.commit, this.git.config.stashExplorer.stashFileFormat, this.uri, this.context, this.git))); } getTreeItem(): TreeItem { - const label = CommitFormatter.fromTemplate(this.git.config.explorer.stashFormat, this.commit, this.git.config.defaultDateFormat); + const label = CommitFormatter.fromTemplate(this.git.config.stashExplorer.stashFormat, this.commit, this.git.config.defaultDateFormat); const item = new TreeItem(label, TreeItemCollapsibleState.Collapsed); item.contextValue = this.resourceType;