unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#7385: 24.0.50; Please index defcustom type constructs
@ 2010-11-12 16:29 Drew Adams
  2010-11-12 17:03 ` Eli Zaretskii
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Drew Adams @ 2010-11-12 16:29 UTC (permalink / raw)
  To: 7385

emacs -Q
 
In the Elisp manual, you should be able to do `i restricted-sexp RET' to
go to the section that explains that defcustom type construct.  Likewise
for the other type constructs.
 
This should be done at least for those constructs whose names are
unambiguously type constructs (e.g. `choice', `radio, and
`coding-system', but perhaps not `sexp', `cons', and `vector').
This applies also to keywords such as :match-alternatives.
 

In GNU Emacs 24.0.50.1 (i386-mingw-nt5.1.2600)
 of 2010-11-09 on 3249CTO
Windowing system distributor `Microsoft Corp.', version 5.1.2600
configured using `configure --with-gcc (4.4) --no-opt --cflags
-Ic:/imagesupport/include'
 






^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#7385: 24.0.50; Please index defcustom type constructs
  2010-11-12 16:29 bug#7385: 24.0.50; Please index defcustom type constructs Drew Adams
@ 2010-11-12 17:03 ` Eli Zaretskii
  2010-11-12 18:32   ` Drew Adams
  2010-11-12 21:08 ` Stefan Monnier
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 10+ messages in thread
From: Eli Zaretskii @ 2010-11-12 17:03 UTC (permalink / raw)
  To: Drew Adams; +Cc: 7385

> From: "Drew Adams" <drew.adams@oracle.com>
> Date: Fri, 12 Nov 2010 08:29:18 -0800
> Cc: 
> 
> In the Elisp manual, you should be able to do `i restricted-sexp RET' to
> go to the section that explains that defcustom type construct.  Likewise
> for the other type constructs.

Such indexing is not useful, IMO.  If you already know that you are
looking for restricted-sexp, you can use `s restricted-sexp RET'.
With such a specialized string, chances that you will get too many
false hits are nil.  Alternatively, go to the chapter and look through
its sections.

Indexing is mainly for readers who do NOT know what they are after.

It would be much more useful if you (or someone else) could come up
with some phrase that could be on the reader's mind when she is after
these features.  Currently, the section where they are documented has
only one index entry: "composite types (customization)".  Suggestions
for more are most welcome.





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#7385: 24.0.50; Please index defcustom type constructs
  2010-11-12 17:03 ` Eli Zaretskii
@ 2010-11-12 18:32   ` Drew Adams
  0 siblings, 0 replies; 10+ messages in thread
From: Drew Adams @ 2010-11-12 18:32 UTC (permalink / raw)
  To: 'Eli Zaretskii'; +Cc: 7385

> > In the Elisp manual, you should be able to do `i 
> > restricted-sexp RET' to go to the section that explains
> > that defcustom type construct.  Likewise
> > for the other type constructs.
> 
> Such indexing is not useful, IMO.

Well you are wrong. ;-)

Going directly to a :type construct entry such as `choice' or `restricted-sexp'
is no different from going directly to a function entry such as `cons' or
`fceiling', or a variable entry such as `obarray' or
`split-string-default-separators'.

Indexing of such distinguished names is important whether the name is commonly
or rarely used in the manual.  It gives you direct lookup.  

Obviously, if a term is commonly used, then index lookup gives a greater
advantage over brute search than if the term is rarely used.  But the criterion
for indexing a term is whether it is a distinguised name (or it relates to an
important concept).  The criterion is not the frequency with which it appears in
the manual.

In a manual that serves as a reference (and the Elisp manual does that, even
though it also provides some user-guide features), the distinguished names it
documents should be indexed.  In Emacs Lisp, this includes constants such as
keywords and other defcustom constructs that are described in the manual.

> If you already know that you are looking for restricted-sexp,
> you can use `s restricted-sexp RET'.

And if you already know that you are looking for `fceiling' you can use `s
fceiling'.  So what?  Searching through a manual is no substitute for indexing.
That is just a cop-out - let them eat cake.

Predefined names, whether of functions, variables, keymap constructs, font-lock
constructs, or defcustom constructs, should be indexed.

There is no substitute for being able to go directly to the description of the
`choice' defcustom entry.  Try searching for `choice' and see how long it takes
you to get to the right node.  G'head, try it.

> With such a specialized string, chances that you will get too many
> false hits are nil.  Alternatively, go to the chapter and look through
> its sections.
> 
> Indexing is mainly for readers who do NOT know what they are after.

Nonsense - nothing could be more backward.

Following that logic we should remove the key, option, command, and variable
indexes from the Emacs manual, and we should remove the function index entries
from the Elisp manual.  If you know you are after function `cons' or `eq' then
just search the manual for it - why should we index it?  Riiight.

If you know you are after the description of function `eq' then you _should_ be
able to use `i eq RET' to get there directly.  And, thank goodness, you can.

The fact that something is in the index recognizes and advertizes it as a
distinguished name (or as an important concept) that is documented in the
manual.  These constructs are distinguished names in Elisp, and they are
documented in the manual.  They deserve to be indexed.

Also, being able to complete your input against index entries is a significant
aid.  This is all the more important with non-trivial (i.e., not just prefix)
completion (e.g. substring/regexp completion, partial completion).  Search is
simply no substitute for index access.
 
> It would be much more useful if you (or someone else) could come up
> with some phrase that could be on the reader's mind when she is after
> these features.  Currently, the section where they are documented has
> only one index entry: "composite types (customization)".  Suggestions
> for more are most welcome.

I've made plenty of suggestions regarding index access to the defcustom
sections.  The most important one is to enable indexing of keywords such as
`:type' (including the colon).  You rejected that as an implementation
impossibility, so users have to settle for matching workaround entries such as
`type, defcustom keyword'.

If you really want to improve index access to sections about the defcustom
constructs, then please work on figuring out how to index keywords (including
the `:').

Keywords are important distinguished words in Emacs Lisp, hence the name
"keyword".  This indexing suggestion applies not only to defcustom keywords but
also to all the others that are documented.

If you want to see how important keywords are in the Elisp manual, just start
searching from the beginning using `C-M-s :[a-z]'.

I would also suggest that we have separate indexes for the Elisp manual, just as
we have for the Emacs manual: keywords, variables, commands, other functions,
etc.






^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#7385: 24.0.50; Please index defcustom type constructs
  2010-11-12 16:29 bug#7385: 24.0.50; Please index defcustom type constructs Drew Adams
  2010-11-12 17:03 ` Eli Zaretskii
@ 2010-11-12 21:08 ` Stefan Monnier
  2010-11-13  7:47 ` MON KEY
  2016-04-27 22:53 ` Lars Ingebrigtsen
  3 siblings, 0 replies; 10+ messages in thread
From: Stefan Monnier @ 2010-11-12 21:08 UTC (permalink / raw)
  To: Drew Adams; +Cc: 7385

> In the Elisp manual, you should be able to do `i restricted-sexp RET' to
> go to the section that explains that defcustom type construct.  Likewise
> for the other type constructs.

> This should be done at least for those constructs whose names are
> unambiguously type constructs (e.g. `choice', `radio, and
> `coding-system', but perhaps not `sexp', `cons', and `vector').
> This applies also to keywords such as :match-alternatives.
 
That would make sense, indeed.  Same for :keywords (e.g. those used in
menu-item).  It would probably need to be a new index, tho.


        Stefan





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#7385: 24.0.50; Please index defcustom type constructs
  2010-11-12 16:29 bug#7385: 24.0.50; Please index defcustom type constructs Drew Adams
  2010-11-12 17:03 ` Eli Zaretskii
  2010-11-12 21:08 ` Stefan Monnier
@ 2010-11-13  7:47 ` MON KEY
  2010-11-13  8:06   ` Eli Zaretskii
  2010-11-13  8:09   ` Eli Zaretskii
  2016-04-27 22:53 ` Lars Ingebrigtsen
  3 siblings, 2 replies; 10+ messages in thread
From: MON KEY @ 2010-11-13  7:47 UTC (permalink / raw)
  To: 7385

>> Indexing is mainly for readers who do NOT know what they are after.

> It would be much more useful if you (or someone else) could come up
> with some phrase that could be on the reader's mind when she is after
> these features.  Currently, the section where they are documented has
> only one index entry: "composite types (customization)".  Suggestions
> for more are most welcome.

There can not be just _one_ phrase.
Nor can there be an index for every word in the manual.
What is needed is a separate "site map" -- a hyper-manual,
a kind of conceptual topology... Enter Baudrillard:

 Today abstraction is no longer that of the map, the double, the
 mirror, or the concept. Simulation is no longer that of a
 territory, a referential being or substance. It is the generation
 by models of a real without origin or reality: A hyperreal. The
 territory no longer precedes the map, nor does it survive it. It
 is nevertheless the map that precedes the territory - precession
 of simulacra - that engenders the territory.

 "Simulacra & Simulation" 1994, p. 1

Witness `mon-help-*-blub' (of which these are legion):

(documentation 'mon-help-custom-keywords)

mon-help-custom-keywords is an interactive compiled Lisp function in
`mon-doc-help-utils.el'.

(mon-help-custom-keywords &optional insertp intrp)

Keywords used with defcustom, degroup, customize facilities.

;; :CUSTOM-COMMON-KEYWORDS
:link
                 ¦ (custom-manual        "(info-node)Section")
                 ¦ (info-link            "(info-node)Section")
                 ¦ (url-link              <STRING>)
                 ¦ (emacs-commentary-link <STRING>)
                 ¦ (emacs-library-link    <STRING>)
                 ¦ (file-link             <STRING>)
                 ¦ (function-link         <STRING>)
                 ¦ (file-link             <STRING>)
                 ¦ (variable-link         <VARIABLE>)
                 ¦ (custom-group-link     <SYMBOL>)

:tag             <STRING>
:group           <SYMBOL>
:load            <STRING>
:require         <SYMBOL>
:version         <STRING>
:prefix          <STRING>              ; :NOTE `defgroup' only
:package-version (<SYMBOL> . <STRING>)

;; :DEFCUSTOM-KEYWORDS
:options         <LIST>
:set             <SYMBOL>
:get             <SYMBOL>
:risky           <PROPERTY-VALUE>
:safe            <PROPERTY-VALUE>
:set-after       <SYMBOL>
:intialize       <SYMBOL>
                 ¦ `custom-initialize-set'
                 ¦ `custom-initialize-default'
                 ¦ `custom-initialize-reset'
                 ¦ `custom-initialize-changed'
                 ¦ `custom-initialize-safe-set'
                 ¦ `custom-initialize-safe-default'

;; :CUSTOM-TYPES-SIMPLE
:type            <TYPE>
                 ¦ sexp           <FORM>
                 ¦ integer        <INTEGER>
                 ¦ number         <NUMBER>
                 ¦ float          <FLOAT>
                 ¦ symbol         <SYMBOL>
                 ¦ string         <STRING>
                 ¦ regexp         <STRING>
                 ¦ character      <CHAR-CODE>
                 ¦ file           <STRING>
                 ¦ directory      <STRING>
                 ¦ hook           <LIST>
                 ¦ alist          <CONSED-LIST>
                 ¦ plist          <KEY-VALUE-PAIR>
                 ¦ function       <SYMBOL>
                 ¦ variable       <SYMBOL>
                 ¦ face           <SYMBOL>
                 ¦ boolean        <T-OR-NIL>
                 ¦ coding-system  <SYMBOL>
                 ¦ color          <STRING>|<RGB-HEX-VALUE>

;; :CUSTOM-TYPES-CONSTRUCTORS
list             <ELT-TYPES>
group            <ELT-TYPES>
vector           <ELT-TYPES>
radio            <ELT-TYPES>
choice           <ALT-TYPES>
const            <VAL-TYPEs>
other            <VAL-TYPES>
function-item    <FUNCTION>
cons             (<CAR-TYPE> <CDR-TYPE>)

;; :CUTSOM-USAGE
An alist of conses uses this form:

 :type '(alist :key-type integer :value-type string)

An alist that is not a cons uses one of the forms:

 :type '(repeat (group integer string))

 :type '(repeat (list integer string))

To link to a URL do:

 :link '(url-link :tag "A search-engine" "http://www.google.com")

To link to a file do:

 :link '(file-link :tag "an interesting file" "~/.emacs")

To link to an existing file of emacs lisp source code do:

 :link '(emacs-library-link  "subr.el")

:SEE info node `(elisp)Common Keywords'

:SEE info node `(elisp)Customization Types'

:SEE-ALSO `mon-help-widgets', `mon-help-easy-menu', `mon-help-plist-functions',
`mon-help-color-chart', `mon-help-key-functions', `mon-help-package-keywords',
`mon-help-faces', `mon-help-faces-basic', `mon-help-faces-themes',
`mon-help-eieio-defclass'.
►►►


Such handlists exist because I routinely can't find what I am looking
for in the manual.
It is impossible to keep all of  _Emacs_ top of mind.
Users should not be expected to know what they do not know they don't know.

---
/s_P\





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#7385: 24.0.50; Please index defcustom type constructs
  2010-11-13  7:47 ` MON KEY
@ 2010-11-13  8:06   ` Eli Zaretskii
  2010-11-13  8:09   ` Eli Zaretskii
  1 sibling, 0 replies; 10+ messages in thread
From: Eli Zaretskii @ 2010-11-13  8:06 UTC (permalink / raw)
  To: MON KEY; +Cc: 7385

> Date: Sat, 13 Nov 2010 02:47:14 -0500
> From: MON KEY <monkey@sandpframing.com>
> Cc: Drew Adams <drew.adams@oracle.com>, Eli Zaretskii <eliz@gnu.org>
> 
> >> Indexing is mainly for readers who do NOT know what they are after.
> 
> > It would be much more useful if you (or someone else) could come up
> > with some phrase that could be on the reader's mind when she is after
> > these features.  Currently, the section where they are documented has
> > only one index entry: "composite types (customization)".  Suggestions
> > for more are most welcome.
> 
> There can not be just _one_ phrase.

Right, I meant "phrases", of course.





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#7385: 24.0.50; Please index defcustom type constructs
  2010-11-13  7:47 ` MON KEY
  2010-11-13  8:06   ` Eli Zaretskii
@ 2010-11-13  8:09   ` Eli Zaretskii
  2010-11-13  8:39     ` MON KEY
  1 sibling, 1 reply; 10+ messages in thread
From: Eli Zaretskii @ 2010-11-13  8:09 UTC (permalink / raw)
  To: MON KEY; +Cc: 7385

> Date: Sat, 13 Nov 2010 02:47:14 -0500
> From: MON KEY <monkey@sandpframing.com>
> Cc: Drew Adams <drew.adams@oracle.com>, Eli Zaretskii <eliz@gnu.org>
> 
> Such handlists exist because I routinely can't find what I am looking
> for in the manual.

Please report every one of them as a documentation bug.

> Users should not be expected to know what they do not know they don't know.

Of course not.  That's the main reason for indexing.  If you cannot
find something using appropriate phrases, it's a sign that the
indexing needs to be improved.





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#7385: 24.0.50; Please index defcustom type constructs
  2010-11-13  8:09   ` Eli Zaretskii
@ 2010-11-13  8:39     ` MON KEY
  2010-11-13 13:57       ` Eli Zaretskii
  0 siblings, 1 reply; 10+ messages in thread
From: MON KEY @ 2010-11-13  8:39 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 7385

On Sat, Nov 13, 2010 at 3:09 AM, Eli Zaretskii <eliz@gnu.org> wrote:

>> Such handlists exist because I routinely can't find what I am looking
>> for in the manual.
>
> Please report every one of them as a documentation bug.
>

I prob. should have qualified the above.
To be clear, what I meant to communicate was this:

 I routinely have trouble knowing what to look for and where to do it
 when I can't immediately find something in the manuals.

Indeed, FTMP the manuals _do_ provide the information one requires.
It just isn't always easily at hand.

I don't think this constitutes a bug. Do you?

--
/s_P\





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#7385: 24.0.50; Please index defcustom type constructs
  2010-11-13  8:39     ` MON KEY
@ 2010-11-13 13:57       ` Eli Zaretskii
  0 siblings, 0 replies; 10+ messages in thread
From: Eli Zaretskii @ 2010-11-13 13:57 UTC (permalink / raw)
  To: MON KEY; +Cc: 7385

> Date: Sat, 13 Nov 2010 03:39:19 -0500
> From: MON KEY <monkey@sandpframing.com>
> Cc: 7385@debbugs.gnu.org, Drew Adams <drew.adams@oracle.com>
> 
> On Sat, Nov 13, 2010 at 3:09 AM, Eli Zaretskii <eliz@gnu.org> wrote:
> 
> >> Such handlists exist because I routinely can't find what I am looking
> >> for in the manual.
> >
> > Please report every one of them as a documentation bug.
> >
> 
> I prob. should have qualified the above.
> To be clear, what I meant to communicate was this:
> 
>  I routinely have trouble knowing what to look for and where to do it
>  when I can't immediately find something in the manuals.
> 
> Indeed, FTMP the manuals _do_ provide the information one requires.
> It just isn't always easily at hand.
> 
> I don't think this constitutes a bug. Do you?

It could be.  Here's how to know: Whenever you are looking for some
issue, think about a word or a phrase of several words, which would
(in your opinion) be appropriate as index entries, or parts of index
entries, for that issue.  Then try these words/phrases with the `i'
command.  If they don't get you to the section of the manual where the
issue is described, submit a docs bug report and be sure to mention
the phrases you used to search.

TIA





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#7385: 24.0.50; Please index defcustom type constructs
  2010-11-12 16:29 bug#7385: 24.0.50; Please index defcustom type constructs Drew Adams
                   ` (2 preceding siblings ...)
  2010-11-13  7:47 ` MON KEY
@ 2016-04-27 22:53 ` Lars Ingebrigtsen
  3 siblings, 0 replies; 10+ messages in thread
From: Lars Ingebrigtsen @ 2016-04-27 22:53 UTC (permalink / raw)
  To: Drew Adams; +Cc: 7385

"Drew Adams" <drew.adams@oracle.com> writes:

> In the Elisp manual, you should be able to do `i restricted-sexp RET' to
> go to the section that explains that defcustom type construct.  Likewise
> for the other type constructs.
>
> This should be done at least for those constructs whose names are
> unambiguously type constructs (e.g. `choice', `radio, and
> `coding-system', but perhaps not `sexp', `cons', and `vector').
> This applies also to keywords such as :match-alternatives.

I've now added concept index entries to the first three types.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2016-04-27 22:53 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-11-12 16:29 bug#7385: 24.0.50; Please index defcustom type constructs Drew Adams
2010-11-12 17:03 ` Eli Zaretskii
2010-11-12 18:32   ` Drew Adams
2010-11-12 21:08 ` Stefan Monnier
2010-11-13  7:47 ` MON KEY
2010-11-13  8:06   ` Eli Zaretskii
2010-11-13  8:09   ` Eli Zaretskii
2010-11-13  8:39     ` MON KEY
2010-11-13 13:57       ` Eli Zaretskii
2016-04-27 22:53 ` Lars Ingebrigtsen

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).