| Thread overview | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
April 12, 2010 [feedback] folding in scintilla | ||||
|---|---|---|---|---|
| ||||
cpp lexer folding in scintilla always seemed bizarre to me and I tried to implement folding algorithm similar to that of akelpad or editplus. https://sourceforge.net/tracker/?func=detail&aid=2986054&group_id=2439&atid=352439 What do you think? | ||||
April 13, 2010 Re: [feedback] folding in scintilla | ||||
|---|---|---|---|---|
| ||||
Posted in reply to maXmo | maXmo Wrote:
> cpp lexer folding in scintilla always seemed bizarre to me and I tried to implement folding algorithm similar to that of akelpad or editplus.
>
> https://sourceforge.net/tracker/?func=detail&aid=2986054&group_id=2439&atid=352439
>
> What do you think?
Personally, I would prefer the left and right brace to stay on the same line as the function definition, and maybe add an elipsis between them so I can tell that function is folded just by looking at the code.
| |||
April 13, 2010 Re: [feedback] folding in scintilla | ||||
|---|---|---|---|---|
| ||||
Posted in reply to maXmo | "maXmo" <nospam@nospam.org> wrote in message news:hq083d$2qpo$1@digitalmars.com... > cpp lexer folding in scintilla always seemed bizarre to me and I tried to implement folding algorithm similar to that of akelpad or editplus. > > https://sourceforge.net/tracker/?func=detail&aid=2986054&group_id=2439&atid=352439 > > What do you think? I don't know if this is applicable or not, but one thing that drives me absolutely crazy is in Programmer's Notepad 2 is how collapsing this: foo { bar } Will collapse on the "{" line instead of the "foo" line. I hate that sooo much. Not sure if that's relevent to your patch, and not sure if PN2 uses scintilla or what, so take it for whatever it's worth. | |||
April 13, 2010 Re: [feedback] folding in scintilla | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Nick Sabalausky | Nick Sabalausky Wrote: > "maXmo" <nospam@nospam.org> wrote in message news:hq083d$2qpo$1@digitalmars.com... > > cpp lexer folding in scintilla always seemed bizarre to me and I tried to implement folding algorithm similar to that of akelpad or editplus. > > > > https://sourceforge.net/tracker/?func=detail&aid=2986054&group_id=2439&atid=352439 > > > > What do you think? > > I don't know if this is applicable or not, but one thing that drives me absolutely crazy is in Programmer's Notepad 2 is how collapsing this: > > foo > { > bar > } > > Will collapse on the "{" line instead of the "foo" line. I hate that sooo much. > > Not sure if that's relevent to your patch, and not sure if PN2 uses scintilla or what, so take it for whatever it's worth. > I had exactly same reason: old folding works only for sun style, my folding treats sun and ms style equally. See: http://i42.tinypic.com/2qjx1mf.png | |||
April 13, 2010 Re: [feedback] folding in scintilla | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Nick Sabalausky | Nick Sabalausky Wrote:
> I don't know if this is applicable or not, but one thing that drives me absolutely crazy is in Programmer's Notepad 2 is how collapsing this:
>
> foo
> {
> bar
> }
>
> Will collapse on the "{" line instead of the "foo" line. I hate that sooo much.
>
> Not sure if that's relevent to your patch, and not sure if PN2 uses scintilla or what, so take it for whatever it's worth.
PN2 uses scintilla and by getting my patch into scintilla I hoped for this to be adopted in PN2 for I use it myself. I also planned to modify cpp lexer to fold code according to this algorithm, so that all C languages benefit from it.
| |||
April 13, 2010 Re: [feedback] folding in scintilla | ||||
|---|---|---|---|---|
| ||||
Posted in reply to maXmo | "maXmo" <nospam@nospam.org> wrote in message news:hq0qrq$13pb$1@digitalmars.com... > Nick Sabalausky Wrote: > >> "maXmo" <nospam@nospam.org> wrote in message news:hq083d$2qpo$1@digitalmars.com... >> > cpp lexer folding in scintilla always seemed bizarre to me and I tried >> > to >> > implement folding algorithm similar to that of akelpad or editplus. >> > >> > https://sourceforge.net/tracker/?func=detail&aid=2986054&group_id=2439&atid=352439 >> > >> > What do you think? >> >> I don't know if this is applicable or not, but one thing that drives me absolutely crazy is in Programmer's Notepad 2 is how collapsing this: >> >> foo >> { >> bar >> } >> >> Will collapse on the "{" line instead of the "foo" line. I hate that sooo much. >> >> Not sure if that's relevent to your patch, and not sure if PN2 uses scintilla or what, so take it for whatever it's worth. >> > I had exactly same reason: old folding works only for sun style, my > folding treats sun and ms style equally. > See: http://i42.tinypic.com/2qjx1mf.png Ahh, I see. No, that's not what I was talking about. This is a mockup of the way I've been wanting it: http://www.semitwist.com/download/goodFolding.png Putting it on the line with the "{" seem ridiculous, ugly and just plain sloppy to me. (IMO). | |||
April 13, 2010 Re: [feedback] folding in scintilla | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Nick Sabalausky | "Nick Sabalausky" <a@a.a> wrote in message news:hq142v$1hh9$1@digitalmars.com... > "maXmo" <nospam@nospam.org> wrote in message news:hq0qrq$13pb$1@digitalmars.com... >> I had exactly same reason: old folding works only for sun style, my >> folding treats sun and ms style equally. >> See: http://i42.tinypic.com/2qjx1mf.png > > Ahh, I see. No, that's not what I was talking about. This is a mockup of the way I've been wanting it: > > http://www.semitwist.com/download/goodFolding.png > > Putting it on the line with the "{" seem ridiculous, ugly and just plain sloppy to me. (IMO). > Although, I do think your approach is still an improvement over the way it currently is. | |||
April 13, 2010 Re: [feedback] folding in scintilla | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Nick Sabalausky | Nick Sabalausky Wrote:
> Ahh, I see. No, that's not what I was talking about. This is a mockup of the way I've been wanting it:
>
> http://www.semitwist.com/download/goodFolding.png
>
> Putting it on the line with the "{" seem ridiculous, ugly and just plain sloppy to me. (IMO).
>
1. How should it work for sun style?
2. How should it work for multiline function signature?
| |||
April 13, 2010 Re: [feedback] folding in scintilla | ||||
|---|---|---|---|---|
| ||||
Posted in reply to maXmo Attachments:
| maXmo wrote: > Nick Sabalausky Wrote: > >> Ahh, I see. No, that's not what I was talking about. This is a mockup of the way I've been wanting it: >> >> http://www.semitwist.com/download/goodFolding.png >> >> Putting it on the line with the "{" seem ridiculous, ugly and just plain sloppy to me. (IMO). >> > 1. How should it work for sun style? > 2. How should it work for multiline function signature? I believe that XEmacs does the right thing here: fold on the line that contains the closing parenthesis of the function signature (or the if/switch/for/while condition), except for isolated blocks where they fold on the the line of the opening brace. Jerome -- mailto:jeberger@free.fr http://jeberger.free.fr Jabber: jeberger@jabber.fr | |||
April 13, 2010 Re: [feedback] folding in scintilla | ||||
|---|---|---|---|---|
| ||||
Posted in reply to maXmo | "maXmo" <nospam@nospam.org> wrote in message news:hq1k6n$2omq$1@digitalmars.com... > Nick Sabalausky Wrote: > >> Ahh, I see. No, that's not what I was talking about. This is a mockup of >> the >> way I've been wanting it: >> >> http://www.semitwist.com/download/goodFolding.png >> >> Putting it on the line with the "{" seem ridiculous, ugly and just plain >> sloppy to me. (IMO). >> > 1. How should it work for sun style? > 2. How should it work for multiline function signature? By "sun-style", I assume you mean like this: foo { } right? Well, the current folding rule scintilla uses is something like this: - Folding starts at (but does not include) any "{" in the source. What I have in mind is more like: - Folding starts at (but does not include) the last non-whitespace character just before any "{" in the source. (This would also make it work for a language like Go^H^H Issue 9) So, it would be like this mockup (top is sun-style, bottom is multi-line): http://www.semitwist.com/download/goodFoldingMore.png In any case, even if neither the opening nor closing curly brace is visible, I think the horizontal rule is sufficient in indicating that a block of code is hidden. But, if some people think that's too subtle (or to allow a VS.NET-style "hover to show the folded code in a popup tooltip"), then it could also do what Andrej suggested and place a specially-highlighted "{...}" (actually including the three dots) at the end of the line just before the horizontal rule. To properly handle something like this: void foo() { int x; { auto f = openFile(); scope(exit) closeFile(f); bar(f); } baz(); } I suppose you could modify the rule to something more like: - Folding starts at (but does not include) the last non-whitespace character just before any "{" in the source, as long as that character is a ")", otherwise just fold at (but not including) the whitespace character immediately before the "{" in question. or - Folding starts at (but does not include) the last non-whitespace character just before any "{" in the source, unless that character is a semicolon or another "{", in which case just fold at (but not including) the whitespace character immediately before the "{" in question. | |||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply