I'm currently trying to get folding to work well. The basic idea is
that you should be able to take any project, and get an "outline view"
that shows the most interesting things in a very compact form, and is
made out of automatically-constructed folds. This makes browsing
extremely easy and effective. In the past, I've made outlines like
this out of folds placed manually with markers, and found that it gave
me a much better understanding of the projects where I did it.

One place where this breaks down, though, is in projects (or areas of
projects) that have many small files, and that's what I'm thinking
about dealing with. What I want, is a buffer type sort of like netrw
(:Explore), but with files as folds that can be expanded to their full
contents. Since the files themselves are folded internally, viewing at
foldlevel 0 would be a listing of all the files in the project,
viewing at foldlevel 1 would be a listing of all the functions/classes/
etc grouped by file with some developer-placed comments and blank
lines mixed in, and viewing at foldlevel 2 would be the actual file
contents. I want this feature badly.

Unfortunately, I'm having trouble seeing a way to make this work
without introducing lots of problems. One option using only vimscript
would be to have a script catenate all the files (plus some markers)
in a regular buffer, and then go through looking for changes and write
them into the original files on save. But this introduces problems all
over the place: the ruler and line-number based commands no longer
make sense, quickfix and syntastic and debugger integrations won't
work, syntax highlighting suddenly has to handle multiple languages in
one buffer, and on and on.

Editing vim's C implementation instead might be better - make a
special buffer type or fold type that handles cross-file relations.
Again, a lot of things pick up new corner cases - the screen
rendering, cursor motions and folding code come to mind in particular,
but I haven't dived into the code yet so I'm having a had time judging
how feasible that is.

Any ideas for better ways to do this?

-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Raspunde prin e-mail lui