Включить другой второстепенный режим после вызова моего узла

Я хотел бы написать второстепенный режим, который переключает несколько других режимов при запуске. Какой-то режим зонтика.

Теперь у меня есть простейшая задача - создать режим, который включает один другой режим.

Я написал

(require 'whitespace)
(define-minor-mode
  myspace-mode
  "some doc"
  nil
  nil
  (if myspace-mode
    (whitespace-mode 1)
    (whitespace-mode -1)
 )
)

Когда я переключаю этот режим из Mx, ничего не происходит. Но когда я оцениваю напрямую (пробельный режим ±1), он работает как положено.

Что мне не хватает?

1 ответ

Решение

В вашем определении отсутствует один параметр. По этой причине ваш (if ...) Форма на самом деле интерпретируется как keymap параметр.

Попробуй это:

(define-minor-mode
  myspace-mode
  "some doc"
  nil
  nil
  nil
  (if myspace-mode
      (whitespace-mode 1)
      (whitespace-mode -1)))
Другие вопросы по тегам