all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: martin rudalics <rudalics@gmx.at>
To: Eli Zaretskii <eliz@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: Documenting buffer display
Date: Mon, 22 Oct 2018 11:06:07 +0200	[thread overview]
Message-ID: <5BCD92FF.8070905@gmx.at> (raw)
In-Reply-To: <83mur7tq4f.fsf@gnu.org>

 > I'm not against tutorials; far from that.  I just think they should be
 > separate from Reference manuals.  Reference manuals can then point to
 > tutorials for examples.

I could put the last two sections into the "Tips and Conventions"
chapter.  Or do we have another place where to put tutorial-like text?

 > But that doesn't mean a Reference manual can consider itself done by
 > providing a "lip service" in the form of such a tutorial reference.  A
 > good Reference manual should still describe the feature in a clear and
 > useful way.

My basic idea was to put the description proper into the first three,
four sections and leave the last two, three sections to those puzzled
by the technical level used in the decription.

 > Reference manual's main audience are people who already have some,
 > perhaps even good, idea about the feature, and need help in finding
 > exactly the right tools, out of those available, to do the jop at
 > hand.  Tutorials, by contrast, target newbies who have no clue:
 > walking those through a large enough set of well-explained examples
 > will bring them up to speed, so they could proceed to the Reference
 > manual.

That's why I chose the present style: The first three, four sections
address the main audience, the people who search for the right tools.
These sections try to be concise and use cross references to lead the
reader right to the tool in question.

The remaining sections are by design not intended for finding tools.
People are supposed to read these sections when they are confused by
the technicality of the previous sections.  The examples are
intentionally not concise - code like

      (display-buffer
       (get-buffer-create "*foo*")
       '((display-buffer-below-selected display-buffer-at-bottom)))

has been written for being evaluated in place so to not confuse
already confused people more by telling them how to create *foo*
first.  I repetitively employ calls of 'display-buffer' and
'customize-set-variable' to emphasize the distinction between how
programmers are supposed to use actions and how users are supposed to
customize them.  So occasionally text in these sections is repetitive.

But asking again: How else would you address a complaint like

   Telling someone that they must instead use
   `display-buffer' ACTION hoops to accomplish
   the same thing leads them down the garden path,
   on a wild goose chase, over the river & through
   the woods, and around Robin Hood's barn.  IMO.

if not with the help of an example where every single step can be
executed right in place and the effect of that step seen right away?

 >> Readers in a hurry are not supposed to read that section.
 >
 > I think it's a mistake to take that stand when writing a Reference
 > manual.

I disagree in this particular case.  Readers in a hurry will have
found the necessary information already in the preceding sections.  If
they didn't, we have to fix that in those sections.  Only if they did
but they are still uncertain about how to put their findings into
practice they would go on with the remaining sections.

 > One thing to remember is that the manual is not the only place where
 > the documentation could live: there are doc strings as well.  Some of
 > the details might be better suited to doc strings.

Well, Alan's impression was that

   The doc string of display-buffer is a bit of a heavy read at this time
   of night.

and I'm currently contemplating to remove the description of action
alist entries from it.  'display-buffer' is a function that delegates
its work to action functions (Drew's garden path) and guides the
latter with the help of action alists which have now their separate
entry in the Elisp manual.  The "further down" in the garden path an
information is found, the more Drew will complain.  The "further up"
everybody else will complain.

A couple of weeks ago Drew complained that the doc-string of
'pop-to-buffer-same-window' misses any information about how it
handles dedicated windows.  So you amended the doc-string as follows:

   Unlike `pop-to-buffer', this function prefers using the selected
   window over popping up a new window or frame.  Specifically, if
   the selected window is neither a minibuffer window (as reported
   by `window-minibuffer-p'), nor is dedicated to another buffer
   (see `window-dedicated-p'), BUFFER will be displayed in the
   currently selected window; otherwise it will be displayed in
   another window.

While this would be appropriate for 'switch-to-buffer-other-window' it
may be wrong for 'pop-to-buffer-same-window' as soon as the user has
customized 'display-buffer-alist'.  We can't avoid the garden path of
'display-buffer' here and elsewhere.

 > I didn't say those tips are useless, far from it.  I just ended up
 > having an impression that I've read a list of tips that I will have to
 > re-read again when I need to find something in it.  So I suggested to
 > think about some way of organizing them, so that similar and related
 > stuff is closer to one another.

I see what you mean and it's obvious that the text I wrote takes the
opposite direction.  It tries to segregate the tips from the technical
description rather than to combine them.  The intention was that
experienced readers should be allowed to read the technical sections
without having to study the tips at the same time (or at all).
Confused readers OTOH should be carefully guided to read on, as time
permits.

martin



  reply	other threads:[~2018-10-22  9:06 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-20 12:20 Documenting buffer display martin rudalics
2018-10-20 13:21 ` Eli Zaretskii
2018-10-20 18:02   ` martin rudalics
2018-10-21 12:56     ` Eli Zaretskii
2018-10-22  9:06       ` martin rudalics [this message]
2018-10-22 13:55         ` Eli Zaretskii
2018-10-22 19:14           ` martin rudalics
2018-10-22 19:27             ` Eli Zaretskii
2018-10-23  8:58               ` martin rudalics
2018-10-23 11:26                 ` Pierre-Yves Luyten
2018-10-23 13:45                   ` martin rudalics
2018-10-23 17:40                   ` Stefan Monnier
2018-10-23 14:04                 ` Drew Adams
2018-10-23 18:18                   ` martin rudalics
2018-10-23 15:18                 ` Eli Zaretskii
2018-10-23 18:23                   ` martin rudalics
2018-10-23 19:07                     ` Eli Zaretskii
2018-10-24  9:44                       ` martin rudalics
2018-10-24 14:48                         ` Eli Zaretskii
2018-10-24 17:40                           ` martin rudalics
2018-10-24 18:25                             ` Eli Zaretskii
2018-10-25 20:42                             ` Juri Linkov
2018-10-23 15:52                 ` Alan Mackenzie
2018-10-23 18:25                   ` martin rudalics
2018-11-08 19:25                   ` martin rudalics
2018-10-22  1:39   ` Michael Welsh Duggan
2018-10-22  5:54     ` Eli Zaretskii
2018-10-20 15:22 ` Drew Adams
2018-10-20 18:02   ` martin rudalics
2018-10-20 18:24     ` Drew Adams
2018-10-21  8:22       ` martin rudalics
2018-11-04  9:06 ` martin rudalics

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5BCD92FF.8070905@gmx.at \
    --to=rudalics@gmx.at \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.