Недавно я был обновлен с Visual Studio 2017 / ReSharper 2017.1 до Visual Studio 2017 / ReSharper 2018.3, когда недавно ИТ-отделу пришлось заново создать образ моей рабочей машины и установить обновленные версии всего программного обеспечения, которое я использую.Я заметил странное поведение с функцией, которую я часто использую.
public class Foo { }
public class Bar { }
public class Parent
{
protected virtual void DoThing1() { }
protected virtual void DoThing2() { }
protected virtual void DoThing3(Func<Foo, Bar> callback)
{
}
}
public class Child : Parent
{
public Child()
{
DoThing3( /* ReSharper Intellisense here ... */ );
}
override /* ReSharper Intellisense here... */
}
При работе в классах с переопределенными членами, такими как в классе Child
, показанном выше, я обычно печатаю override
именю Intellisense показывает мне список целевых предложений, отдавая приоритет переопределяемым элементам для типа в верхней части списка.
Здесь ReSharper предлагает целевой список переопределяемых элементов.
После обновления до ReSharper 2018.3 меню Intellisense теперь показывает мне общий список, содержащий все, что только можно придумать, начиная со списка ключевых слов.
Здесь ReSharper предлагает все.См. Полосу прокрутки сбоку?
Я нашел несколько способов обойти эту проблему, но все они ломают другие функции, которые я также интенсивно использую.
Попытка 1
Если перейти к ReSharper > Options > Environment > IntelliSense > General
и выбрать параметр Visual Studio
, эта проблема исправлена.Однако это нарушает способ, которым Intellisense предлагает подписи для лямбда-выражений.
Здесь ReSharper предлагает несколько вариантов для выражения Lamda (ReSharper Intellisense).
Здесь ReSharper не предоставляет параметров для выражения Lambda(Visual Studio Intellisense).
Попытка 2
Если я оставлю ReSharper Intellisense включенным (через процесс, описанный в Попытке 1)вместо этого перейдите к ReSharper > Options > Environment > IntellSense > Completion Filters
, выберите параметр Persist filters state
и выберите Exclude
для Keywords
на вложенной вкладке C#
, это также устраняет проблему ключевого слова переопределения и проблему лямбда-выражения, но создает другую проблему... У меня теперь нет Intellisense для ключевых слов. Lol.
Здесь меню Intellisense не предлагает никаких ключевых слов, поскольку они отключены.
Вопрос
Кто-нибудь знает способ включения переопределяемых предложений членов, предложений лямбда-выражений и предложений ключевых слов, как описано выше в Visual Studio 2017 / ReSharper 2018.3