csharp-tmLanguage icon indicating copy to clipboard operation
csharp-tmLanguage copied to clipboard

Splitting method in two lines between return type and name breaks syntax highlighting #2537

Open rchande opened this issue 6 years ago • 2 comments

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

  1. 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:

image

Actual behavior

image

Note that:

  1. In TestMethod, the return type is not correctly highlighted
  2. In the MethodThatReturnsTuple, the incorrect highlighting spreads into the method body

rchande avatar Sep 18 '18 20:09 rchande

Ported from https://github.com/OmniSharp/omnisharp-vscode/issues/2537

rchande avatar Sep 18 '18 20:09 rchande

This is very similar to https://github.com/dotnet/csharp-tmLanguage/issues/63.

DustinCampbell avatar Sep 18 '18 21:09 DustinCampbell