help-gnu-emacs
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]