emacs-devel
[Top][All Lists]
Advanced

[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
  > ----------




reply via email to

[Prev in Thread] Current Thread [Next in Thread]