aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/syntax.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/syntax.c')
-rw-r--r--src/nvim/syntax.c17
1 files 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;