Незначительный режим Mode-Line Menu

Как сделать запись во всплывающей строке режима второстепенным меню режима при нажатии?

Для справки смотрите это обсуждение https://github.com/flycheck/flycheck/issues/365

2 ответа

Обратите внимание, что вы можете предоставить любую действительную конструкцию строки режима как STRING / более светлое значение для данного режима VARIABLE в minor-mode-alist,

Таким образом, хотя это значение обычно является просто названием режима (или его соответствующей аббревиатуры), вы можете сделать более сложные вещи, такие как установка свойств текста - которые могут включать local-map свойство для определения раскладки клавиатуры для щелчков мыши (см. Chig (elisp) Properties in Mode RET).

Вы можете посмотреть на Mx find-variable RET mode-line-modes RET для примера (nb IIRC эта переменная только в Emacs 24, где сложность mode-line-format переменная была разбита на независимые под-переменные, чтобы облегчить понимание / изменение общей структуры).

Смотри Chяг (elisp) Mode Line Format RET для полной документации.

Похоже, что меню отображается при нажатии mode-line Запись для режима - это то же самое меню, которое отображается, когда вы нажимаете на запись режима в строке меню, при условии, что режим определяет запись меню верхнего уровня. Простейшим способом было бы определить меню верхнего уровня следующим образом

(easy-menu-define flycheck-menu flycheck-mode-map "Flycheck menu"
  '("Flycheck"
    ["Check current buffer" flycheck-buffer t]
    ["Clear errors in buffer" flycheck-clear t]
    ["Compile current buffer" flycheck-compile t]
    "---"
    ["Go to next error" flycheck-next-error t]
    ["Go to previous error" flycheck-previous-error t]
    ["Show all errors" flycheck-list-errors t]
    ["Google messages at point" flycheck-google-messages t]
    "---"
    ["Select syntax checker" flycheck-select-checker t]
    "---"
    ["Describe syntax checker" flycheck-describe-checker t]
    ["Read the Flycheck manual" flycheck-info t]))

Это может не быть решением, если вы не хотите вводить другой элемент строки меню. Смотря на функцию minor-mode-menu-from-indicator в mouse.el кажется, что поиск комбинаций клавиш начинается с [menu-bar] для получения меню мод-линии, которое также может быть вам интересно.

Другие вопросы по тегам