unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Drew Adams <drew.adams@oracle.com>
To: Juri Linkov <juri@linkov.net>, Stefan Monnier <monnier@iro.umontreal.ca>
Cc: emacs-devel@gnu.org
Subject: RE: Two problems with directory-local variables
Date: Wed, 19 Sep 2018 18:42:42 -0700 (PDT)	[thread overview]
Message-ID: <db13b6ab-a5de-476d-bb2f-b50e8b0c36fe@default> (raw)
In-Reply-To: <874leldw44.fsf@mail.linkov.net>

> Given that, I don't see what would be a good choice for generalization:
> 
> 1. Since requirements for this feature are too vague, it doesn't seem
>    to fit well into low-level printing functions.
> 
> 2. Reformatting the printed output in pp-buffer to add dots where necessary
>    also doesn't look like an elegant solution.
> 
> 3. Implementing print-alist poses a question how to define at which levels
>    to print alists with dotted syntax.
> 
> 4. Since only add-dir-local-variable knows the semantics of used data
>    structures, the simplest way would be to implement printing of each level
>    explicitly in add-dir-local-variable.

I don't think there's a good design for this. Whatever some designer's intention
beforehand might be, the result will be misleading in at least some contexts.

And the problem is that when it's misleading (showing some dots but not
others it can be even more confusing for users than consistently doing either
what we do now - no dots for a list cdr, at all levels - or adding dots at all levels.

I think (so far, but I might change my mind if I see a good argument) that this
is really something that users of Lisp just have to get used to. It can be a
gotcha - like getting used to quoting (when to quote and when not to). Lisp
has a few such gotchas.

We could I suppose have `print-dot-levels', like we have `print-level', to give
code control over the level (top-down). That might be a little better than
`print-dotted' (Boolean). But is it really worth it (needed)? I tend not to
think it's worth it to have just a top-level `print-alist', in any case (and the
alist might not be at top level).

As Stefan said, "only the human coder can know which cons cell should be
printed dotted and which shouldn't." I'd change "cell" to "cells", but
otherwise I pretty much agree.



  reply	other threads:[~2018-09-20  1:42 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-17  8:08 Two problems with directory-local variables Marcin Borkowski
2018-09-17  9:28 ` Phil Sainty
2018-09-17 15:45   ` Marcin Borkowski
2018-09-17 23:15     ` Juri Linkov
2018-09-18  0:04       ` Phil Sainty
2018-09-18  0:19         ` Juri Linkov
2018-09-18  2:15           ` Stefan Monnier
2018-09-19 22:38             ` Juri Linkov
2018-09-20  1:42               ` Drew Adams [this message]
2018-09-20 20:59                 ` Juri Linkov

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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=db13b6ab-a5de-476d-bb2f-b50e8b0c36fe@default \
    --to=drew.adams@oracle.com \
    --cc=emacs-devel@gnu.org \
    --cc=juri@linkov.net \
    --cc=monnier@iro.umontreal.ca \
    /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 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).