Emacs 26 flymake: настройка формата строки режима

Я подумываю переключиться обратно с flycheck на flymake после переписывания Emacs 26. Одна вещь, которая беспокоит меня о flymake, это то, сколько места на линии мод она занимает. Есть строка Flymake плюс результаты. Это кажется глупостью, но это 10% строки режима на кадре из 80 символов, просто для имени! У меня есть много важной информации, которую я хотел бы видеть в моей строке режима, поэтому я стараюсь удалять вещи, которые мне не нужны - я знаю, какие второстепенные режимы и т. Д. Включены в моих буферах, так как я их настроил! Лично я предпочел бы вообще не видеть имя, только результаты или самое большее F или же FM,

Я мог бы использовать diminish полностью избавиться от информации о строке режима, но, конечно, я не хочу этого: я хочу видеть состояние моего буфера.

Я посмотрел на flymake.el и flymake--mode-line-format defun, и не похоже, что эта строка является настраиваемой или ее легко изменить.

У кого-нибудь есть мысли по этому поводу?

1 ответ

Решение

Вам нужно переопределить flymake--mode-line-format функция. Вероятно, он должен быть более настраиваемым, но это не так. Возможно, наименее навязчивый способ сделать это - определить :filter-return советы по этой функции для преобразования вывода.

(defun flymake--transform-mode-line-format (ret)
  "Change the output of `flymake--mode-line-format'."
  (setf (seq-elt (car ret) 1) " FM")
  ret)
(advice-add #'flymake--mode-line-format
            :filter-return #'flymake--transform-mode-line-format)
Другие вопросы по тегам