mirror of
https://github.com/vim/vim.git
synced 2025-09-27 04:14:06 -04:00
updated for version 7.2-274
This commit is contained in:
34
src/fold.c
34
src/fold.c
@@ -2256,6 +2256,40 @@ foldUpdateIEMS(wp, top, bot)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If folding is defined by the syntax, it is possible that a change in
|
||||||
|
* one line will cause all sub-folds of the current fold to change (e.g.,
|
||||||
|
* closing a C-style comment can cause folds in the subsequent lines to
|
||||||
|
* appear). To take that into account we should adjust the value of "bot"
|
||||||
|
* to point to the end of the current fold:
|
||||||
|
*/
|
||||||
|
if (foldlevelSyntax == getlevel)
|
||||||
|
{
|
||||||
|
garray_T *gap = &wp->w_folds;
|
||||||
|
fold_T *fp = NULL;
|
||||||
|
int current_fdl = 0;
|
||||||
|
linenr_T fold_start_lnum = 0;
|
||||||
|
linenr_T lnum_rel = fline.lnum;
|
||||||
|
|
||||||
|
while (current_fdl < fline.lvl)
|
||||||
|
{
|
||||||
|
if (!foldFind(gap, lnum_rel, &fp))
|
||||||
|
break;
|
||||||
|
++current_fdl;
|
||||||
|
|
||||||
|
fold_start_lnum += fp->fd_top;
|
||||||
|
gap = &fp->fd_nested;
|
||||||
|
lnum_rel -= fp->fd_top;
|
||||||
|
}
|
||||||
|
if (fp != NULL && current_fdl == fline.lvl)
|
||||||
|
{
|
||||||
|
linenr_T fold_end_lnum = fold_start_lnum + fp->fd_len;
|
||||||
|
|
||||||
|
if (fold_end_lnum > bot)
|
||||||
|
bot = fold_end_lnum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
start = fline.lnum;
|
start = fline.lnum;
|
||||||
end = bot;
|
end = bot;
|
||||||
/* Do at least one line. */
|
/* Do at least one line. */
|
||||||
|
@@ -28,9 +28,14 @@ i jI :call append("$", "indent " . foldlevel("."))
|
|||||||
k:call append("$", foldlevel("."))
|
k:call append("$", foldlevel("."))
|
||||||
:" test syntax folding
|
:" test syntax folding
|
||||||
:set fdm=syntax fdl=0
|
:set fdm=syntax fdl=0
|
||||||
:syn region Hup start="dd" end="hh" fold
|
:syn region Hup start="dd" end="ii" fold contains=Fd1,Fd2,Fd3
|
||||||
|
:syn region Fd1 start="ee" end="ff" fold contained
|
||||||
|
:syn region Fd2 start="gg" end="hh" fold contained
|
||||||
|
:syn region Fd3 start="commentstart" end="commentend" fold contained
|
||||||
Gzk:call append("$", "folding " . getline("."))
|
Gzk:call append("$", "folding " . getline("."))
|
||||||
k:call append("$", getline("."))
|
k:call append("$", getline("."))
|
||||||
|
jAcommentstart Acommentend:set fdl=1
|
||||||
|
3j:call append("$", getline("."))
|
||||||
:" test expression folding
|
:" test expression folding
|
||||||
:fun Flvl()
|
:fun Flvl()
|
||||||
let l = getline(v:lnum)
|
let l = getline(v:lnum)
|
||||||
|
@@ -8,8 +8,9 @@ marker 2
|
|||||||
0
|
0
|
||||||
indent 2
|
indent 2
|
||||||
1
|
1
|
||||||
folding 8 hh
|
folding 9 ii
|
||||||
3 cc
|
3 cc
|
||||||
|
7 gg
|
||||||
expr 2
|
expr 2
|
||||||
1
|
1
|
||||||
2
|
2
|
||||||
|
@@ -676,6 +676,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
274,
|
||||||
/**/
|
/**/
|
||||||
273,
|
273,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user