all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Ted Zlatanov <tzz@lifelogs.com>
Cc: monnier@iro.umontreal.ca, emacs-devel@gnu.org
Subject: Re: scratch/tzz/auth-source-reveal-mode 4a7c98d 3/3: Create and document auth-source-reveal-mode
Date: Wed, 24 Jun 2020 18:13:21 +0300	[thread overview]
Message-ID: <83a70sts32.fsf@gnu.org> (raw)
In-Reply-To: <v9jhl8kh.fsf@lifelogs.com> (message from Ted Zlatanov on Tue, 23 Jun 2020 22:29:50 +0000)

> From: Ted Zlatanov <tzz@lifelogs.com>
> Date: Tue, 23 Jun 2020 22:29:50 +0000
> Cc: emacs-devel@gnu.org
> 
> On Mon, 22 Jun 2020 17:09:08 -0400 Stefan Monnier <monnier@iro.umontreal.ca> wrote: 
> 
> SM> Yes, it's needed first: in some modes, enabling `prettify-symbols-mode`
> SM> can lead to really undesirable behavior (e.g. in Haskell it can lead to
> SM> code being plain wrong since it can affect indentation and indentation
> SM> is semantically significant like in Python).  So you really can't impose
> SM> it on the unsuspecting user.
> 
> Agreed. It was better to start with something cleaner. So, I created a
> whole new prettify-text API and reimplemented auth-source-reveal-mode on
> top of it. It worked well in my testing.
> 
> The new branch is scratch/tzz/prettify-text-mode (I left
> scratch/tzz/auth-source-reveal-mode in place as a reference).
> 
> The new code won't interfere with existing `prettify-symbols-mode'
> users. Eventually `prettify-symbols-mode' could be migrated to this new
> API to avoid the code duplication in the post-command-hook and
> elsewhere.
> 
> If you have suggestions or comments, please let me know. I'll document
> the API before I push the branch out.

I looked at the branch today, and I'm sorry to say that I wasn't happy
with what I saw there.  I very much hope I'm missing something.  I ask
below some questions to make sure I understand the goal and the
design; please bear with me.

First, the branch seems to include changes that fall into two classes:
a feature that allows to hide passwords in auth-related commands, and
a "library of text prettification".  Is this correct?  If so, why are
two almost unrelated features being developed on the same branch?

Next, how is the "text prettification library" different from the
prettify-symbols-mode we already have, and what is the purpose of
introducing such a library?  It sounds like "text prettification"
actually is about the same job as prettify-symbols-mode, but if so,
why do we need the additional code?  Perhaps the intent is to let
other features use the same technique as prettify-symbols-mode for
purposes other than prettifying identifiers in programming-language
buffers?  But then why is, for example, prettify-text-alist talking
about "identifiers"?

And this actually brings me to the most important point: the use of
static compositions.  That feature is semi-deprecated: its
implementation in the display engine and its Lisp APIs are not very
clean, and in particular it doesn't support bidirectional text.  Using
it in prettify-symbols-mode is semi-okay, since PL symbols rarely if
ever use characters from RTL scripts, but the presence of "text" in
the additions on the branch makes me think that this is meant for
general-purpose text as well.  Passwords can definitely (and do) use
bidirectional text, for example.

So if this is meant to be a general-purpose feature for displaying
some text as something else, I don't think we should do this via
static compositions.  It is unclean, to say the least, for Emacs to
have text-processing features that don't support some of the languages
and scripts in our repertory.  What will we say to people who come
complaining that their language doesn't work with this feature? "we
didn't think you language was important enough to support it"?

So if we want to expand our use of static compositions, let's first
fix its support for bidirectional text, and only then add features
which depend on that.  We shouldn't introduce features with such
incomplete support of scripts and languages; we never did that before,
AFAIR.

Alternatively, if the purpose is to display some text as something
else, we already have display properties and overlays that can be (and
are) used for implementing such features; why not use them instead?

Once again, sorry for a negative commentary; I hope I'm really missing
something simple and obvious.

And thanks for working on this, Ted.



  reply	other threads:[~2020-06-24 15:13 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20200622191653.26453.39420@vcs0.savannah.gnu.org>
     [not found] ` <20200622191655.E1C4E20A26@vcs0.savannah.gnu.org>
2020-06-22 20:00   ` scratch/tzz/auth-source-reveal-mode f16a4c8 2/3: Support regular expressions and API for prettify-symbols-mode Stefan Monnier
2020-06-22 20:32     ` Ted Zlatanov
     [not found] ` <20200622191656.2D20920A26@vcs0.savannah.gnu.org>
2020-06-22 20:03   ` scratch/tzz/auth-source-reveal-mode 4a7c98d 3/3: Create and document auth-source-reveal-mode Stefan Monnier
2020-06-22 20:39     ` Ted Zlatanov
2020-06-22 21:09       ` Stefan Monnier
2020-06-23 22:29         ` Ted Zlatanov
2020-06-24 15:13           ` Eli Zaretskii [this message]
2020-06-24 18:15             ` Ted Zlatanov
2020-06-24 18:36               ` Eli Zaretskii
2020-06-24 19:04                 ` Ted Zlatanov
2020-06-25 13:31                   ` Eli Zaretskii
2020-06-26 13:52                     ` Ted Zlatanov
2020-06-26 14:24                       ` Eli Zaretskii
2020-06-26 14:39                         ` Ted Zlatanov
2020-07-12 20:49                           ` Ted Zlatanov

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=83a70sts32.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    --cc=tzz@lifelogs.com \
    /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.