dotnet / dotnet/vscode-csharp

Setting `csharp.semanticHighlighting.enabled` to true breaks syntax highlighting for base classes and attributes

Open
#5,016 8 comments 6 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
3.1k
Forks
737
Avg merge
18h 40m
Merged PRs (30d)
31

Description

## Issue Description ##
Setting `csharp.semanticHighlighting.enabled` to `true` breaks syntax highlighting for base classes and attributes. This causes it to show up as a class definition, when in many themes it should have its own distinct color. Issue was tested on both the stable and insiders versions of vscode, log submitted is from insiders build.

Setting `csharp.semanticHighlighting.enabled` to `false` fixes the issue regarding base classes and attributes, but it also removes functionality such as highlighting for parameters which I prefer to be on.

Issue does not occur instantly when starting VSCode, I can't get an exact timeframe but it seems to be linked to the analyzers loading.

## Steps to Reproduce ##
- Launch VSCode
- Open `.cs` file
- Wait for analyzers to start
- Observe colour change for baseclasses and attribute to styling of regular classes.

See screenshots below

## Expected Behavior ##

Screenshots retrieved by setting `csharp.semanticHighlighting.enabled` to `false`

Monokai theme
![image](https://user-images.githubusercontent.com/15839811/150545900-1c4191b8-8f91-4e35-94ac-ce5d49da5c06.png)

Github dark theme
![image](https://user-images.githubusercontent.com/15839811/150545971-89ef49d5-d6c9-4d40-96c0-ee39ec286d80.png)

## Actual Behavior ##
`csharp.semanticHighlighting.enabled` to `true`

Monokai theme
![image](https://user-images.githubusercontent.com/15839811/150546726-3888d156-4720-4142-ba38-bf5831c95a3d.png)

Github dark theme
![image](https://user-images.githubusercontent.com/15839811/150546665-a7936d46-79a4-485a-b963-3b4969f6544e.png)

## Logs ##

### OmniSharp log ###
Starting OmniSharp server at 21/01/2022, 15:33:32
Target: c:\Users\wrlxs\source\repos\sero-quattuor\sero-quattuor.sln

OmniSharp server started.
Path: c:\Users\wrlxs\.vscode-insiders\extensions\ms-dotnettools.csharp-1.24.0\.omnisharp\1.38.0\OmniSharp.exe
PID: 1788

[info]: OmniSharp.Stdio.Host
Starting OmniSharp on Windows 6.2.9200.0 (x64)
[info]: OmniSharp.Services.DotNetCliService
Checking the 'DOTNET_ROOT' environment variable to find a .NET SDK
[info]: OmniSharp.Services.DotNetCliService
Using the 'dotnet' on the PATH.
[info]: OmniSharp.Services.DotNetCliService
DotNetPath set to dotnet
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
Located 1 MSBuild instance(s)
1: StandAlone 17.0.0 - "c:\Users\wrlxs\.vscode-insiders\extensions\ms-dotnettools.csharp-1.24.0\.omnisharp\1.38.0\.msbuild\Current\Bin"
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
MSBUILD_EXE_PATH environment variable set to 'c:\Users\wrlxs\.vscode-insiders\extensions\ms-dotnettools.csharp-1.24.0\.omnisharp\1.38.0\.msbuild\Current\Bin\MSBuild.exe'
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
Registered MSBuild instance: StandAlone 17.0.0 - "c:\Users\wrlxs\.vscode-insiders\extensions\ms-dotnettools.csharp-1.24.0\.omnisharp\1.38.0\.msbuild\Current\Bin"
CscToolExe = csc.exe
CscToolPath = c:\Users\wrlxs\.vscode-insiders\extensions\ms-dotnettools.csharp-1.24.0\.omnisharp\1.38.0\.msbuild\Current\Bin\Roslyn
MSBuildExtensionsPath = c:\Users\wrlxs\.vscode-insiders\extensions\ms-dotnettools.csharp-1.24.0\.omnisharp\1.38.0\.msbuild
MSBuildToolsPath = c:\Users\wrlxs\.vscode-insiders\extensions\ms-dotnettools.csharp-1.24.0\.omnisharp\1.38.0\.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 'c:\Users\wrlxs\source\repos\sero-quattuor'.
[info]: OmniSharp.Cake.CakeProjectSystem
Did not find any Cake files
[info]: OmniSharp.MSBuild.ProjectSystem
Detecting projects in 'c:\Users\wrlxs\source\repos\sero-quattuor\sero-quattuor.sln'.
[info]: OmniSharp.MSBuild.ProjectManager
Queue project update for 'c:\Users\wrlxs\source\repos\sero-quattuor\sero-quattuor.api\sero-quattuor.api.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
Queue project update for 'c:\Users\wrlxs\source\repos\sero-quattuor\sero-quattuor.business\sero-quattuor.business.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
Queue project update for 'c:\Users\wrlxs\source\repos\sero-quattuor\sero-quattuor.sockets\sero-quattuor.sockets.csproj'
[info]: OmniSharp.Script.ScriptProjectSystem
Detecting CSX files in 'c:\Users\wrlxs\source\repos\sero-quattuor'.
[info]: OmniSharp.Script.ScriptProjectSystem
Did not find any CSX files
[info]: OmniSharp.WorkspaceInitializer
Configuration finished.
[info]: OmniSharp.Stdio.Host
Omnisharp server running using Stdio at location 'c:\Users\wrlxs\source\repos\sero-quattuor' on host 10112.
[info]: OmniSharp.MSBuild.ProjectManager
Loading project: c:\Users\wrlxs\source\repos\sero-quattuor\sero-quattuor.api\sero-quattuor.api.csproj
[info]: OmniSharp.MSBuild.ProjectManager
Successfully loaded project file 'c:\Users\wrlxs\source\repos\sero-quattuor\sero-quattuor.api\sero-quattuor.api.csproj'.
[info]: OmniSharp.MSBuild.ProjectManager
Adding project 'c:\Users\wrlxs\source\repos\sero-quattuor\sero-quattuor.api\sero-quattuor.api.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
Loading project: c:\Users\wrlxs\source\repos\sero-quattuor\sero-quattuor.business\sero-quattuor.business.csproj
[info]: OmniSharp.MSBuild.ProjectManager
Successfully loaded project file 'c:\Users\wrlxs\source\repos\sero-quattuor\sero-quattuor.business\sero-quattuor.business.csproj'.
[info]: OmniSharp.MSBuild.ProjectManager
Adding project 'c:\Users\wrlxs\source\repos\sero-quattuor\sero-quattuor.business\sero-quattuor.business.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
Loading project: c:\Users\wrlxs\source\repos\sero-quattuor\sero-quattuor.sockets\sero-quattuor.sockets.csproj
[info]: OmniSharp.MSBuild.ProjectManager
Successfully loaded project file 'c:\Users\wrlxs\source\repos\sero-quattuor\sero-quattuor.sockets\sero-quattuor.sockets.csproj'.
[info]: OmniSharp.MSBuild.ProjectManager
Adding project 'c:\Users\wrlxs\source\repos\sero-quattuor\sero-quattuor.sockets\sero-quattuor.sockets.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
Update project: sero-quattuor.api
[info]: OmniSharp.MSBuild.ProjectManager
Found referenced project outside root directory: c:\Users\wrlxs\source\repos\sero-quattuor\sero-quattuor.core\sero-quattuor.core.csproj
[info]: OmniSharp.MSBuild.ProjectManager
Adding project 'c:\Users\wrlxs\source\repos\sero-quattuor\sero-quattuor.core\sero-quattuor.core.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
Queue project update for 'c:\Users\wrlxs\source\repos\sero-quattuor\sero-quattuor.core\sero-quattuor.core.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
Found referenced project outside root directory: c:\Users\wrlxs\source\repos\sero-quattuor\sero-quattuor.data\sero-quattuor.data.csproj
[info]: OmniSharp.MSBuild.ProjectManager
Adding project 'c:\Users\wrlxs\source\repos\sero-quattuor\sero-quattuor.data\sero-quattuor.data.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
Queue project update for 'c:\Users\wrlxs\source\repos\sero-quattuor\sero-quattuor.data\sero-quattuor.data.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
Update project: sero-quattuor.business
[info]: OmniSharp.MSBuild.ProjectManager
Update project: sero-quattuor.sockets
[info]: OmniSharp.MSBuild.ProjectManager
Loading project: c:\Users\wrlxs\source\repos\sero-quattuor\sero-quattuor.core\sero-quattuor.core.csproj
[info]: OmniSharp.MSBuild.ProjectManager
Successfully loaded project file 'c:\Users\wrlxs\source\repos\sero-quattuor\sero-quattuor.core\sero-quattuor.core.csproj'.
[info]: OmniSharp.MSBuild.ProjectManager
Loading project: c:\Users\wrlxs\source\repos\sero-quattuor\sero-quattuor.data\sero-quattuor.data.csproj
[info]: OmniSharp.MSBuild.ProjectManager
Successfully loaded project file 'c:\Users\wrlxs\source\repos\sero-quattuor\sero-quattuor.data\sero-quattuor.data.csproj'.
[info]: OmniSharp.MSBuild.ProjectManager
Update project: sero-quattuor.core
[info]: OmniSharp.OmniSharpWorkspace
Adding analyzer reference: C:\Program Files\dotnet\sdk\6.0.101\Sdks\Microsoft.NET.Sdk\analyzers\Microsoft.CodeAnalysis.CSharp.NetAnalyzers.dll
[info]: OmniSharp.OmniSharpWorkspace
Adding analyzer reference: C:\Program Files\dotnet\sdk\6.0.101\Sdks\Microsoft.NET.Sdk\analyzers\Microsoft.CodeAnalysis.NetAnalyzers.dll
[info]: OmniSharp.OmniSharpWorkspace
Adding analyzer reference: C:\Users\wrlxs\.nuget\packages\microsoft.entityframeworkcore.analyzers\5.0.11\analyzers\dotnet\cs\Microsoft.EntityFrameworkCore.Analyzers.dll
[info]: OmniSharp.OmniSharpWorkspace
Adding analyzer reference: C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.1\analyzers\dotnet\cs\System.Text.Json.SourceGeneration.dll
[info]: OmniSharp.MSBuild.ProjectManager
Update project: sero-quattuor.data
[info]: OmniSharp.OmniSharpWorkspace
Adding analyzer reference: C:\Program Files\dotnet\sdk\6.0.101\Sdks\Microsoft.NET.Sdk\analyzers\Microsoft.CodeAnalysis.CSharp.NetAnalyzers.dll
[info]: OmniSharp.OmniSharpWorkspace
Adding analyzer reference: C:\Program Files\dotnet\sdk\6.0.101\Sdks\Microsoft.NET.Sdk\analyzers\Microsoft.CodeAnalysis.NetAnalyzers.dll
[info]: OmniSharp.OmniSharpWorkspace
Adding analyzer reference: C:\Users\wrlxs\.nuget\packages\microsoft.entityframeworkcore.analyzers\6.0.1\analyzers\dotnet\cs\Microsoft.EntityFrameworkCore.Analyzers.dll
[info]: OmniSharp.OmniSharpWorkspace
Adding analyzer reference: C:\Users\wrlxs\.nuget\packages\microsoft.extensions.logging.abstractions\6.0.0\analyzers\dotnet\roslyn4.0\cs\Microsoft.Extensions.Logging.Generators.dll
[info]: OmniSharp.OmniSharpWorkspace
Adding analyzer reference: C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.1\analyzers\dotnet\cs\System.Text.Json.SourceGeneration.dll
Received response for /v2/getcodeactions but could not find request.
Received response for /completion but could not find request.

### C# log ###
Installing C# dependencies...
Platform: win32, x86_64

Finished

## Environment information ##

**VSCode version**: 1.64.0-insider
**C# Extension**: 1.24.0

Dotnet Information
.NET SDK (reflecting any global.json):
Version: 6.0.101
Commit: ef49f6213a

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

Host (useful for support):
Version: 6.0.1
Commit: 3a25a7f1cc

.NET SDKs installed:
6.0.101 [C:\Program Files\dotnet\sdk]

.NET runtimes installed:
Microsoft.AspNetCore.App 6.0.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 6.0.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 6.0.1 [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|
|---|---|---|
|csharp|ms-dotnettools|1.24.0|
|github-vscode-theme|GitHub|5.1.0|;

Code
```
using Microsoft.AspNetCore.Mvc;

namespace sero_quattuor.api.Controllers;

[ApiController]
[Route("token")]
public class TokenController : ControllerBase
{

}
```

Csproj
```


net6.0
false
sero_quattuor.api





```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.