Vsvim: Использование переименования ReSharper сохраняет настройки визуального режима включенным

Созданный на 30 окт. 2019  ·  7Комментарии  ·  Источник: VsVim/VsVim

Опишите ошибку
У меня установлены ReSharper и VsVim. Когда я использую ReSharper для переименования переменной, VsVim остается в визуальном режиме. Приходится несколько раз нажимать escape, чтобы выйти из визуального режима. Иногда мне просто нужно удерживать клавишу выхода в течение нескольких секунд, чтобы вывести VsVim из визуального режима.

Воспроизвести
Шаги для воспроизведения поведения:

  1. Используйте ReSharper rename (ctrl-r, ctrl-r — это ярлык, но меню Refactor/Rename делает то же самое) переменную.
  2. Введите новое имя переменной
  3. Нажмите Enter, когда закончите

Когда я только тестировал это, я нажал escape 15 раз, и он все еще был в визуальном режиме. Удерживая некоторое время клавишу выхода, VsVim вышел из визуального режима.

Ожидаемое поведение
После переименования переменной VsVim не должен оставаться в визуальном режиме.

Окружающая среда (пожалуйста, заполните следующую информацию):

  • Версия Visual Studio: 16.3.6 и 16.3.7.
  • Версия VsVim: 2.8.324
  • Язык программирования: С#
  • Отметьте (введите «x») все установленные:

    • [x] РеШарпер

    • [ ] Визуальный помощник

У меня установлен SuperCharger, и я подумал, что это может быть проблема из-за некоторых вещей, которые он делает, но я отключил его, и проблема все еще возникает.

Самый полезный комментарий

У меня тоже есть эта проблема, но в качестве обходного пути вы можете выйти из визуального режима с помощью клавиши v , когда это произойдет.

Все 7 Комментарий

У меня тоже есть эта проблема, но в качестве обходного пути вы можете выйти из визуального режима с помощью клавиши v , когда это произойдет.

У меня тоже есть эта проблема. Я начал видеть это после обновления Resharper с 2019.2 до 2019.3.

Я хотел бы, чтобы любой, кто действительно сталкивается с этой проблемой, провел для меня эксперимент, если это возможно.

Эксперимент заключается в том, чтобы попытаться отключить «Отслеживание переименования и фрагмента». Да, я знаю, что это противоречит описанию, данному для настройки!

image

В любом случае, я хочу знать, как это влияет на поведение. Спасибо, добрая душа!

Я только что проверил это.

  1. Я изменил настройку на false.
  2. Я использовал переименование ReSharper (ctrl-r ctrl-r в моей среде), чтобы переименовать
    Переменная
  3. ReSharper дал мне список вариантов на выбор.
  4. я выбрал вариант
  5. Переменная была переименована, и она работала правильно. VxVim не остался в
    визуальный режим.

Теперь плохие новости.

  1. Я повторил шаги 1-3
  2. Я начал вводить новое имя. Я просто собирался переименовать переменную
    к "Фреду"
  3. VsVim вступил во владение, и когда я нажал fr, VsVim переместил курсор на следующий r
    в текущей строке кода
  4. Когда я нажимаю e, VsVim перемещается в конец текущего слова.
  5. Когда я нажимаю d, VsVim удаляет все с начала слова I.
    хотел переименовать в новое местоположение курсора.

В понедельник, 6 января 2020 г., в 14:03 Рик Сладки, [email protected]
написал:

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

Эксперимент заключается в том, чтобы попытаться отключить «Отслеживание переименования и фрагмента». да я
знайте, что это противоречит описанию, данному для настройки!

[изображение: изображение]
https://user-images.githubusercontent.com/2680524/71848584-d92fab00-309d-11ea-86ab-1c05acba66de.png

В любом случае, я хочу знать, как это влияет на поведение. Спасибо, добрая душа!


Вы получаете это, потому что вы создали тему.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/VsVim/VsVim/issues/2746?email_source=notifications&email_token=AAF6KIZ5JGCZXF2NPSNAWULQ4OMAVA5CNFSM4JGTUS4KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEIGYYJA,1813comment-3813comment-3813comment-3813
или отписаться
https://github.com/notifications/unsubscribe-auth/AAF6KI4FQXIKW26AT67AF5TQ4OMAVANCNFSM4JGTUS4A
.

@jnothstine Спасибо за этот тест. Я буду продолжать думать об этом.

Я только что попробовал это на 33c1fa4de80e23db2b9c41f3826cffa1b69bb60e (VS 16.4.4, ReSharper 2019.3.1). Те же результаты, что и выше, но я попытался добавить точку останова к этому методу, который регистрирует, что такое предыдущий/следующий режимы:

https://github.com/VsVim/VsVim/blob/33c1fa4de80e23db2b9c41f3826cffa1b69bb60e/Src/VsVimShared/Implementation/ExternalEdit/ExternalEditMonitor.cs#L118

Я скопировал содержимое окна вывода после того, что казалось важным, чтобы посмотреть, не появится ли что-нибудь интересное. Я помещаю полные результаты здесь: https://gist.github.com/dagood/cd82ff615041df2db8efca7ee5b08d55. (Вероятно, там какой-то шум от фокусировки/расфокусировки экспериментального экземпляра, извините, я не знаком с этим выводом.)

Одна вещь, которая кажется мне странной, — это переключение с Normal => VisualCharacter => ExternalEdit после начальной команды рефакторинга, отображающееся в виде смежных строк вывода:

...OnSwitchedMode(object, Vim.SwitchModeEventArgs): prev $Normal, next $VisualCharacter
...OnSwitchedMode(object, Vim.SwitchModeEventArgs): prev $VisualCharacter, next $ExternalEdit

Наивно кажется, что это объясняет, почему завершение внешнего редактирования заставляет VsVim переходить в визуальный режим, поскольку это был предыдущий режим перед отслеживаемым редактированием.

На самом деле я понизил версию ReSharper в своем экспериментальном экземпляре с 2019.3.1 => 2019.2.4, чтобы попытаться получить журнал для сравнения, но он все еще воспроизводится для меня! Странно выглядящий переключатель режимов также все еще появляется. Возможно, мне нужно более тщательное обновление - я просто надеялся получить что-то быстро, чтобы увидеть, не ошибся ли я, но не знаю, как это сделать сейчас.

Нажатие v на данный момент является для меня достаточно хорошим обходным путем, спасибо за это. 🙂

Я также заметил эту проблему в течение нескольких лет. Это все еще в процессе исправления, или это просто невозможно решить?

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

ogirginc picture ogirginc  ·  6Комментарии

LariscusObscurus picture LariscusObscurus  ·  4Комментарии

jaredpar picture jaredpar  ·  5Комментарии

DanielKeogh picture DanielKeogh  ·  3Комментарии

prat0088 picture prat0088  ·  4Комментарии