Mercurial > vim
diff src/syntax.c @ 28357:86b6432aa1d8 v8.2.4704
patch 8.2.4704: using "else" after return or break increases indent
Commit: https://github.com/vim/vim/commit/f26c16144ddb27642c09f2cf5271afd163b36306
Author: =?UTF-8?q?Dundar=20G=C3=B6c?= <gocdundar@gmail.com>
Date: Thu Apr 7 13:26:34 2022 +0100
patch 8.2.4704: using "else" after return or break increases indent
Problem: Using "else" after return or break increases indent.
Solution: Remove "else" and reduce indent. (Goc Dundar, closes https://github.com/vim/vim/issues/10099)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 07 Apr 2022 14:30:02 +0200 |
parents | 49631bf057d3 |
children | a7556b47ff09 |
line wrap: on
line diff
--- 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); + + pop_current_state(); + + if (current_state.ga_len == 0) + break; + + if (had_extend && keepend_level >= 0) { - // 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); - - pop_current_state(); - + 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); - - /* - * 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; - } + } + + 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; } } else