Опция magit-define-popup не найдена

В какой-то момент мне удалось добавить опцию во всплывающее окно magit pull.

Эта строка оказалась в моем .emacs (который, я думаю, работал в какой-то момент):

(magit-define-popup-option 'magit-pull-popup
  ?s "recurse submodules" "--recurse-submodules=yes")

Теперь я получаю:

eval: Symbol’s function definition is void: magit-define-popup-option

Вызов выглядит правильным для меня в соответствии с: https://github.com/magit/magit/wiki/Additional-proposed-infix-arguments-and-suffix-commands

(magit-define-popup-option 'magit-commit-popup
  ?D "Override the author date" "--date=" #'read-from-minibuffer)

person Techniquab    schedule 09.01.2019    source источник
comment
Что изменилось в вашем окружении за последнее время? новая версия емакса?   -  person coredump    schedule 09.01.2019
comment
Magit определенно загружается до того, как вы запустите это? Это работает, если вы (require 'magit-popup) раньше?   -  person jpkotta    schedule 10.01.2019
comment
@jpkotta это правильный ответ (я добавил строку кода в свой .emacs, когда впервые придумал настройку в интерактивном режиме - на самом деле она никогда не работала при запуске, но я оставляю emacs открытым достаточно долго, чтобы забыть!)   -  person Techniquab    schedule 11.01.2019


Ответы (1)


Вы не можете вызвать функцию, пока она не определена.

(with-eval-after-load "magit-commit"
  (magit-define-popup-option 'magit-commit-popup
    ?D "Override the author date" "--date=" #'read-from-minibuffer))

н.б. "magit-popup" — это библиотека, которая определяет функцию magit-define-popup-option, но я предполагаю, что вы хотите сделать это только после того, как "magit-commit" будет загружен (в этот момент будет определено конкретное интересующее вас всплывающее окно).

person phils    schedule 10.01.2019
comment
Вы правы, но, как указал jpkotta, просто я еще не загрузил magit. - person Techniquab; 11.01.2019
comment
Да, это точно та же проблема, которую решает это решение, но таким образом вам не нужно нужно загружать Magit для его настройки; вы просто говорите, что если в какой-то момент я загружу его, то также сделайте это. - person phils; 11.01.2019