I was planning on simplifying the default folding provided when
foldmethod=syntax.
Currently pretty much everything is folded but I was planning on
reducing this to just module/class/method definitions, multi-line
comments and END data chunks, with an option to disable comment
folding.
We could, of course, make this ‘infinitely’ configurable but I see
little point. Is anyone particularly enamoured with having their
multi-line regexes folded?
We could, of course, make this ‘infinitely’ configurable but I see
little point. Is anyone particularly enamoured with having their
multi-line regexes folded?
Enamoured? No. But there are things that I really like being folded –
multi-line hash definitions (I wish it extended to multiline array
definitions).
All in all, I’m mostly happy with the state of folding in the folding.
This probably makes me unusual, but I’d much rather keep my cases and
if statements foldable. If it’s changed in the “official”
distribution, I will need to pretty much stop upgrading because method
folding is too coarse for me.
This probably makes me unusual, but I’d much rather keep my cases and
if statements foldable. If it’s changed in the “official”
distribution, I will need to pretty much stop upgrading because method
folding is too coarse for me.
Me too, I like the way folding works right now, folding pretty much
everything. That way I only unfold the part of code that I’m currently
interested in. Though sometimes I do make use of zR to get the bigger
picture…
I guess, if you make it configurable, it would be ok, so that we can
switch ON the ‘full folding’ mode if we wanted to…
I agree with you Doug, folding module, class & method make it easy to
see the structure of your code still. Anyway, it would be nice if there
could just be a switch so everyone can have their flavor. In the
meantime, check out Mauricio F. blog. He’s got a couple really
helpful bits for vim & ruby. This is the folding you want:
Currently pretty much everything is folded but I was planning on
reducing this to just module/class/method definitions, multi-line
Any thoughts appreciated…
occasionaly i get frustrated with folding by syntax that most of the
ide’s do, so i use cream for vim which defaults to manual folding.
with easy access keys you can create folds or whatever lines you want.
in my regular vim installation i have folding defaulted to marker but
i find that tends to clutter up otherwise cluttered code
i simply bit the bullet and always use marker - it’s very convenient if one
works with many many files since the folds endure when you close the file.
i’d also add folding of here-docs since, by definition, those are huge
multi-line blocks of string content that should nearly always be folded.
The standard folding for Ruby works with here-docs.
with easy access keys you can create folds or whatever lines you want.
in my regular vim installation i have folding defaulted to marker but
i find that tends to clutter up otherwise cluttered code
i simply bit the bullet and always use marker - it’s very convenient if
one
works with many many files since the folds endure when you close the
file.
i’d also add folding of here-docs since, by definition, those are huge
multi-line blocks of string content that should nearly always be folded.
On Wed, May 10, 2006 at 08:07:38PM +0900, Doug K. wrote:
We could, of course, make this ‘infinitely’ configurable but I see
little point. Is anyone particularly enamoured with having their
multi-line regexes folded?
I’ve written a plugin that achieves something similar; it’s a much
improved
version of the vimscript I’d had in my .vimrc for a long time.
It is available at eigenclass.org
There are also a few animations comparing it to fdm=syntax and
fdm=marker.
Some features:
folds on module/class/method/{constant,attribute} definitions
(“top-level folds”)
These folds are not nested, so methods inside a class are always
visible, even when all folds are closed. This way zM gets you a
high-level
view of all of the file without having to open some module/class
folds.
I’ve added folding on if/while/until/blocks/etc (“nestable folds”)
(can be
turned of, but it’s not a problem since we have zO)
top-level folds are enlarged to include preceding comments (good for
RDoc’ed code)
the use of a specialized foldtext achieves over 60% savings in
vertical
space over fdm=marker at the class level.
it is possible to specify additional “top-level” folds with #{{{ /
#}}} and
additional “nestable” folds with {{{{ / }}}}.
i simply bit the bullet and always use marker - it’s very convenient if one
works with many many files since the folds endure when you close the file.
i’d also add folding of here-docs since, by definition, those are huge
multi-line blocks of string content that should nearly always be folded.
The standard folding for Ruby works with here-docs.
oh i know - just saying that here-docs should be included in a ‘minimal’
folding config too imho.
of flag for rdoc to ignore comments, so any such char should work.
Alright, I thought you meant that {{{ drove rdoc mad, when it’s just
that
they look bad in the docs (at least that’s what it looks like after a
quick test).
rdoc/parsers/parse_rb.rb:
…
def remove_private_comments(comment)
comment.gsub!(/^#–.?^#++/m, ‘’)
comment.sub!(/^#–./m, ‘’)
end
…
So it seems things aren’t that bad:
nestable folds will do fine, since we can use e.g. #-- {{{{, also
avoiding
conflicts with your markers
no problem either with “top-level” folds: anyway, there’s no point in
adding
one just before a rdoc’able element (class, method…), since a fold
would
be created there automatically anyway.
Thanks for pointing this out, I’ll add a few words about rdoc in the
docs.
On Wed, May 10, 2006 at 08:27:32PM +0900, Austin Z. wrote:
Enamoured? No. But there are things that I really like being folded –
multi-line hash definitions (I wish it extended to multiline array
definitions).
I’ll include something in the next release but in the meantime you can
just add
syn region rubyArrayLiteral start="%(^|\s)[" end="]"
contains=ALLBUT,@rubyExtendedStringSpecial,rubyTodo fold
to ~/.vim/after/syntax/ruby.vim. It should work for the common cases…
All in all, I’m mostly happy with the state of folding in the folding.
Good. I was under the impression that almost everyone found the folding
excessive.
This probably makes me unusual, but I’d much rather keep my cases and
if statements foldable. If it’s changed in the “official”
distribution, I will need to pretty much stop upgrading because method
folding is too coarse for me.
I’ll make any changes configurable.
Thanks,
Doug
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.