From: Paul Eggert <eggert@cs.ucla.edu>
To: Dmitry Gutov <dgutov@yandex.ru>, emacs-devel@gnu.org
Subject: Re: Escaping quotes in docstrings, Was: A simple solution to "Upcoming loss of usability ..."
Date: Sun, 02 Aug 2015 08:13:51 -0700 [thread overview]
Message-ID: <55BE33AF.6080402@cs.ucla.edu> (raw)
In-Reply-To: <55BE1255.3040401@yandex.ru>
Dmitry Gutov wrote:
> we have an escaping syntax! Yet, Elisp doesn't know what's escaped and what
> isn't, so even this won't help:
>
> (defun ’‘ (a b c)
> "It's called `\\=’\\=‘'."
> (+ 1 2 3))
Again, this problem is independent of quoting style, and has long existed in
Emacs evem with the older quoting style. For example:
(defun \'\` (a b c)
"It's called `\\='\\=`'."
(+ 1 2 3))
has even worse problems than the ’‘ example does (and these problems also exist
in older Emacs).
> It's also a matter of readability. Take the latest related commit that you
> pushed. Sometime later, someone will come along and wonder: why do we need to
> substitute command keys in widget options? Who would put keys in there?
That can be addressed by renaming the function to 'substitute-doc-string'.
>> this is not just because of curved quotes, but
>> also because its other substitutions can generate characters that also
>> need special treatment.
>
> You might want to give an example.
(defun foo (a b c)
"It's invoked by `\\[next-error]'."
(+ 1 2 3))
> But in general, those characters also could
> have `escaped' put on them. Or `substituted', for instance.
Yes, and substituting \[...] has problems and solutions that are quite similar
to substituting ` and '. So even if it makes sense to tease this functionality
apart in some cases, it also makes sense to have a single function that does
both subsitutions for convenience, as typically programs will not want to do one
without doing the other.
> As long as that task involves rearranging C code, you're excluding a significant
> portion of Emacs developers from contributing, myself included.
It's a simple-enough matter to add an argument to substitute-doc-string
specifying which kinds of substitutions are wanted. I can volunteer to do that
if it would be helpful (though I confess I don't see the use case). Or if you
prefer you can rewrite substitute-doc-string in Lisp -- as long as it doesn't
affect performance significantly that should be merely an implementation detail.
> as long as font-lock isn't used for translation (and we've pretty much
> agreed that it won't), why wouldn't a Lisp solution work like you describe?
I mentioned the possibility because it's still not clear to me what a Lisp
solution would be, if it's not something involving font-lock. If the Lisp
solution merely translates the existing C code to Lisp, then of course your
point is correct.
next prev parent reply other threads:[~2015-08-02 15:13 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-25 14:59 A simple solution to "Upcoming loss of usability ..." Oleh Krehel
2015-06-25 15:37 ` Dmitry Gutov
2015-06-25 16:36 ` Paul Eggert
2015-06-25 17:00 ` Oleh Krehel
2015-06-25 20:48 ` Paul Eggert
2015-06-25 21:10 ` Dmitry Gutov
2015-06-25 22:15 ` Paul Eggert
2015-06-25 22:25 ` Dmitry Gutov
2015-06-25 22:41 ` Paul Eggert
2015-06-25 22:52 ` Dmitry Gutov
2015-06-27 15:00 ` raman
2015-06-25 18:32 ` Dmitry Gutov
2015-06-25 22:17 ` Paul Eggert
2015-06-25 22:38 ` Dmitry Gutov
2015-06-26 2:35 ` Paul Eggert
2015-06-26 12:06 ` Dmitry Gutov
2015-06-27 17:28 ` Paul Eggert
2015-06-27 17:53 ` Dmitry Gutov
2015-06-27 21:09 ` Paul Eggert
2015-06-28 1:04 ` Dmitry Gutov
2015-06-28 15:20 ` Paul Eggert
2015-06-28 20:27 ` Escaping quotes in docstrings, Was: " Dmitry Gutov
2015-06-28 23:29 ` Dmitry Gutov
2015-07-01 2:56 ` Paul Eggert
2015-07-02 0:09 ` Dmitry Gutov
2015-07-02 6:57 ` Paul Eggert
2015-07-02 9:46 ` Dmitry Gutov
2015-07-06 6:12 ` Paul Eggert
2015-07-06 12:07 ` Dmitry Gutov
2015-07-06 16:30 ` Paul Eggert
2015-07-06 22:10 ` Dmitry Gutov
2015-07-07 7:54 ` Paul Eggert
2015-07-07 8:39 ` Dmitry Gutov
2015-08-01 1:36 ` Paul Eggert
2015-08-01 21:05 ` Dmitry Gutov
2015-08-02 6:56 ` Paul Eggert
2015-08-02 12:51 ` Dmitry Gutov
2015-08-02 15:13 ` Paul Eggert [this message]
2015-08-02 18:31 ` Dmitry Gutov
2015-08-02 8:49 ` Przemysław Wojnowski
2015-08-02 19:16 ` Drew Adams
2015-06-27 17:57 ` Dmitry Gutov
2015-06-25 23:12 ` João Távora
2015-06-26 7:40 ` Oleh Krehel
2015-06-26 14:54 ` Paul Eggert
2015-06-26 15:03 ` Dmitry Gutov
2015-06-25 20:58 ` Alan Mackenzie
2015-06-25 22:34 ` Paul Eggert
2015-06-25 22:40 ` Dmitry Gutov
2015-06-25 22:45 ` Paul Eggert
2015-06-25 22:55 ` Dmitry Gutov
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=55BE33AF.6080402@cs.ucla.edu \
--to=eggert@cs.ucla.edu \
--cc=dgutov@yandex.ru \
--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 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).