GNU bug report logs -
#14395
24.3; [PATCH] new feature smie-highlight-matching-block
Previous Next
Reported by: Leo Liu <sdl.web <at> gmail.com>
Date: Tue, 14 May 2013 02:51:03 UTC
Severity: wishlist
Tags: patch
Found in version 24.3
Done: Leo Liu <sdl.web <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
Message #8 received at 14395 <at> debbugs.gnu.org (full text, mbox):
> I want something for octave mode that looks like something in the
> attached screenshot. But since this is generic I would like to put it in
> smie.el. Do you have any objections or comments?
Looks like a good feature, thank you.
> It doesn't make sense for this feature and smie-blink-matching-open to
> be on at the same time. So in the patch nothing is enabled.
I don't think enabling it in octave-mode makes sense: this is more like
"blink-paren vs show-paren-mode", i.e. a personal preference. So the
enabling/disabling should be done via code in smie.el.
> + (when (and (bound-and-true-p smie-closer-alist)
It's defvarred to nil, so don't test if it's boundp.
> + (let ((open-re (concat "\\_<"
> + (regexp-opt (mapcar 'car smie-closer-alist))
> + "\\_>"))
> + (close-re (concat "\\_<"
> + (regexp-opt (mapcar 'cdr smie-closer-alist))
> + "\\_>"))
The string returned by smie-forward-token-function is usually the same
as the representation of the token in the buffer, but not always.
So the above is not strictly correct.
Instead you want to call smie-for/backward-token-function and then
compare the result via (r?assoc tok smie-closer-alist).
> + ((funcall beg-of-tok open-re)
> + (with-demoted-errors
> + (forward-sexp 1)
> + (when (looking-back close-re)
> + (funcall highlight (match-beginning 0) (match-end 0)))))
I think this should not use with-demoted-errors but instead should
explicitly catch the scan-error and turn it into a message.
After all, the user doesn't want to be thrown in the debugger just
because his sexp is not properly closed yet. And also this way you can
provide a much nicer error message.
Stefan
This bug report was last modified 12 years and 58 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.