aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/syntax.c
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2020-04-06 16:08:48 -0400
committerBrad King <brad.king@kitware.com>2020-06-23 09:20:17 -0400
commitae5651942edf748d0d8147caa7eabe5175f0bfe9 (patch)
treebab90ec45bb548b0c79f9f4f2f497664b2ac7449 /src/nvim/syntax.c
parent721f69c4af8bc81ba04088e7b56f8cdba653b418 (diff)
downloadrneovim-ae5651942edf748d0d8147caa7eabe5175f0bfe9.tar.gz
rneovim-ae5651942edf748d0d8147caa7eabe5175f0bfe9.tar.bz2
rneovim-ae5651942edf748d0d8147caa7eabe5175f0bfe9.zip
syntax: factor out helper to compute the syntax-based foldlevel
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;