> Is there a built-in folding method for patch files?

Not AFAIK

> When I open a patch file, I would like to be able to open and close individual
> hunks as well as all hunks of a single file.
> 
> Isn't there something built-in? (I know I could write my own fold-expr.)

A simple first-pass fold-expr to handle just hunks:

   :set fdm=expr fde=(getline(v:lnum)=~'^@@')?'>1':'='

For a more complex version, you could use

fde=(getline(v:lnum)=~'^Index')?0:(getline(v:lnum)=~'^=\\{3,}')?1:((getline(v:lnum)=~'^@@')?'>2':'=')

(all in one line, in case mailers mung it) which should handle 
both multiple hunks and multiple files-to-be-patched in the same 
.diff/.patch file.

That breaks down as

- If it begins with 'Index', don't indent it

- If it begins with 3+ "=" signs, start indenting 1 level

- If it starts with "@@", consider it the beginning of a hunk and 
start indent-level-2

- Finally, for everything else, treat it as the indentation that 
comes from the previous line.


It works at least for some of the SVN diff's I've got floating 
around here.

Hope this helps,

-tim









--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_use" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---

Reply via email to