Skip to content

Semantic Highlighting and Git Diff Side-by-Side #4622

@ecool

Description

@ecool

Issue Description

While developing a color theme I came across an issue related to semantic highlighting and the git diff side-by-side view of changes in a file.

I've tested a view of the languages that I use and from what I can tell it is more extreme for C# and C++ (might be others). [screenshots provided]
Semantic Highlighting with Git Diff Side-by-Side view
061821-110527PM_Code_-_Insiders_R40IChDLlu
Correct Semantic Highlighing
061821-110547PM_Code_-_Insiders_RgC0Dy4HA2

However, all the languages I looked at did not use the Semantic Highlighting colors of the theme inside the git diff. This was also tested using the default VSCode theme.

From microsoft/vscode#126722

Steps to Reproduce

  1. Enable Semantic Highlighting
  2. Open a C# file that has been committed to a git repo
  3. Open changes from the previous commit
  4. The syntax highlighting will be very odd.

Expected Behavior

Use Semantic Highlighting correctly with the git changes view.

Actual Behavior

Semantic Highlighting appears to be used very incorrectly

Logs

OmniSharp log

Starting OmniSharp server at 6/21/2021, 8:29:57 PM Target: e:\unity\DOTSProjects\DOTSProjects.sln

OmniSharp server started.
Path: c:\Users\ecool.vscode-insiders\extensions\ms-dotnettools.csharp-1.23.12.omnisharp\1.37.10\OmniSharp.exe
PID: 207500

Starting OmniSharp on Windows 6.2.9200.0 (x64)
info: OmniSharp.Services.DotNetCliService
DotNetPath set to dotnet
info: OmniSharp.MSBuild.Discovery.MSBuildLocator
Located 4 MSBuild instance(s)
1: Visual Studio Community 2017 15.9.28307.1064 - "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin"
2: Visual Studio Build Tools 2017 15.9.28307.1300 - "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin"
3: Visual Studio Community 2019 16.7.30621.155 - "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin"
4: StandAlone 16.11.0 - "c:\Users\ecool.vscode-insiders\extensions\ms-dotnettools.csharp-1.23.12.omnisharp\1.37.10.msbuild\Current\Bin"
info: OmniSharp.MSBuild.Discovery.MSBuildLocator
Registered MSBuild instance: Visual Studio Community 2019 16.7.30621.155 - "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin"
info: OmniSharp.WorkspaceInitializer
Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.CSharpFormattingWorkspaceOptionsProvider, Order: 0
info: OmniSharp.WorkspaceInitializer
Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.Completion.CompletionOptionsProvider, Order: 0
info: OmniSharp.WorkspaceInitializer
Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.RenameWorkspaceOptionsProvider, Order: 100
info: OmniSharp.WorkspaceInitializer
Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.ImplementTypeWorkspaceOptionsProvider, Order: 110
info: OmniSharp.WorkspaceInitializer
Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.BlockStructureWorkspaceOptionsProvider, Order: 140
info: OmniSharp.Cake.CakeProjectSystem
Detecting Cake files in 'e:\unity\DOTSProjects'.
info: OmniSharp.Cake.CakeProjectSystem
Could not find any Cake files
info: OmniSharp.MSBuild.ProjectSystem
Skip loading projects listed in solution file or under target directory because MsBuild:LoadProjectsOnDemand is true.
info: OmniSharp.Script.ScriptProjectSystem
Detecting CSX files in 'e:\unity\DOTSProjects'.
info: OmniSharp.Script.ScriptProjectSystem
Could not find any CSX files
info: OmniSharp.WorkspaceInitializer
Configuration finished.
info: OmniSharp.Stdio.Host
Omnisharp server running using Stdio at location 'e:\unity\DOTSProjects' on host 206212.
info: OmniSharp.MSBuild.ProjectManager
Queue project update for 'e:\unity\DOTSProjects\Assembly-CSharp.csproj'
info: OmniSharp.MSBuild.ProjectManager
Queue project update for 'e:\unity\DOTSProjects\DOTween.Modules.csproj'
info: OmniSharp.MSBuild.ProjectManager
Queue project update for 'e:\unity\DOTSProjects\DOTweenPro.EditorScripts.csproj'
info: OmniSharp.MSBuild.ProjectManager
Queue project update for 'e:\unity\DOTSProjects\DOTweenPro.Scripts.csproj'
info: OmniSharp.MSBuild.ProjectManager
Queue project update for 'e:\unity\DOTSProjects\Ludiq.Peek.Editor.csproj'
info: OmniSharp.MSBuild.ProjectManager
Queue project update for 'e:\unity\DOTSProjects\Ludiq.PeekCore.Editor.csproj'
info: OmniSharp.MSBuild.ProjectManager
Queue project update for 'e:\unity\DOTSProjects\Ludiq.PeekCore.Runtime.csproj'
info: OmniSharp.MSBuild.ProjectManager
Queue project update for 'e:\unity\DOTSProjects\Sirenix.OdinInspector.CompatibilityLayer.csproj'
info: OmniSharp.MSBuild.ProjectManager
Queue project update for 'e:\unity\DOTSProjects\Sirenix.OdinInspector.CompatibilityLayer.Editor.csproj'
info: OmniSharp.MSBuild.ProjectManager
Queue project update for 'e:\unity\DOTSProjects\Sirenix.OdinInspector.Modules.UnityMathematics.csproj'
info: OmniSharp.MSBuild.ProjectManager
Queue project update for 'e:\unity\DOTSProjects\UnityEditor.UI.csproj'
info: OmniSharp.MSBuild.ProjectManager
Queue project update for 'e:\unity\DOTSProjects\UnityEngine.UI.csproj'
info: OmniSharp.MSBuild.ProjectManager
Loading project: e:\unity\DOTSProjects\Assembly-CSharp.csproj
info: OmniSharp.MSBuild.ProjectManager
Successfully loaded project file 'e:\unity\DOTSProjects\Assembly-CSharp.csproj'.
info: OmniSharp.MSBuild.ProjectManager
Adding project 'e:\unity\DOTSProjects\Assembly-CSharp.csproj'
info: OmniSharp.MSBuild.ProjectManager
Loading project: e:\unity\DOTSProjects\DOTween.Modules.csproj
info: OmniSharp.MSBuild.ProjectManager
Successfully loaded project file 'e:\unity\DOTSProjects\DOTween.Modules.csproj'.
info: OmniSharp.MSBuild.ProjectManager
Adding project 'e:\unity\DOTSProjects\DOTween.Modules.csproj'
info: OmniSharp.MSBuild.ProjectManager
Loading project: e:\unity\DOTSProjects\DOTweenPro.EditorScripts.csproj
info: OmniSharp.MSBuild.ProjectManager
Successfully loaded project file 'e:\unity\DOTSProjects\DOTweenPro.EditorScripts.csproj'.
info: OmniSharp.MSBuild.ProjectManager
Adding project 'e:\unity\DOTSProjects\DOTweenPro.EditorScripts.csproj'
info: OmniSharp.MSBuild.ProjectManager
Loading project: e:\unity\DOTSProjects\DOTweenPro.Scripts.csproj
info: OmniSharp.MSBuild.ProjectManager
Successfully loaded project file 'e:\unity\DOTSProjects\DOTweenPro.Scripts.csproj'.
info: OmniSharp.MSBuild.ProjectManager
Adding project 'e:\unity\DOTSProjects\DOTweenPro.Scripts.csproj'
info: OmniSharp.MSBuild.ProjectManager
Loading project: e:\unity\DOTSProjects\Ludiq.Peek.Editor.csproj
info: OmniSharp.MSBuild.ProjectManager
Successfully loaded project file 'e:\unity\DOTSProjects\Ludiq.Peek.Editor.csproj'.
info: OmniSharp.MSBuild.ProjectManager
Adding project 'e:\unity\DOTSProjects\Ludiq.Peek.Editor.csproj'
info: OmniSharp.MSBuild.ProjectManager
Loading project: e:\unity\DOTSProjects\Ludiq.PeekCore.Editor.csproj
info: OmniSharp.MSBuild.ProjectManager
Successfully loaded project file 'e:\unity\DOTSProjects\Ludiq.PeekCore.Editor.csproj'.
info: OmniSharp.MSBuild.ProjectManager
Adding project 'e:\unity\DOTSProjects\Ludiq.PeekCore.Editor.csproj'
info: OmniSharp.MSBuild.ProjectManager
Loading project: e:\unity\DOTSProjects\Ludiq.PeekCore.Runtime.csproj
info: OmniSharp.MSBuild.ProjectManager
Successfully loaded project file 'e:\unity\DOTSProjects\Ludiq.PeekCore.Runtime.csproj'.
info: OmniSharp.MSBuild.ProjectManager
Adding project 'e:\unity\DOTSProjects\Ludiq.PeekCore.Runtime.csproj'
info: OmniSharp.MSBuild.ProjectManager
Loading project: e:\unity\DOTSProjects\Sirenix.OdinInspector.CompatibilityLayer.csproj
info: OmniSharp.MSBuild.ProjectManager
Successfully loaded project file 'e:\unity\DOTSProjects\Sirenix.OdinInspector.CompatibilityLayer.csproj'.
info: OmniSharp.MSBuild.ProjectManager
Adding project 'e:\unity\DOTSProjects\Sirenix.OdinInspector.CompatibilityLayer.csproj'
info: OmniSharp.MSBuild.ProjectManager
Loading project: e:\unity\DOTSProjects\Sirenix.OdinInspector.CompatibilityLayer.Editor.csproj
info: OmniSharp.MSBuild.ProjectManager
Successfully loaded project file 'e:\unity\DOTSProjects\Sirenix.OdinInspector.CompatibilityLayer.Editor.csproj'.
info: OmniSharp.MSBuild.ProjectManager
Adding project 'e:\unity\DOTSProjects\Sirenix.OdinInspector.CompatibilityLayer.Editor.csproj'
info: OmniSharp.MSBuild.ProjectManager
Loading project: e:\unity\DOTSProjects\Sirenix.OdinInspector.Modules.UnityMathematics.csproj
info: OmniSharp.MSBuild.ProjectManager
Successfully loaded project file 'e:\unity\DOTSProjects\Sirenix.OdinInspector.Modules.UnityMathematics.csproj'.
info: OmniSharp.MSBuild.ProjectManager
Adding project 'e:\unity\DOTSProjects\Sirenix.OdinInspector.Modules.UnityMathematics.csproj'
info: OmniSharp.MSBuild.ProjectManager
Loading project: e:\unity\DOTSProjects\UnityEditor.UI.csproj
info: OmniSharp.MSBuild.ProjectManager
Successfully loaded project file 'e:\unity\DOTSProjects\UnityEditor.UI.csproj'.
info: OmniSharp.MSBuild.ProjectManager
Adding project 'e:\unity\DOTSProjects\UnityEditor.UI.csproj'
info: OmniSharp.MSBuild.ProjectManager
Loading project: e:\unity\DOTSProjects\UnityEngine.UI.csproj
info: OmniSharp.MSBuild.ProjectManager
Successfully loaded project file 'e:\unity\DOTSProjects\UnityEngine.UI.csproj'.
info: OmniSharp.MSBuild.ProjectManager
Adding project 'e:\unity\DOTSProjects\UnityEngine.UI.csproj'
info: OmniSharp.MSBuild.ProjectManager
Update project: Assembly-CSharp
info: OmniSharp.MSBuild.ProjectManager
Update project: DOTween.Modules
info: OmniSharp.MSBuild.ProjectManager
Update project: DOTweenPro.EditorScripts
info: OmniSharp.MSBuild.ProjectManager
Update project: DOTweenPro.Scripts
info: OmniSharp.MSBuild.ProjectManager
Update project: Ludiq.Peek.Editor
info: OmniSharp.MSBuild.ProjectManager
Update project: Ludiq.PeekCore.Editor
info: OmniSharp.MSBuild.ProjectManager
Update project: Ludiq.PeekCore.Runtime
info: OmniSharp.MSBuild.ProjectManager
Update project: Sirenix.OdinInspector.CompatibilityLayer
info: OmniSharp.MSBuild.ProjectManager
Update project: Sirenix.OdinInspector.CompatibilityLayer.Editor
info: OmniSharp.MSBuild.ProjectManager
Update project: Sirenix.OdinInspector.Modules.UnityMathematics
info: OmniSharp.MSBuild.ProjectManager
Update project: UnityEditor.UI
info: OmniSharp.MSBuild.ProjectManager
Update project: UnityEngine.UI
info: OmniSharp.Roslyn.CSharp.Services.Diagnostics.CSharpDiagnosticWorkerWithAnalyzers
Solution initialized -> queue all documents for code analysis. Initial document count: 1143.
Received response for /quickinfo but could not find request.
Received response for /v2/getcodeactions but could not find request.
Received response for /quickinfo but could not find request.

C# log

EMPTY

Environment information

VSCode version: 1.58.0-insider
C# Extension: 1.23.12

Dotnet Information .NET SDK (reflecting any global.json): Version: 5.0.202 Commit: db7cc87d51

Runtime Environment:
OS Name: Windows
OS Version: 10.0.19042
OS Platform: Windows
RID: win10-x64
Base Path: C:\Program Files\dotnet\sdk\5.0.202\

Host (useful for support):
Version: 5.0.5
Commit: 2f740adc14

.NET SDKs installed:
3.1.101 [C:\Program Files\dotnet\sdk]
3.1.403 [C:\Program Files\dotnet\sdk]
5.0.202 [C:\Program Files\dotnet\sdk]

.NET runtimes installed:
Microsoft.AspNetCore.All 2.1.23 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.23 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.9 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 5.0.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.1.23 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.11 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.13 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 3.1.1 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 3.1.9 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 3.1.11 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 3.1.13 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 5.0.5 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

To install additional .NET runtimes or SDKs:
https://aka.ms/dotnet-download

Visual Studio Code Extensions
Extension Author Version
android-dev-ext adelphes 1.3.2
auto-close-tag formulahendry 0.5.10
auto-comment-blocks kevinkyang 1.0.1
auto-rename-tag formulahendry 0.1.6
beautify HookyQR 1.5.0
better-cpp-syntax jeff-hykin 1.15.6
Bookmarks alefragnani 13.1.0
bootstrap4-vscode thekalinga 6.1.0
bracket-pair-colorizer-2 CoenraadS 0.2.1
code-capture UncleClapton 1.1.0
code-gnu-global austin 0.2.2
code-runner formulahendry 0.11.4
code-settings-sync Shan 3.4.3
code-spell-checker streetsidesoftware 1.10.2
code-stats-vscode riussi 1.0.18
codestream CodeStream 11.0.10
codeswing codespaces-contrib 0.0.16
color-highlight naumovs 2.3.0
color-info bierner 0.6.0
command-variable rioj7 1.19.0
compare-folders moshfeu 0.22.2
control-snippets svipas 1.9.1
cpptools ms-vscode 1.4.1
cpptools-extension-pack ms-vscode 1.0.0
cpptools-themes ms-vscode 1.0.0
csharp ms-dotnettools 1.23.12
csharpextensions jchannon 1.3.1
csharpfixformat Leopotam 0.0.84
dircolors duniul 1.1.1
docomment k--kato 0.1.20
dotenv mikestead 1.0.1
doxdocgen cschlosser 1.3.2
EditorConfig EditorConfig 0.16.4
errorlens usernamehw 3.2.7
explorer-exclude-vscode-extension RedVanWorkshop 1.2.0
fabric8-analytics redhat 0.3.3
foam-vscode foam 0.13.7
gi rubbersheep 0.2.11
gistfs vsls-contrib 0.2.9
git-graph mhutchie 1.30.0
github-repository-manager henriqueBruno 0.6.1
gitlens eamodio 11.5.1
godot-csharp-vscode neikeq 0.1.3
godot-tools geequlim 1.1.2
google-search kameshkotwani 0.0.1
hlsltools TimGJones 1.1.302
html-css-class-completion Zignd 1.20.0
html-meta-tags-hero nadim-vscode 1.0.0
iceworks-time-master iceworks-team 1.0.1
ink bruno-dias 1.3.1
insert-unicode brunnerh 0.12.2
java redhat 0.79.2
jupyter ms-toolsai 2021.7.949309867
kite kiteco 0.147.0
language-gettext mrorz 0.2.0
LiveServer ritwickdey 5.6.1
markdown-all-in-one yzhang 3.4.0
markdown-checkbox bierner 0.1.3
markdown-extended jebbs 1.0.19
mdmath goessner 2.7.4
mono-debug ms-vscode 0.16.2
msbuild-project-tools tintoy 0.3.15
mysql-syntax jakebathman 1.3.1
next-js-commands edgarjs 0.0.1
nextjs-snippets PulkitGangwar 0.0.3
nextjs-vscode-snippets rettimo 0.1.1
node-snippets chris-noring 1.3.2
output-colorizer IBM 0.1.2
partial-diff ryu1kn 1.4.3
path-intellisense christian-kohler 2.3.0
powershell ms-vscode 2021.5.1
prettier-vscode esbenp 6.4.0
private-extension-manager garmin 1.6.0
private-extension-manager-remote-helper garmin 1.6.0
project-manager alefragnani 12.2.0
python ms-python 2021.6.944021595
rainbow-csv mechatroner 1.8.1
RelativePath jakob101 1.4.0
remote-containers ms-vscode-remote 0.183.0
remote-ssh ms-vscode-remote 0.65.7
remote-ssh-edit ms-vscode-remote 0.65.7
remote-wsl ms-vscode-remote 0.58.1
rewrap stkb 1.14.0
roslynator josefpihrt-vscode 3.2.0
search-node-modules jasonnutter 1.3.0
seti-classic-vscode ecool 1.0.1
seti-icons qinjia 0.1.3
shader slevesque 1.1.5
shaderlabvscodefree amlovey 1.2.8
shell-launcher Tyriar 0.4.1
sln-support logerfo 0.0.1
snippets-viewer RandomFractalsInc 1.9.0
stack-overflow-view 4tron 0.1.1
svg jock 1.4.7
swdc-vscode softwaredotcom 2.5.16
text-power-tools qcz 1.27.0
theme-setim therobut 1.0.2
todo-tree Gruntfuggly 0.0.213
toggle rebornix 0.0.2
toggler hideoo 0.2.0
tsl-problem-matcher eamodio 0.4.0
typescript-javascript-grammar ms-vscode 0.0.55
unity-code-snippets kleber-swf 1.3.0
unity-debug Unity 3.0.2
unity-tools Tobiah 1.2.12
vs-sharper eservice-online 0.2.0
vscode-autohotkey-plus cweijan 2.6.2
vscode-autohotkey-vj vinnyjames 3.0.1
vscode-autoprefixer mrmlnc 3.0.1
vscode-checkstyle shengchen 1.4.0
vscode-codetags cg-cnu 0.1.0
vscode-color anseki 0.4.5
vscode-commons redhat 0.0.6
vscode-css-modules clinyong 0.2.3
vscode-css-peek pranaygp 4.2.0
vscode-docker ms-azuretools 1.13.0
vscode-eslint dbaeumer 2.1.23
vscode-go-syntax dunstontc 0.0.18
vscode-gradle richardwillis 3.6.1
vscode-guid heaths 1.4.20
vscode-gutter-preview kisstkondoros 0.27.1
vscode-html-css ecmel 1.10.2
vscode-icalendar af4jm 1.0.1
vscode-java-debug vscjava 0.34.0
vscode-java-dependency vscjava 0.18.4
vscode-java-pack vscjava 0.16.0
vscode-java-test vscjava 0.30.0
vscode-less mrmlnc 0.6.3
vscode-markdown-notes kortina 0.0.24
vscode-maven vscjava 0.31.0
vscode-modelines chrislajoie 2.0.5
vscode-new-file dkundel 4.0.2
vscode-news stephpasquini 0.1.2
vscode-npm-script eg2 0.3.22
vscode-nuget-package-manager jmrog 1.1.6
vscode-paste-image mushan 1.0.4
vscode-pull-request-github GitHub 0.27.1
vscode-pylance ms-python 2021.6.2
vscode-random jrebocho 1.9.0
vscode-remote-extensionpack ms-vscode-remote 0.21.0
vscode-solution-explorer fernandoescolar 0.4.3
vscode-sort-json richie5um2 1.20.0
vscode-sqlite alexcvzz 0.13.0
vscode-surround-with drcallaway 1.2.0
vscode-svgviewer cssho 2.0.0
vscode-todo-plus fabiospampinato 4.18.3
vscode-versionlens pflannery 1.0.9
vscode-xml redhat 0.16.1
vscodeintellicode VisualStudioExptTeam 1.2.14
vsliveshare ms-vsliveshare 1.0.4419
vsliveshare-audio ms-vsliveshare 0.1.91
xml DotJoshJohnson 2.5.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions