1

Как я могу предотвратить сохранение Emacs моего буфера, когда он содержит синтаксические ошибки?

Это было бы особенно полезно для редактирования исходного кода.

Я записываю некоторый исходный код в буфер, нажимаю Cx Cs и Emacs должен поместить курсор в строку, содержащую ошибку. Я исправляю ошибку, снова нажимаю команду save, и Emacs должен сохранить файл.

2 ответа2

1

Мой подход к этой проблеме заключается в том, чтобы привязать Cx Cs к astropanic-save-buffer который будет функцией elisp, которая будет запускать содержимое текущего буфера через процесс компиляции / сборки. Если он пройдет, он запустит save-buffer а в случае ошибки он создаст новый буфер / разделение окна с сообщением об ошибке, чтобы вы могли это исправить.

Также рассмотрите возможность использования хука write-file-functions(больше информации) для присоединения рабочего процесса к save-buffer , но я опасаюсь этого на том основании, что, хотя я могу подумать, что я хотел бы этого в некоторых режимах, я бы не стал т во всех режимах.

0

Режим Emacs Flymake может быть близко к тому, что вы хотите. Он выполняет динамическую компиляцию / проверку синтаксиса исходного кода для текущего буфера.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .