Rails Console разрывается при изменении - PullRequest
0 голосов
/ 06 июля 2018

Здесь совершенно не хватает интуиции. Сначала я подумал, что это происходит только при копировании и вставке кода из редактора. К сожалению, это более распространено. Единственное, что я делаю, это пытаюсь вставить больше кода где-то посередине текущего ввода или изменить его.

Ожидаемое поведение:

  • Изменить ввод без побочных эффектов.

Что на самом деле происходит:

  • ОЧЕНЬ ЧАСТО при изменении ввода он запутывается.
  • Если это происходит, каждое нажатие клавиши копирует и вставляет текущий ввод вместе с нажатым символом.

Основные ноты:

  • Кодирование установлено на UTF-8 в терминалах (ах)

  • Проблема сохраняется на разных эмуляторах (терминатор, gnome-терминал)

  • Проблема сохраняется при использовании другой консоли времени исполнения Ruby (IRB, Pry)

  • Похоже, проблема связана со средой исполнения Ruby, а НЕ с оболочкой Linux (я думаю ...)

Проблема появляется с:

  • С момента установки системы. Не появился на моем MacBook Air

Система:

  • ArchLinux, хотя коллега сообщил, что на его MacBook Pro происходит то же самое.

Как воспроизвести (работает у меня):

  • Консоль с открытыми рельсами
  • Введите пример кода: Shift.where (имя: "сом"). Где (имя: "дом"). Где (имя: "пом")
  • Перемещайте курсор, чтобы сначала изменить оператор where.
  • Измените "сом" на "СОМ"
  • Должен увидеть, что он сломается
  • Несколько раз нажмите случайную клавишу, чтобы увидеть, что она сломалась еще больше.

Изображения:

  • Хороший ввод

enter image description here

  • Теперь я перейду к первому оператору, в котором «som» будет изменен на «SOM» в верхнем регистре.

  • Я в основном перемещался по своему курсору и нажимал SHIFT + S, SHIFT + O, SHIFT + M

enter image description here

Надеюсь, это достаточно ясно :-) Спасибо!


РЕДАКТИРОВАТЬ 1:

  • Пробовал использовать zsh вместо bash, не помогло

  • Отключен самоцвет весны, не помогло

РЕДАКТИРОВАТЬ 2:

Люди на Reddit предложили мне проверить, есть ли какие-либо предупреждения Ruby, касающиеся чтения строк, например. Msgstr "Readline не установлен". Ни один из них нигде не появляется. Также переустановил ruby ​​2.4.1, похоже, это не проблема в моем случае.

РЕДАКТИРОВАТЬ 3:

Я не могу воспроизвести проблему в другом проекте Rails . Проблема появляется на Rails 5.1.1 , между тем 5.0.3 работает без нареканий. Возможно ли, что сам Rails (или, скорее, один из его драгоценных камней) может быть причиной?

...