Подтвердить что ты не робот

Как скрыть предупреждения "устаревшей переменной" Emacs?

Я обновил до Emacs 23.3, и теперь буфер *Compile-Log* постоянно открывается с ошибками, например:

Warning: `font-lock-beginning-of-syntax-function' is an obsolete variable (as
    of Emacs 23.3); use `syntax-begin-function' instead.

Я предполагаю, что авторы upstream позаботятся об этих предупреждениях в будущем. До тех пор, как я могу предотвратить появление этих ошибок и открытие нового окна?

4b9b3361

Ответ 1

В настоящее время я вернулся на 23.2 из-за другой проблемы, но я взломал обходной путь для этой проблемы, пока я пытался 23.3. Это просто препятствует тому, чтобы переменная считалась устаревшей, но до тех пор, пока Мумамо не сортирует себя, это было бы предпочтительнее!

;; Mumamo is making emacs 23.3 freak out:
(when (and (equal emacs-major-version 23)
           (equal emacs-minor-version 3))
  (eval-after-load "bytecomp"
    '(add-to-list 'byte-compile-not-obsolete-vars
                  'font-lock-beginning-of-syntax-function))
  ;; tramp-compat.el clobbers this variable!
  (eval-after-load "tramp-compat"
    '(add-to-list 'byte-compile-not-obsolete-vars
                  'font-lock-beginning-of-syntax-function)))

Ответ 2

Существует четыре уровня параметров для предупреждений:

  • предупреждение-минимальный уровень
  • предупреждение-минимум лог уровня
  • Предупреждающие-Подавить-типа
  • предупреждение-Подавить лог-типа

Более подробную информацию о Руководство Emacs.

Ответ 3

Я исправил его, запустив его в elisp:

sed -i.bak 's/font-lock-beginning-of-syntax-function/syntax-begin-function/g' `find . -name '*.el' -exec grep -l 'font-lock-beginning-of-syntax-function' {} \;` 

Ответ 4

Решение Phils для меня почему-то не срабатывало. Здесь более низкоуровневый способ сделать это.

(remprop 'flet 'byte-obsolete-info)
(remprop 'labels 'byte-obsolete-info)