Re: [feedback] folding in scintilla

2010-04-13 Thread Jussi Jumppanen
Andrej Mitrovic Wrote:

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

That's a bit like how Zeus does it's folding: 

http://www.zeusedit.com/images/lookfold.png



Re: [feedback] folding in scintilla

2010-04-13 Thread maXmo
Nick Sabalausky Wrote:

> So, it would be like this mockup (top is sun-style, bottom is multi-line):
> 
> http://www.semitwist.com/download/goodFoldingMore.png
> 
Scintilla's folding is line-based: each line is assigned a fold level and 
folder hides lines according to these levels (kinda simple python-friendly 
algorithm), visible lines are displayed in their entirety.


Re: [feedback] folding in scintilla

2010-04-13 Thread Nick Sabalausky
"maXmo"  wrote in message 
news:hq1k6n$2om...@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.




Re: [feedback] folding in scintilla

2010-04-13 Thread Jérôme M. Berger
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:jeber...@free.fr
http://jeberger.free.fr
Jabber: jeber...@jabber.fr



signature.asc
Description: OpenPGP digital signature


Re: [feedback] folding in scintilla

2010-04-13 Thread maXmo
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?


Re: [feedback] folding in scintilla

2010-04-13 Thread Nick Sabalausky
"Nick Sabalausky"  wrote in message 
news:hq142v$1hh...@digitalmars.com...
> "maXmo"  wrote in message 
> news:hq0qrq$13p...@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.




Re: [feedback] folding in scintilla

2010-04-12 Thread Nick Sabalausky
"maXmo"  wrote in message 
news:hq0qrq$13p...@digitalmars.com...
> Nick Sabalausky Wrote:
>
>> "maXmo"  wrote in message
>> news:hq083d$2qp...@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).




Re: [feedback] folding in scintilla

2010-04-12 Thread maXmo
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.


Re: [feedback] folding in scintilla

2010-04-12 Thread maXmo
Nick Sabalausky Wrote:

> "maXmo"  wrote in message 
> news:hq083d$2qp...@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


Re: [feedback] folding in scintilla

2010-04-12 Thread Nick Sabalausky
"maXmo"  wrote in message 
news:hq083d$2qp...@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. 




Re: [feedback] folding in scintilla

2010-04-12 Thread Andrej Mitrovic
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.


[feedback] folding in scintilla

2010-04-12 Thread maXmo
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?