Subject: bug#48580: Outline Mode using Phylogenetic Tree Nomenclature

From: Christopher Dimech <[email-masked]>
Date: Sat, 22 May 2021 13:47:06 +0200

> Sent: Saturday, May 22, 2021 at 10:53 PM
> From: [email-masked]
> To: "Eli Zaretskii" <[email-masked]>
> Cc: [email-masked]
> Subject: bug#48580: Outline Mode using Phylogenetic Tree Nomenclature
>
> > Sent: Saturday, May 22, 2021 at 8:10 PM
> > From: "Eli Zaretskii" <[email-masked]>
> > To: [email-masked]
> > Cc: [email-masked]
> > Subject: bug#48580: Outline Mode using Phylogenetic Tree Nomenclature
> >
> > > From: [email-masked]
> > > Date: Sat, 22 May 2021 09:56:15 +0200
> > > Sensitivity: Normal
> > >
> > > I advise and lay out a system based on a formal Phylogenetic Tree that implement
> > > Show-Hide Options.
> > >
> > > Show All (currently: Show All [unchanged])
> > > Show Offsprings (currently: Show Children)
> > > Show Descendants  (currently: Show Branches)
> > > Show Sub-Tree (currently: Show Subtree [unchanged])
> > > Show Common Level (currently: Hide Sublevels)
> > >
> > > Hide Sub-Branches (currently: Hide Leaves - meaning Hide Body after heading)
> > > Hide Branches (currently: Hide Body, leaves all headings visible)
> > > Hide Current Branch (currently: Hide Entry - hide body of this heading)
> > > Hide Sub-Tree (currently: Hide Subtree [unchanged])
> > > Hide Other (currently: Hide Other [unchanged])
> >
> > FWIW, if I were presented with the menu labels as you suggest, I'd be
> > mightily confused by the unfamiliar terminology.  "Branches",
> > "Levels", "Children", and "Tree" are familiar terms when dealing with
> > tree structures, whereas "Offsprings", "Descendants" and
> > "Sub-branches" aren't.
>
> The problem is not much about Levels, Children, and Tree.
>
> Things got problematic when people required additional words for showing and hiding
> structures that go beyond Children, Levels and Tree.  My focus is mostly about "Entry"
> and Leaves.
>
> Leaves are always end-nodes, not related to the body ("hide leaves" means "hide bodies"
> in outline.el [in addition to not being related to end-nodes either]).  In outline, leaves
> are expected to be the bodies of headlines.  And even in standard tree nomenclature, branches
> are not nodes (but "show branches means" "show nodes" in outline.el).

The arguments you brought up are fundamentally correct.  Instead of "branches", outline.el
could use "bodies".  "leaves" and "entry" should also be changed.   "Hide Entry" is really
"Hide Current Body".

And "Hide Body" hides all bodies in buffer, but essentially means "Show Tree" (show headlines
only without displaying bodies).