[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: address@hidden: HideShow Click to show/hide]
From: |
Dan Nicolaescu |
Subject: |
Re: address@hidden: HideShow Click to show/hide] |
Date: |
Mon, 27 Nov 2006 09:53:48 -0800 |
Richard Stallman <address@hidden> writes:
> Would you please tell us what to do here?
I think the patch is OK. JD can you please install it?
--dan
> From: JD Smith <address@hidden>
> Subject: HideShow Click to show/hide
> To: address@hidden
> Date: Mon, 20 Nov 2006 14:30:27 -0700
>
> HideShow seems to have an issue when collapsing blocks, in C or
> elsewhere, with Shift-mouse-2. Consider this:
>
> int main(int argc, char argv[]) {
> int i=0;
> for (i=0;i<5;i++) {
> printf("Got %d\n",i);
> }
> }
>
> Shift-Middle clicking anywhere after the first brace at the end of main
> properly produces:
>
> int main(int argc, char argv[]) {...
>
> S-mouse-2 on that line anywhere again unfolds it. But now in the for
> statement:
>
> int main(int argc, char argv[]) {
> int i=0;
> for (i=0;i<5;i++) {...
> }
>
> There is nowhere you can Shift-click to recover the for block. It
> always collapses the main block instead. The only reason it worked in
> the main case is because it was the outermost block, so it can't find
> a prior block to collapse.
>
> I believe a simple change to first move to the end of the line should
> fix this:
>
> *** hideshow.el 10 Feb 2006 02:00:30 -0700 1.58
> - --- hideshow.el 26 Oct 2006 12:49:10 -0700
> ***************
> *** 706,711 ****
> - --- 706,712 ----
> (if (and c-reg (nth 0 c-reg))
> ;; point is inside a comment, and that comment is hidable
> (goto-char (nth 0 c-reg))
> + (end-of-line)
> (when (and (not c-reg)
> (hs-find-block-beginning)
> (looking-at hs-block-start-regexp))
>
>
> This isn't really perfect, because it doesn't work naturally for continued
> lines before the block, e.g.
>
> int main(int argc, char argv[]) {
> int i=0;
> for (i=0;i<5;i++)
> {
> printf("Got %d\n",i);
> }
> }
>
> Really you'd want uncollapse the block below point if point is on a
> continued line (like the for... above) which begins the block. Not
> sure of an easy way to do this, but this simple fix at least gives you
> *somewhere* to click (on the line with the ellipsis).
>
> JD
>
>
>
>
> _______________________________________________
> Emacs-devel mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/emacs-devel
> ----------