From ae5651942edf748d0d8147caa7eabe5175f0bfe9 Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 6 Apr 2020 16:08:48 -0400 Subject: [PATCH] syntax: factor out helper to compute the syntax-based foldlevel --- src/nvim/syntax.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/nvim/syntax.c b/src/nvim/syntax.c index f3b05c3961..8999fc4b17 100644 --- a/src/nvim/syntax.c +++ b/src/nvim/syntax.c @@ -5763,6 +5763,17 @@ int syn_get_stack_item(int i) 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". */ @@ -5776,11 +5787,7 @@ int syn_get_foldlevel(win_T *wp, long lnum) && !wp->w_s->b_syn_slow) { syntax_start(wp, lnum); - for (int i = 0; i < current_state.ga_len; ++i) { - if (CUR_STATE(i).si_flags & HL_FOLD) { - ++level; - } - } + level = syn_cur_foldlevel(); } if (level > wp->w_p_fdn) { level = wp->w_p_fdn;