Отключить прыгающий курсор в оболочке Erlang

При вводе () в IEx 1.2.4 курсор "прыгнет" в соответствующую скобку на 1 с и вернется назад. Хотя это и не прыгает, но это раздражает глаз. Есть ли способ отключить эту функцию в IEx?

EDIT:

В то время как вопрос первоначально касался IEx, фактическая проблема (как указано @tkowal в его комментарии ниже) на самом деле находится в оболочке Erlang, которую IEx работает поверх. Поэтому я добавил к этому вопросу тег erlang-shell.

Ответы

Ответ 1

Перемещение курсора происходит в lib/stdlib/src/edlin.erl (в Erlang stdlib). В частности, это похоже на строки с 205 по 213, где ), ] и }, по-видимому, захватываются и преобразуются в инструкции для перемещения курсора (которые затем отправляются через различные процессы в erl дерево наблюдения до user_drv, которое затем отправляет необходимые команды в порт tty_sl, чтобы сделать запросы перемещения курсора).

К сожалению, нет способа (AFAICT) отключить эту функциональность, которая не включает исправление кода в этом месте (будь то путем комментирования этих строк или путем добавления дополнительных защит для проверки новой опции, переданной в erl), Если вы планируете исправлять этот файл и перекомпилировать Erlang, то ищите его. Кроме того, это, по крайней мере, отправная точка для того, чтобы кто-то попытался реализовать параметр конфигурации вокруг этого поведения.