Visual Studio Professional 2022, ReSharper 2022.
При написании некоторого «обычного» кода C# в Visual Studio я столкнулся с проблемой, когда вся подсветка синтаксиса была потеряна, с некоторыми необычными ошибками компилятора. Подсветка синтаксиса продолжает работать, как и ожидалось, во всех других файлах.
Ошибки компилятора отображаются по-разному в разных местах:
Как видно на втором изображении, код, вызывающий ошибку, следующий:
public class Location : ILocation
{
public int InventoryId { get; }
public IReferences References { get; }
public Location(IInventoryLocation location)
{
var shortRef = location.References
.Single(ref => ref.ReferenceType == ReferenceType.Short);
// ...
}
}





Я заметил проблему, но написал здесь, если это поможет другим. Я использовал ref в качестве имени лямбда-переменной, которая, конечно же, является ключевым словом в C#. Изменение этого на reference или что-то еще восстанавливает подсветку синтаксиса. Конечно, ошибка компилятора в файле делает это довольно ясным, но изначально мне представилась не та ошибка. Я попробовал несколько других ключевых слов, и только ref, похоже, нарушает подсветку синтаксиса. Подсветка синтаксиса StackOverflow на самом деле лучше раскрывает проблему!
Вы можете пометить это как ответ.
Подсветка синтаксиса StackOverflow очень тупая и выполняет более или менее только поиск по ключевым словам. Он ничего не знает о логическом контексте.