summaryrefslogtreecommitdiff
path: root/src/syntax.c
diff options
context:
space:
mode:
author=?UTF-8?q?Dundar=20G=C3=B6c?= <gocdundar@gmail.com>2022-04-07 13:26:34 +0100
committerBram Moolenaar <Bram@vim.org>2022-04-07 13:26:34 +0100
commitf26c16144ddb27642c09f2cf5271afd163b36306 (patch)
treed4cfbbd4b403ba63982435b61a41fa71755f1716 /src/syntax.c
parentcb49a1d934d38cbc0d445af59b71ffe45cbcae75 (diff)
downloadvim-git-f26c16144ddb27642c09f2cf5271afd163b36306.tar.gz
patch 8.2.4704: using "else" after return or break increases indentv8.2.4704
Problem: Using "else" after return or break increases indent. Solution: Remove "else" and reduce indent. (Goc Dundar, closes #10099)
Diffstat (limited to 'src/syntax.c')
-rw-r--r--src/syntax.c82
1 files changed, 40 insertions, 42 deletions
diff --git a/src/syntax.c b/src/syntax.c
index 74687cb4d..086d9d755 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -2504,55 +2504,53 @@ check_state_ends(void)
next_match_col = MAXCOL;
break;
}
- else
- {
- // handle next_list, unless at end of line and no "skipnl" or
- // "skipempty"
- current_next_list = cur_si->si_next_list;
- current_next_flags = cur_si->si_flags;
- if (!(current_next_flags & (HL_SKIPNL | HL_SKIPEMPTY))
- && syn_getcurline()[current_col] == NUL)
- current_next_list = NULL;
- // When the ended item has "extend", another item with
- // "keepend" now needs to check for its end.
- had_extend = (cur_si->si_flags & HL_EXTEND);
+ // handle next_list, unless at end of line and no "skipnl" or
+ // "skipempty"
+ current_next_list = cur_si->si_next_list;
+ current_next_flags = cur_si->si_flags;
+ if (!(current_next_flags & (HL_SKIPNL | HL_SKIPEMPTY))
+ && syn_getcurline()[current_col] == NUL)
+ current_next_list = NULL;
- pop_current_state();
+ // When the ended item has "extend", another item with
+ // "keepend" now needs to check for its end.
+ had_extend = (cur_si->si_flags & HL_EXTEND);
+
+ pop_current_state();
+
+ if (current_state.ga_len == 0)
+ break;
+ if (had_extend && keepend_level >= 0)
+ {
+ syn_update_ends(FALSE);
if (current_state.ga_len == 0)
break;
+ }
- if (had_extend && keepend_level >= 0)
- {
- syn_update_ends(FALSE);
- if (current_state.ga_len == 0)
- break;
- }
-
- cur_si = &CUR_STATE(current_state.ga_len - 1);
+ cur_si = &CUR_STATE(current_state.ga_len - 1);
- /*
- * Only for a region the search for the end continues after
- * the end of the contained item. If the contained match
- * included the end-of-line, break here, the region continues.
- * Don't do this when:
- * - "keepend" is used for the contained item
- * - not at the end of the line (could be end="x$"me=e-1).
- * - "excludenl" is used (HL_HAS_EOL won't be set)
- */
- if (cur_si->si_idx >= 0
- && SYN_ITEMS(syn_block)[cur_si->si_idx].sp_type
- == SPTYPE_START
- && !(cur_si->si_flags & (HL_MATCH | HL_KEEPEND)))
- {
- update_si_end(cur_si, (int)current_col, TRUE);
- check_keepend();
- if ((current_next_flags & HL_HAS_EOL)
- && keepend_level < 0
- && syn_getcurline()[current_col] == NUL)
- break;
- }
+ /*
+ * Only for a region the search for the end continues after
+ * the end of the contained item. If the contained match
+ * included the end-of-line, break here, the region continues.
+ * Don't do this when:
+ * - "keepend" is used for the contained item
+ * - not at the end of the line (could be end="x$"me=e-1).
+ * - "excludenl" is used (HL_HAS_EOL won't be set)
+ */
+ if (cur_si->si_idx >= 0
+ && SYN_ITEMS(syn_block)[cur_si->si_idx].sp_type
+ == SPTYPE_START
+ && !(cur_si->si_flags & (HL_MATCH | HL_KEEPEND)))
+ {
+ update_si_end(cur_si, (int)current_col, TRUE);
+ check_keepend();
+ if ((current_next_flags & HL_HAS_EOL)
+ && keepend_level < 0
+ && syn_getcurline()[current_col] == NUL)
+ break;
}
}
else