Как передать arg в абстрактную функцию Emacs

Я пытаюсь написать функцию, которая абстрагирует helm-imenu вариант для использования:

(defun my/helm-menu ()
  "For Org mode buffers, show Org headlines.
For programming mode buffers, show functions, variables, etc."
  (interactive)
  (cond ((derived-mode-p 'org-mode)
           (helm-org-in-buffer-headings))
        (t
           (helm-semantic-or-imenu))))

Хотя, когда он используется в буфере не в режиме Org, он терпит неудачу, говоря, что ему нужен один аргумент.

В самом деле, helm-semantic-or-imenu требует arg,

Как я должен пройти это?

Почему это работает с M-x helm-semantic-or-imenu: где аргумент?

1 ответ

Следуя совету Дрю, он должен это сделать:

(defun my/helm-menu (arg)
  "For Org mode buffers, show Org headlines.
For programming mode buffers, show functions, variables, etc."
  (interactive "P")
  (cond ((derived-mode-p 'org-mode)
           (helm-org-in-buffer-headings))
        (t
            (helm-semantic-or-imenu arg))))

По крайней мере, это работает!

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