ReSharper C # Intellisense Показывать переопределяемые элементы после ввода ключевого слова переопределения - PullRequest
0 голосов
/ 06 февраля 2019

Недавно я был обновлен с 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 suggests overridable Members while in Visual Studio Mode

После обновления до ReSharper 2018.3 меню Intellisense теперь показывает мне общий список, содержащий все, что только можно придумать, начиная со списка ключевых слов.

Здесь ReSharper предлагает все.См. Полосу прокрутки сбоку?

ReSharper suggests anything it can think of

Я нашел несколько способов обойти эту проблему, но все они ломают другие функции, которые я также интенсивно использую.

Попытка 1

Если перейти к ReSharper > Options > Environment > IntelliSense > General и выбрать параметр Visual Studio, эта проблема исправлена.Однако это нарушает способ, которым Intellisense предлагает подписи для лямбда-выражений.

Здесь ReSharper предлагает несколько вариантов для выражения Lamda (ReSharper Intellisense).

ReSharper suggests a few options for fulfilling the Lambda Expression

Здесь ReSharper не предоставляет параметров для выражения Lambda(Visual Studio Intellisense).

ReSharper suggests general options, none specific to the Lambda Expression

Попытка 2

Если я оставлю ReSharper Intellisense включенным (через процесс, описанный в Попытке 1)вместо этого перейдите к ReSharper > Options > Environment > IntellSense > Completion Filters, выберите параметр Persist filters state и выберите Exclude для Keywords на вложенной вкладке C#, это также устраняет проблему ключевого слова переопределения и проблему лямбда-выражения, но создает другую проблему... У меня теперь нет Intellisense для ключевых слов. Lol.

Здесь меню Intellisense не предлагает никаких ключевых слов, поскольку они отключены.

Who needs keywords anyway

Вопрос

Кто-нибудь знает способ включения переопределяемых предложений членов, предложений лямбда-выражений и предложений ключевых слов, как описано выше в Visual Studio 2017 / ReSharper 2018.3

Ответы [ 2 ]

0 голосов
/ 08 апреля 2019

Что мне подходит, так это сначала написать переопределение, а затем удалить последние одну или две буквы, а затем ReSharper начинает предлагать переопределенные методы.

0 голосов
/ 07 февраля 2019

Для отслеживания проблем JetBrains подана заявка:

https://youtrack.jetbrains.com/issue/RSRP-469670

Возможно, если они увидят, что есть раздраженные пользователи, то исправление наступит раньше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...