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
