[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Submenu with easy-menu-define yielding invalid menu item
From: |
Heime |
Subject: |
Re: Submenu with easy-menu-define yielding invalid menu item |
Date: |
Wed, 19 Oct 2022 21:04:29 +0000 |
------- Original Message -------
On Wednesday, October 19th, 2022 at 11:51 AM, Sharon Kimble
<boudiccas@skimble09.plus.com> wrote:
> Heime via Users list for the GNU Emacs text editor help-gnu-emacs@gnu.org
> writes:
>
> > I am making menus with "easy-menu-define". But I am having difficulty
> > calling the submenu "dingo-outline-subm"
> > from "easy-menu-define". Would appreciate some assistance figuring out the
> > problem.
> >
> > The error captured is
> >
> > Lisp error: (error "Invalid menu item in easymenu")
> >
> > ---------------------
> >
> > ;; Make submenu outline
> >
> > (defvar dingo-outline-subm
> >
> > '("Outline"
> >
> > ["Hide Direct Body" outline-hide-entry :help "Hide Entry"]
> >
> > ["Expose Direct Body" outline-show-entry :help "Show Entry"]
> >
> > ["Expose Headings" outline-hide-body :help "Hide Body"])
> >
> > "Submenu giving outline capability.")
> >
> > ;; Make top menu dingo
> >
> > (defun dingo-easym ()
> >
> > "Dingo easy menu."
> >
> > (easy-menu-define dingo-menu global-map "Dingo"
> >
> > '("Dingo"
> >
> > dingo-outline-subm
> >
> > ["Hide Entry" outline-hide-entry t]
> >
> > ["Show Entry" outline-show-entry t]
> >
> > ["Hide Body" outline-hide-body t])) )
>
>
> If it helps this is a very small part of my 'easy-menu'
>
> =====
> (easy-menu-define sk-menu global-map "menu"
> '("Mono"
> ("Misc" ;; submenu
> ["Wrap Text" auto-fill-mode]
> ["Get colours" list-colors-display]
> ["Delete this file" delete-this-file]
> ["call paradox - package manager" paradox-list-packages]
> ["Show my cheatsheet" cheatsheet-show]
> ["typewriter-mode" centered-cursor-mode]
> ["Tea brewing time" tea-timer]
> ["Show current key-bindings" show-key-command]
> ["Set the font size" set-font-size]
>
> )
> ))
> =====
Sharon, I can see you are using the [] construct to a list, which I can use
with defvar or defconst when the latter two construct a list.
Then the solution would be
["Outline" dingo-outline-subm t]
where one uses a defvar list rather than a callable function as done in
["Hide Entry" outline-hide-entry t]
> --
> A taste of linux = http://www.sharons.org.uk
> TGmeds = http://www.tgmeds.org.uk
> DrugFacts = https://www.drugfacts.org.uk
> Debian 11.5, fluxbox 1.3.7, emacs 29.0.50, org 9.5.5