syntax: factor out helper to compute the syntax-based foldlevel
This commit is contained in:
parent
721f69c4af
commit
ae5651942e
|
@ -5763,6 +5763,17 @@ int syn_get_stack_item(int i)
|
||||||
return CUR_STATE(i).si_id;
|
return CUR_STATE(i).si_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int syn_cur_foldlevel(void)
|
||||||
|
{
|
||||||
|
int level = 0;
|
||||||
|
for (int i = 0; i < current_state.ga_len; i++) {
|
||||||
|
if (CUR_STATE(i).si_flags & HL_FOLD) {
|
||||||
|
level++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return level;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Function called to get folding level for line "lnum" in window "wp".
|
* Function called to get folding level for line "lnum" in window "wp".
|
||||||
*/
|
*/
|
||||||
|
@ -5776,11 +5787,7 @@ int syn_get_foldlevel(win_T *wp, long lnum)
|
||||||
&& !wp->w_s->b_syn_slow) {
|
&& !wp->w_s->b_syn_slow) {
|
||||||
syntax_start(wp, lnum);
|
syntax_start(wp, lnum);
|
||||||
|
|
||||||
for (int i = 0; i < current_state.ga_len; ++i) {
|
level = syn_cur_foldlevel();
|
||||||
if (CUR_STATE(i).si_flags & HL_FOLD) {
|
|
||||||
++level;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (level > wp->w_p_fdn) {
|
if (level > wp->w_p_fdn) {
|
||||||
level = wp->w_p_fdn;
|
level = wp->w_p_fdn;
|
||||||
|
|
Loading…
Reference in New Issue