all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Stephen J. Turnbull" <stephen@xemacs.org>
To: Vr Rm <vrrm00@gmail.com>
Cc: Emacs development discussions <emacs-devel@gnu.org>
Subject: Re: Raw strings (experimental patches inside)
Date: Fri, 10 Aug 2012 14:08:39 +0900	[thread overview]
Message-ID: <87wr1749m0.fsf@uwakimon.sk.tsukuba.ac.jp> (raw)
In-Reply-To: <502464D6.4000103@gmail.com>

Vr Rm writes:

 > But the difficulty in using Emacs regular expressions shouldn't be
 > underestimated, especially for those of us on the dim side of the
 > superhuman spectrum.

Nothing personal, but if you can't even search for tabs (C-s C-q TAB
will do), of course you're going to find regexps difficult.  It's hard
to see how they can be simplified -- as used in all languages I know,
regexps are extremely compact notation.  Such notation is going to be
non-trivial if you can't remember to use C-q to insert command
characters literally, and I don't think raw strings are going to help.
(A sane assignment of character classes such that punctuation is
always an operator, as in Perl or Python, would be much more mnemonic
help, I think.)

You're going to have to appeal from a somewhat more proficient level;
Emacsen are designed to be used with a vocabulary of editing gestures
that is only about one order of magnitude smaller than the English
language.

That said,

 > > That is not a problem significant enough to warrant the
 > > introduction of something like raw-strings.

Oh, come on, Stefan.  That's just elitism.

If insults won't persuade you, here are some real benefits.
raw-strings are a huge convenience when writing.[1]  They correspond to
the way you enter a regexp to isearch, and to the documentation.  They
are a big win for readability, both because of the greatly increased
S/N in long complex regexps, and because they reduce the number of
line-breaks needed for medium-complexity regexps in search functions
and the like.

The costs are about as small as they get.  Raw strings are extremely
easy to implement directly in the reader (OK, you'll probably
duplicate some of the code in regular string lexing, but really...),
if you use #r"" as XEmacsen do they can't break working code, and the
implementation is highly localized and therefore subject to
refactoring if later you decide to do it terms of a generic reader
macro rather than C code in the lexer.

And if that doesn't work, how about "S?XEmacs has them and Emacs
doesn't, nyaaah, nyaaah, nyaaah!"?

At least think one more time about it.  And maybe about a syntax for
PCRE regexps.  (Why a syntax?  Because wrapping them in a function is
more unnecessary verbosity, as would be duplicating all regexp-using
functions with pcre- versions.)

Footnotes: 
[1]  One could bind ?\\ to (lambda () (interactive) (insert "\\")),
but that would require a mode switch on entry and exit which is a
PITA itself, and not as visible to the author as a raw string syntax.





  reply	other threads:[~2012-08-10  5:08 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-03  2:02 Raw strings (experimental patches inside) Aurélien Aptel
2012-08-03  9:45 ` Pascal J. Bourguignon
2012-08-03 17:45   ` Aurélien Aptel
2012-08-04 19:41     ` Pascal J. Bourguignon
2012-08-05  0:16       ` Aurélien Aptel
2012-08-05 11:36         ` Pascal J. Bourguignon
2012-08-05  7:13       ` Lars Brinkhoff
2012-08-06  1:55       ` Stefan Monnier
2012-08-06 10:55         ` Pascal J. Bourguignon
2012-08-06 16:16           ` Stefan Monnier
2012-08-06 16:40             ` Pascal J. Bourguignon
2012-08-03 22:43 ` Stefan Monnier
2012-08-04 14:38   ` Ivan Andrus
2012-08-04 23:47     ` Stefan Monnier
2012-08-05  0:13       ` Aurélien Aptel
2012-08-06 16:17         ` Stefan Monnier
2012-08-10  1:33       ` Vr Rm
2012-08-10  5:08         ` Stephen J. Turnbull [this message]
2012-08-10  6:07           ` [OT] " Jambunathan K
2012-08-10 15:13           ` Stefan Monnier
2012-08-10 17:28             ` Stephen J. Turnbull
2012-08-10 18:50               ` Stefan Monnier
2012-08-11  7:27                 ` Stephen J. Turnbull
2012-08-11 11:05                 ` Dmitri Paduchikh
2012-08-12  0:29                   ` Stephen J. Turnbull
2012-08-10 21:11           ` Vr Rm
2012-08-10 23:03             ` Davis Herring
2012-08-10 23:24               ` Learning Emacs regexp (was: Re: Raw strings (experimental patches inside)) chad
2012-08-11  7:39             ` Raw strings (experimental patches inside) Stephen J. Turnbull
  -- strict thread matches above, loose matches on Subject: below --
2012-08-10 22:33 Dmitry Gutov
2012-08-11  7:49 ` Stephen J. Turnbull
2012-08-11 17:05   ` Dmitry Gutov
2012-08-11 17:57     ` Andreas Schwab
2012-08-11 18:22       ` Dmitry Gutov
2012-08-12  0:23     ` Stephen J. Turnbull
2012-08-11 13:30 ` Stefan Monnier

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=87wr1749m0.fsf@uwakimon.sk.tsukuba.ac.jp \
    --to=stephen@xemacs.org \
    --cc=emacs-devel@gnu.org \
    --cc=vrrm00@gmail.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.