all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Alan Mackenzie <acm@muc.de>
To: xah lee <xah@xahlee.org>
Cc: help-gnu-emacs@gnu.org
Subject: Re: bug#1406: backward-up-list reports scan error incorrectly?
Date: Thu, 27 Nov 2008 22:09:25 +0000	[thread overview]
Message-ID: <20081127220925.GA1270@muc.de> (raw)
In-Reply-To: <FE629FAA-6C60-4633-BA43-D2D4F61B2FF9@xahlee.org>

Hi, Xah.

On Thu, Nov 27, 2008 at 07:56:17AM -0800, xah lee wrote:
> On Nov 27, 4:19 am, Alan Mackenzie <a...@muc.de> wrote:
> > Hi, Xah!

> > > > though, isn't this something easy to fix?
> > > No, because it isn't a bug.  It's the way the function is meant  to
> > > work.  If there is a bug, it's that the doc-string (and maybe the
> > > elisp  manual, I haven't looked) is vague and incomplete.

> > I've amended the Emacs manual (.../doc/emacs/programs.texi) and  the
> > doc strings of `backward-up-list' and several similar functions
> > (.../lisp/emacs-lisp/lisp.el).

> > If you're interested, have a look at the changes in
> > <http://cvs.savannah.gnu.org/viewvc/emacs/?root=emacs>.

> Thanks Alan.

> I'd rather hope for a fix instead of change wording to reflect  
> current situation.

Again, there isn't a bug, so there's nothing to fix.  What I think you're
saying is that you'd prefer C-M-u to do something a bit different; or,
put another way, you want a different function.

Personally, I like being able to use the list commands inside a comment
or string.

Don't forget that the list commands are also used a lot as
almost-primitive functions in other lisp code (they're certainly used a
lot in CC Mode), and redefining these the way you suggest would slow down
other code, possibly by a lot.

> You argued in bug list that the issue is not simple essentially due  
> to the fact that straight quote chars are not matching pairs.

> That is true, but i think given today's tech and computing power, we  
> can over come this. Just assume that double quotes in the source code  
> are matched, since they are most of the time. In the few cases when  
> the backward-up-list went to the wrong place due to un-matched double  
> quote, i think that's ok. (as opposed to, it stops dead and utter a  
> beep.)

The stopping dead is due to it not finding an enclosing paren.

> alternatively, if the cursor is inside double quote, then issue a  
> warning in the messag area that the result may not be correct.

Why don't you write the function you want?  Then submit it to
emacs-devel@gnu.org, and it could well become an option in Emacs 24.

You have to decide what "inside a string" means.  It could be as simple
as the text at point being fontified with font-lock-string-face.  Or,
maybe you'd want to scan from the beginning of buffer to check this.
`parse-partial-sexp' is your friend here.

> Also, since this works in text-mode, so apparently this can work. A  
> implementation is to temporarily switch to that mode, do the cursor  
> move, then switch back. Or temp set the syntax table to whatever chat  
> that made text-mode work and emacs-lisp-mode not work.

That's another way you could do it.  In text mode, I don't think there
are any string characters defined (we're talking about its "syntax table"
here).  So if you did this (switching temporarily to Text Mode) in Elisp
mode, you'd just get a very crude interpretation of parens.  It might be
what you want, it might not.

> In general, my feeling is that moving around nested pairs is not a  
> some insurmountable issue, that given today's technology and  
> software, it seems wimpy to tell users that backward-up-list won't  
> work if it's inside double quotes. Much complex problems are solved  
> today in emacs, in other IDEs, etc.

No, it's certainly surmountable.  But first you've got to decide what you
want, then you've got to do the surmounting.

> Just my opinions. Thanks.

No problem!

>   Xah

-- 
Alan Mackenzie (Nuremberg, Germany).




  reply	other threads:[~2008-11-27 22:09 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-21 21:24 bug#1406: backward-up-list reports scan error incorrectly? xah lee
     [not found] ` <handler.1406.B.122730266611840.ack@emacsbugs.donarmstrong.com>
2008-11-21 21:39   ` bug#1406: Acknowledgement (backward-up-list reports scan error incorrectly?) xah lee
2008-11-21 23:19 ` bug#1406: backward-up-list reports scan error incorrectly? Alan Mackenzie
2008-11-21 23:26   ` xah lee
2008-11-22 12:36     ` Alan Mackenzie
2008-11-22 12:53       ` xah lee
2008-11-22 13:01         ` xah lee
2008-11-22 14:04           ` Alan Mackenzie
2008-11-27 12:19             ` Alan Mackenzie
2008-11-27 15:56               ` xah lee
2008-11-27 22:09                 ` Alan Mackenzie [this message]
2008-11-27 22:49                   ` xah lee
     [not found]             ` <mailman.1345.1227787599.26697.help-gnu-emacs@gnu.org>
2008-11-27 15:52               ` Xah Lee
2011-07-09 18:04             ` Glenn Morris

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=20081127220925.GA1270@muc.de \
    --to=acm@muc.de \
    --cc=help-gnu-emacs@gnu.org \
    --cc=xah@xahlee.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 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.