Emacs: раздражающее диалоговое окно Flymake

У меня есть следующие строки в моем ~/.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 ++, который имеет надлежащий Make-файл в той же папке, я получаю непрерывную компиляцию, и сообщение об ошибке (Flymake проверит синтаксис и сообщит об ошибках и предупреждениях во время редактирования кода).

Make-файл имеет a check-syntax цель:

.PHONY: check-syntax
check-syntax:
 $(CXX) -Wall -Wextra -pedantic -fsyntax-only $(CHK_SOURCES)

Проблема состоит в том что, когда я открываю .cc файл, который не имеет никакого соответствующего Make-файла, я получаю раздражающее диалоговое окно, которое предупреждает меня о flymake том, чтобы быть отключенным.

Таким образом, если я запускаюсь emacs *.cc в папке с 20 файлами C++ я получаю 20 модальных диалоговых окон, говоря что-то как Никакой файл типа "build", найденный для [...]. Flymake будет выключен.

Есть ли некоторый рычаг, который я могу использовать для отключения того предупреждения? Можно ли обеспечить образец elisp код и объяснение о том, как Вы нашли надлежащий рычаг?

14
задан SamB 23 March 2012 в 09:57
поделиться

2 ответа

Самый простой способ сделать это и по-прежнему получать сообщения - это оставьте для переменной настройки значение true и переопределите функцию flymake-display-warning.

;; Overwrite flymake-display-warning so that no annoying dialog box is
;; used.

;; This version uses lwarn instead of message-box in the original version. 
;; lwarn will open another window, and display the warning in there.
(defun flymake-display-warning (warning) 
  "Display a warning to the user, using lwarn"
  (lwarn 'flymake :warning warning))

;; Using lwarn might be kind of annoying on its own, popping up windows and
;; what not. If you prefer to recieve the warnings in the mini-buffer, use:
(defun flymake-display-warning (warning) 
  "Display a warning to the user, using lwarn"
  (message warning))
14
ответ дан 1 December 2019 в 11:59
поделиться

Есть переменная, которую можно настроить, но которую я пропустил .

flymake-gui-warnings-enabled

Это отключит все сообщения графического интерфейса пользователя, но меня это устроит, если никто не отправит лучший ответ.

11
ответ дан 1 December 2019 в 11:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: