Добавить улучшенную поддержку отмены при вставке форматированного текста

Спасибо! Вот что я заметил: сейчас не поддерживается отмена действий для:

Из кнопок редактора:

  • Цитата
  • Маркированный список
  • Нумерованный список

Другие операции (ничего удивительного):

  • Вставка изображений через буфер обмена
  • @пользователь, #категория/тег, :emoji:

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

Тем не менее, я заметил некоторые проблемы при комбинировании операций, которые можно отменить, с теми, которые нельзя.


Ошибка 1:

  • Откройте редактор (важно начинать с чистого состояния)
  • Введите hello
  • Удалите весь текст в редакторе
  • Нажмите кнопку «Цитата» (не отменяется)
    • Теперь в редакторе отображается > Цитата
  • Нажмите Ctrl+Z
    • Теперь в редакторе отображается > Цитатаhello

Ошибка 2:

  • Откройте редактор (важно начинать с чистого состояния)
  • Введите hello
  • Нажмите кнопку «Цитата» (не отменяется)
    • Теперь в редакторе отображается hello (переносы строк) > Цитата
  • Нажмите Ctrl+Z пять раз (обратите внимание, что курсор сдвигается на пятом нажатии)
  • Нажмите Ctrl+Y
    • Теперь в редакторе отображается hello (переносы строк) > Цитатаhhello
  • Продолжайте нажимать Ctrl+Y
    • Теперь в редакторе отображается hello (переносы строк) > Цитатаhellohello

Количество нажатий отмены, необходимых для активации этого поведения, зависит от того, сколько букв вы изначально ввели (hello в моём примере).

Обратите внимание, что это также может происходить с упоминаниями вместо нажатия кнопки цитаты, но в этом случае всё ещё страннее, так как нужно вводить текст, чтобы получить предложения для упоминаний. Поэтому при «повторении» этот текст появляется частично. Например:

  • Введите «hello @dav» и выберите своё имя пользователя из списка предложений (не отменяется)
  • Нажмите Ctrl+Z, пока курсор не переместится в начало редактора, как в предыдущем примере
  • Нажмите Ctrl+Y
    • Теперь в редакторе отображается hello @david hhello @dav
  • Продолжайте нажимать Ctrl+Y
    • Теперь в редакторе отображается hello @david hello @davhello @dav
1 лайк