Обновление отображения Edebug
Когда Edebug нужно отобразить что-то (например, в режиме трассировки), он сохраняет текущую конфигурацию окна извне Edebug (см. Конфигурации окон). При выходе из Edebug он восстанавливает предыдущую конфигурацию окна.
Emacs перерисовывает только при паузе. Обычно, когда вы продолжаете выполнение, программа снова входит в Edebug на точке останова или после шага, без паузы или чтения ввода между ними. В таких случаях Emacs никогда не получает возможности перерисовать внешнюю конфигурацию. Соответственно, то, что вы видите, — это та же конфигурация окна, что и в последний раз, когда Edebug был активен, без прерывания.
Вход в Edebug для отображения чего-либо также сохраняет и восстанавливает следующие данные (хотя некоторые из них намеренно не восстанавливаются, если произошла ошибка или сигнал выхода).
- Сохраняются и восстанавливаются текущий буфер, позиции точки и метки в текущем буфере.
- Конфигурация внешнего окна сохраняется и восстанавливается, если
edebug-save-windowsне равноnil(см. Параметры Edebug).Конфигурация окна не восстанавливается при ошибке или выходе, но внешнее выбранное окно восстанавливается даже при ошибке или выходе в случае, если активен
save-excursion. Если значениеedebug-save-windowsявляется списком, сохраняются и восстанавливаются только указанные окна.Однако начальная позиция и горизонтальная прокрутка буфера исходного кода не восстанавливаются, чтобы отображение оставалось согласованным внутри Edebug.
- Значение точки в каждом отображаемом буфере сохраняется и восстанавливается, если
edebug-save-displayed-buffer-pointsне равноnil. - Переменные
overlay-arrow-positionиoverlay-arrow-stringсохраняются и восстанавливаются, чтобы вы могли безопасно вызывать Edebug из рекурсивного редактирования в другом месте того же буфера. -
cursor-in-echo-areaлокально привязывается кnil, чтобы курсор отображался в окне.
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Edebug-Display-Update.html