У меня есть следующие строки в моем ~/.emacs.d/init.el
(custom-set-variables
'(flymake-allowed-file-name-masks
(quote
(
("\\.cc\\'" flymake-simple-make-init)
("\\.cpp\\'" flymake-simple-make-init)))))
(add-hook 'find-file-hook 'flymake-find-file-hook)
Когда я открываю файл C ++ с правильным Makefile в той же папке, я получаю компиляцию и отчеты об ошибках на лету (Flymake проверяет синтаксис и сообщает об ошибках и предупреждениях во время редактирования кода).
Makefile имеет цель check-syntax
:
.PHONY: check-syntax
check-syntax:
$(CXX) -Wall -Wextra -pedantic -fsyntax-only $(CHK_SOURCES)
Проблема в том, что когда я открываю файл .cc, у которого нет соответствующего Makefile, я получаю раздражающее диалоговое окно, которое предупреждает меня об отключении flymake.
Поэтому, если я запускаю emacs *.cc
в папке с 20 файлами C ++, я получаю 20 модальные диалоговые окна, говорящие что-то вроде Файл сборки не найден для [...]. Flymake будет выключен .
Есть ли какой-нибудь хук, который я могу использовать, чтобы отключить это предупреждение? Можете ли вы предоставить образец кода elisp и объяснение того, как вы нашли правильный хук?