csharp-tmLanguage
csharp-tmLanguage copied to clipboard
Splitting method in two lines between return type and name breaks syntax highlighting #2537
Environment data
dotnet --info
output:
.NET Core SDK (reflecting any global.json):
Version: 2.1.401
Commit: 91b1c13032
Runtime Environment:
OS Name: fedora
OS Version: 28
OS Platform: Linux
RID: fedora.28-x64
Base Path: /usr/share/dotnet/sdk/2.1.401/
Host (useful for support):
Version: 2.1.3
Commit: 124038c13e
.NET Core SDKs installed:
2.0.2 [/usr/share/dotnet/sdk]
2.0.3 [/usr/share/dotnet/sdk]
2.1.401 [/usr/share/dotnet/sdk]
.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.1.3 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.3 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.0.0 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 2.0.3 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.3 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
To install additional .NET Core runtimes or SDKs:
https://aka.ms/dotnet-download
VS Code version: 1.27.1 C# Extension version: 1.16.1
Steps to reproduce
- Open a new .cs file and write the following:
namespace Test
{
public class TestClass {
public int
TestMethod()
{
return 2;
}
public (int a, IEnumerable<int> b)
MethodThatReturnsTuple(int x)
{
return (5, new [] { 1, 2, 3 });
}
}
}
(I know the first example is a bit academic, but I just want to show that even the simpler example fails to some extent. I also note that GitHubs syntax highlight fails the second example... But it is correct csharp syntax)
Expected behavior
Expect highlighting to work as if the methods were on the same line as the return type:
Actual behavior
Note that:
- In TestMethod, the return type is not correctly highlighted
- In the MethodThatReturnsTuple, the incorrect highlighting spreads into the method body
Ported from https://github.com/OmniSharp/omnisharp-vscode/issues/2537
This is very similar to https://github.com/dotnet/csharp-tmLanguage/issues/63.