csharp-tmLanguage
csharp-tmLanguage copied to clipboard
C# syntax highlighting is broken by multiline types
Originally from @svenskmand in https://github.com/microsoft/vscode/issues/96341
- VSCode Version: Version: 1.44.2 (system setup) Commit: ff915844119ce9485abfe8aa9076ec76b5300ddd Date: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.18363
- OS Version: Windows 10
Steps to Reproduce:
- Open a new C# file and input the following code
namespace Foo {
public interface IBar<T> {
IList<T> Baz(IList<IList<IList<IList<IList<IList<
IList<IList<T>>>>>>>> foobar);
}
}
- The type of the
foobar
variable and the rest of the method has a white text color and no syntax highlighting.
This is how the syntax highlighting looks before the line break:
This is how the syntax highlighting looks with the line break:
Does this issue occur when all extensions are disabled?: Yes
Any update on this? :)
Not sure if this is related but other valid code is broken in multiline statements as well for example
namespace Foo
{
public class Bar
{
public string Name {get; set;}
public string Test(Bar[] myArray)
{
string result = myArray
.Where(a => a.Name.Length > 2)
.FirstOrDefault()?
.Name ?? "Name";
return result;
}
}
}
I'm noticing that even the embedded text here is broken.
I'm using dotnetcore3.1 and C# 8
Not sure if this is related but other valid code is broken in multiline statements as well for example
namespace Foo { public class Bar { public string Name {get; set;} public string Test(Bar[] myArray) { string result = myArray .Where(a => a.Name.Length > 2) .FirstOrDefault()? .Name ?? "Name"; return result; } } }
I'm noticing that even the embedded text here is broken.
I'm using dotnetcore3.1 and C# 8
That is because ?
is treated as a conditional operator since it cannot look into next line to see the presence of a .
and then backtrack.
Related issue was #183 and has been fixed.
This issue is also the same problem as #63 and other linked issues under it.