Built-in git blame editor decorations are not applied when diff editor is opened via third-party extension (e.g. Git Graph / GitLens)
#281045 opened on Dec 3, 2025
Description
Type: Bug
Description / Problem:
The built-in git blame decoration feature (adding line blame info) in VS Code does not work when a diff editor is opened by a third-party extension (such as Git Graph or GitLens). When using VS Code’s own Source Control Graph to open diffs, blame decorations appear and work as expected.
Reproduction steps:
- Use VS Code Insiders 1.107.0-insider on Windows (or any recent version).
- Ensure
"git.blame.editorDecoration.enabled": true. - Use a third-party git / history extension (e.g. Git Graph, GitLens), open commit history, and open a file diff via the extension.
- In the diff editor, click on lines on either side of the diff.
Observed behavior:
- No blame editor decorations (nor blame status-bar item) appear.
Expected behavior:
- According to the built-in git blame support, blame annotations / decorations should appear in the diff editor, regardless of how the diff was opened (built-in or via extension).
Relevant background & existing issues:
- Blame-decoration functionality was formally added in the release notes for January 2025 (version 1.97).
- The feature was tested under the issue Test: Git blame editor decoration/status bar it (#235028), which includes diff-editor use (working tree and staged changes) in its test plan.
- There is a known bug Git Blame - editor decoration appears incorrectly (#235030) describing that “dirty diff decorations” use a legacy diff algorithm, while the diff editor uses an “advanced diff algorithm,” which in some edge cases leads to mismatched decoration results.
- However, none of the existing issues explicitly mention diff editors opened via third-party extensions or handle extension-driven diffs.
Why this matters / Use case:
Many developers — myself included — use extensions like Git Graph or GitLens to inspect history and open diffs. If built-in blame decorations only work when diffs are opened via the built-in Source Control Graph, that significantly reduces the utility of blame in real-world workflows.
Request / Ask:
- Please verify whether the blame-decoration logic in VS Code supports diff editors invoked by third-party extensions.
- If not, consider updating the logic so that blame decorations are applied in diff editors regardless of how they are opened (built-in or third-party).
- If there is a limitation or known restriction, please document it so extension authors and users are aware.
Thank you for your continued work on git integration in VS Code!
Version information:
VS Code: 1.107.0-insider (commit fae32c4c21fc40c9caaf480b4f7f28ca077a2be6)
Git Graph: 1.31.5
OS: Windows 11
Git: 2.45.1.windows.1
Settings: git.blame.editorDecoration.enabled = true
git.blame.editorDecoration.template = "${authorName}, ${authorDateAgo} • ${subject}"
| Item | Value |
|---|---|
| CPUs | AMD Ryzen 5 3600XT 6-Core Processor (12 x 3793) |
| GPU Status | 2d_canvas: enableddirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_graphite: disabled_offtrees_in_viz: disabled_offvideo_decode: enabledvideo_encode: enabledwebgl: enabledwebgl2: enabledwebgpu: enabledwebnn: disabled_off |
| Load (avg) | undefined |
| Memory (System) | 63.93GB (41.08GB free) |
| Process Argv | |
| Screen Reader | no |
| VM | 0% |
| Extension | Author (truncated) | Version |
|---|---|---|
| monokai-charcoal-high-contrast | 74t | 3.5.0 |
| better-comments | aar | 3.0.2 |
| calculate | aca | 2.1.0 |
| format-selection-as-html | adr | 2.3.0 |
| vscode-javascript-snippet-pack | aka | 0.1.6 |
| increment-selection | alb | 0.2.0 |
| Bookmarks | ale | 13.5.0 |
| json-lines-editor | Ano | 0.1.0 |
| launch-config | Art | 0.9.0 |
| jsonyamlkeynavigator | b-s | 0.4.0 |
| vscode-autohotkey-ahkdoc | bhb | 0.5.2 |
| unique-lines | bib | 1.0.0 |
| markdown-footnotes | bie | 0.1.1 |
| xml2json | bui | 1.2.5 |
| vscode-better-align | cho | 1.4.4 |
| npm-intellisense | chr | 1.4.5 |
| path-intellisense | chr | 2.10.0 |
| gotoanything | Cma | 0.4.1 |
| column-jump | Cod | 0.0.7 |
| codesandbox-projects | Cod | 0.2.143 |
| vscode-clock | Com | 0.0.1 |
| xpathtester | cre | 1.2.0 |
| dakara-foldplus | dak | 1.5.2 |
| transformer | dak | 1.12.1 |
| join-lines-into-columns | dav | 0.0.2 |
| tsservercontrols | dav | 1.1.0 |
| vscode-quick-select | dba | 0.2.9 |
| jquerysnippets | don | 0.0.1 |
| xml | Dot | 2.5.1 |
| es7-react-js-snippets | dsz | 4.4.3 |
| gitlens | eam | 17.7.1 |
| EditorConfig | Edi | 0.17.4 |
| json-tools | eri | 1.0.2 |
| prettier-vscode | esb | 11.0.2 |
| decapsulator | fit | 1.0.2 |
| shell-format | fox | 7.2.8 |
| copilot-chat | Git | 0.34.2025120301 |
| vscode-pull-request-github | Git | 0.123.2025120304 |
| todo-tree | Gru | 0.0.226 |
| git-graph-2 | han | 1.31.5 |
| vscode-settings-cycler | hoo | 1.0.1 |
| output-colorizer | IBM | 0.1.2 |
| vscode-jsp-clone | J0h | 0.0.6 |
| i18next | jac | 0.7.2 |
| search-ignore-whitespace | jak | 0.0.1 |
| vscode-edit-csv | jan | 0.11.8 |
| search-node-modules | jas | 1.3.0 |
| better-shellscript-syntax | jef | 1.10.0 |
| vs-docblock | jer | 1.6.1 |
| tabstronaut | jhh | 1.4.0 |
| dupchecker | jia | 0.1.7 |
| select-matches-or-adjust-selection | joh | 0.10.4 |
| vscode-peacock | joh | 4.2.2 |
| minifyall | jos | 2.10.0 |
| vsc-python-indent | Kev | 1.21.0 |
| conditional-format | KMR | 1.3.0 |
| labeled-bookmarks | koa | 1.1.11 |
| wrapSelection | kon | 0.10.0 |
| expand-region | let | 0.1.4 |
| vscode-plugin-keyboard-shortcut-eval-custom-javascript-codes | Lia | 1.0.13 |
| highlight-duplicates | Lor | 1.1.1 |
| bash-ide-vscode | mad | 1.43.0 |
| code-beautifier | mic | 2.3.3 |
| vscode-edits-history | mis | 0.1.6 |
| shfmt | mkh | 1.5.1 |
| find-jump | mks | 1.2.4 |
| workspace-name-identifier | mmc | 0.0.1 |
| compare-folders | mos | 0.25.3 |
| format-selection-stub | mot | 0.0.2 |
| black-formatter | ms- | 2025.2.0 |
| debugpy | ms- | 2025.16.0 |
| isort | ms- | 2025.0.0 |
| python | ms- | 2025.18.0 |
| vscode-pylance | ms- | 2025.10.3 |
| vscode-python-envs | ms- | 1.13.13371014 |
| live-server | ms- | 0.5.2025091501 |
| powershell | ms- | 2025.4.0 |
| sublime-keybindings | ms- | 4.1.10 |
| vscode-commander | ms- | 0.2.0 |
| vscode-speech | ms- | 0.16.0 |
| vscode-websearchforcopilot | ms- | 0.1.2025120301 |
| copy-file-name | nem | 1.2.0 |
| react-proptypes-intellisense | OfH | 1.0.3 |
| fix-json | oli | 0.2.0 |
| terminal-command-keys | pet | 0.5.0 |
| java | red | 1.50.0 |
| vscode-commons | red | 0.0.6 |
| vscode-rsp-ui | red | 0.24.12 |
| vscode-sort-json | ric | 1.20.0 |
| LiveServer | rit | 5.7.9 |
| bash-debug | rog | 0.3.9 |
| color-manager | roy | 0.7.5 |
| vscode-paste-and-indent | Rub | 0.0.8 |
| prettier-plugin-java-vscode | Rud | 1.0.3 |
| better-pageup-pagedown | rus | 0.0.1 |
| partial-diff | ryu | 1.4.3 |
| text-marker | ryu | 1.11.0 |
| multi-command | ryu | 1.6.0 |
| sql-snippets | sad | 0.0.4 |
| json-to-js-object | sal | 0.0.4 |
| vscode-fqn | san | 1.0.3 |
| block-travel | sas | 0.0.2 |
| preview-vscode | sea | 2.3.12 |
| vscode-sql-beautify | sen | 0.0.4 |
| docxreader | Sha | 1.3.0 |
| bash-beautify | sha | 0.1.1 |
| trailing-spaces | sha | 0.4.1 |
| markdown-preview-enhanced | shd | 0.8.20 |
| vscode-fileutils | sle | 3.10.3 |
| local-tomcat | Sne | 2.1.1 |
| sonarlint-vscode | Son | 4.35.1 |
| open-in-browser | tec | 2.0.0 |
| shellcheck | tim | 0.38.5 |
| vscode-decompiler | tin | 0.1.0 |
| duplicate-finder | tle | 0.0.6 |
| run-in-powershell | tob | 1.2.0 |
| tom | 1.2.2 | |
| todo-list | Tza | 1.6.0 |
| incrementor | use | 0.1.5 |
| es-quotes | vil | 0.2.6 |
| vscode-boot-dev-pack | vmw | 0.2.2 |
| vscode-java-upgrade | vsc | 1.9.1 |
| console-ninja | Wal | 1.0.500 |
| chakra-ui-snippets | wei | 0.0.6 |
| change-case | wma | 1.0.0 |
| vsc-meta-snippet | wmo | 0.1.2 |
| bat-formatter | wwn | 0.0.5 |
| JavaScriptSnippets | xab | 1.8.0 |
| txt-syntax | xsh | 0.2.4 |
| markdown-pdf | yza | 1.5.0 |
| markdown-all-in-one | yzh | 3.6.3 |
(10 theme extensions excluded)