Как скрыть предупреждения "устаревшей переменной" 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 позаботятся об этих предупреждениях в будущем. До тех пор, как я могу предотвратить появление этих ошибок и открытие нового окна?
Ответы
Ответ 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)