Mercurial > vim
comparison src/option.c @ 28942:6cdf55afaae9 v8.2.4993
patch 8.2.4993: smart/C/lisp indenting is optional
Commit: https://github.com/vim/vim/commit/8e145b82464a21ee4fdf7948f04e2a1d505f8bfa
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat May 21 20:17:31 2022 +0100
patch 8.2.4993: smart/C/lisp indenting is optional
Problem: smart/C/lisp indenting is optional, which makes the code more
complex, while it only reduces the executable size a bit.
Solution: Graduate FEAT_CINDENT, FEAT_SMARTINDENT and FEAT_LISP.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 21 May 2022 21:30:04 +0200 |
parents | 99c1356f4210 |
children | 9dce192d1ac2 |
comparison
equal
deleted
inserted
replaced
28941:f17de8647585 | 28942:6cdf55afaae9 |
---|---|
656 set_option_default(i, opt_flags, p_cp); | 656 set_option_default(i, opt_flags, p_cp); |
657 | 657 |
658 // The 'scroll' option must be computed for all windows. | 658 // The 'scroll' option must be computed for all windows. |
659 FOR_ALL_TAB_WINDOWS(tp, wp) | 659 FOR_ALL_TAB_WINDOWS(tp, wp) |
660 win_comp_scroll(wp); | 660 win_comp_scroll(wp); |
661 #ifdef FEAT_CINDENT | |
662 parse_cino(curbuf); | 661 parse_cino(curbuf); |
663 #endif | |
664 } | 662 } |
665 | 663 |
666 /* | 664 /* |
667 * Set the Vi-default value of a string option. | 665 * Set the Vi-default value of a string option. |
668 * Used for 'sh', 'backupskip' and 'term'. | 666 * Used for 'sh', 'backupskip' and 'term'. |
2536 case PV_FDT: return &curwin->w_p_fdt_flags; | 2534 case PV_FDT: return &curwin->w_p_fdt_flags; |
2537 # endif | 2535 # endif |
2538 # ifdef FEAT_BEVAL | 2536 # ifdef FEAT_BEVAL |
2539 case PV_BEXPR: return &curbuf->b_p_bexpr_flags; | 2537 case PV_BEXPR: return &curbuf->b_p_bexpr_flags; |
2540 # endif | 2538 # endif |
2541 # if defined(FEAT_CINDENT) | |
2542 case PV_INDE: return &curbuf->b_p_inde_flags; | 2539 case PV_INDE: return &curbuf->b_p_inde_flags; |
2543 # endif | |
2544 case PV_FEX: return &curbuf->b_p_fex_flags; | 2540 case PV_FEX: return &curbuf->b_p_fex_flags; |
2545 # ifdef FEAT_FIND_ID | 2541 # ifdef FEAT_FIND_ID |
2546 case PV_INEX: return &curbuf->b_p_inex_flags; | 2542 case PV_INEX: return &curbuf->b_p_inex_flags; |
2547 # endif | 2543 # endif |
2548 #endif | 2544 #endif |
2989 | 2985 |
2990 /* | 2986 /* |
2991 * When 'lisp' option changes include/exclude '-' in | 2987 * When 'lisp' option changes include/exclude '-' in |
2992 * keyword characters. | 2988 * keyword characters. |
2993 */ | 2989 */ |
2994 #ifdef FEAT_LISP | |
2995 else if (varp == (char_u *)&(curbuf->b_p_lisp)) | 2990 else if (varp == (char_u *)&(curbuf->b_p_lisp)) |
2996 { | 2991 { |
2997 (void)buf_init_chartab(curbuf, FALSE); // ignore errors | 2992 (void)buf_init_chartab(curbuf, FALSE); // ignore errors |
2998 } | 2993 } |
2999 #endif | |
3000 | 2994 |
3001 // when 'title' changed, may need to change the title; same for 'icon' | 2995 // when 'title' changed, may need to change the title; same for 'icon' |
3002 else if ((int *)varp == &p_title || (int *)varp == &p_icon) | 2996 else if ((int *)varp == &p_title || (int *)varp == &p_icon) |
3003 { | 2997 { |
3004 did_set_title(); | 2998 did_set_title(); |
3488 curwin->w_p_fdc = 12; | 3482 curwin->w_p_fdc = 12; |
3489 } | 3483 } |
3490 } | 3484 } |
3491 #endif // FEAT_FOLDING | 3485 #endif // FEAT_FOLDING |
3492 | 3486 |
3493 #if defined(FEAT_FOLDING) || defined(FEAT_CINDENT) | |
3494 // 'shiftwidth' or 'tabstop' | 3487 // 'shiftwidth' or 'tabstop' |
3495 else if (pp == &curbuf->b_p_sw || pp == &curbuf->b_p_ts) | 3488 else if (pp == &curbuf->b_p_sw || pp == &curbuf->b_p_ts) |
3496 { | 3489 { |
3497 # ifdef FEAT_FOLDING | 3490 #ifdef FEAT_FOLDING |
3498 if (foldmethodIsIndent(curwin)) | 3491 if (foldmethodIsIndent(curwin)) |
3499 foldUpdateAll(curwin); | 3492 foldUpdateAll(curwin); |
3500 # endif | 3493 #endif |
3501 # ifdef FEAT_CINDENT | |
3502 // When 'shiftwidth' changes, or it's zero and 'tabstop' changes: | 3494 // When 'shiftwidth' changes, or it's zero and 'tabstop' changes: |
3503 // parse 'cinoptions'. | 3495 // parse 'cinoptions'. |
3504 if (pp == &curbuf->b_p_sw || curbuf->b_p_sw == 0) | 3496 if (pp == &curbuf->b_p_sw || curbuf->b_p_sw == 0) |
3505 parse_cino(curbuf); | 3497 parse_cino(curbuf); |
3506 # endif | 3498 } |
3507 } | |
3508 #endif | |
3509 | 3499 |
3510 // 'maxcombine' | 3500 // 'maxcombine' |
3511 else if (pp == &p_mco) | 3501 else if (pp == &p_mco) |
3512 { | 3502 { |
3513 if (p_mco > MAX_MCO) | 3503 if (p_mco > MAX_MCO) |
5204 break; | 5194 break; |
5205 #endif | 5195 #endif |
5206 case PV_UL: | 5196 case PV_UL: |
5207 buf->b_p_ul = NO_LOCAL_UNDOLEVEL; | 5197 buf->b_p_ul = NO_LOCAL_UNDOLEVEL; |
5208 break; | 5198 break; |
5209 #ifdef FEAT_LISP | |
5210 case PV_LW: | 5199 case PV_LW: |
5211 clear_string_option(&buf->b_p_lw); | 5200 clear_string_option(&buf->b_p_lw); |
5212 break; | 5201 break; |
5213 #endif | |
5214 case PV_MENC: | 5202 case PV_MENC: |
5215 clear_string_option(&buf->b_p_menc); | 5203 clear_string_option(&buf->b_p_menc); |
5216 break; | 5204 break; |
5217 case PV_LCS: | 5205 case PV_LCS: |
5218 clear_string_option(&((win_T *)from)->w_p_lcs); | 5206 clear_string_option(&((win_T *)from)->w_p_lcs); |
5278 #endif | 5266 #endif |
5279 #ifdef FEAT_STL_OPT | 5267 #ifdef FEAT_STL_OPT |
5280 case PV_STL: return (char_u *)&(curwin->w_p_stl); | 5268 case PV_STL: return (char_u *)&(curwin->w_p_stl); |
5281 #endif | 5269 #endif |
5282 case PV_UL: return (char_u *)&(curbuf->b_p_ul); | 5270 case PV_UL: return (char_u *)&(curbuf->b_p_ul); |
5283 #ifdef FEAT_LISP | |
5284 case PV_LW: return (char_u *)&(curbuf->b_p_lw); | 5271 case PV_LW: return (char_u *)&(curbuf->b_p_lw); |
5285 #endif | |
5286 case PV_BKC: return (char_u *)&(curbuf->b_p_bkc); | 5272 case PV_BKC: return (char_u *)&(curbuf->b_p_bkc); |
5287 case PV_MENC: return (char_u *)&(curbuf->b_p_menc); | 5273 case PV_MENC: return (char_u *)&(curbuf->b_p_menc); |
5288 case PV_LCS: return (char_u *)&(curwin->w_p_lcs); | 5274 case PV_LCS: return (char_u *)&(curwin->w_p_lcs); |
5289 case PV_VE: return (char_u *)&(curwin->w_p_ve); | 5275 case PV_VE: return (char_u *)&(curwin->w_p_ve); |
5290 | 5276 |
5377 case PV_STL: return *curwin->w_p_stl != NUL | 5363 case PV_STL: return *curwin->w_p_stl != NUL |
5378 ? (char_u *)&(curwin->w_p_stl) : p->var; | 5364 ? (char_u *)&(curwin->w_p_stl) : p->var; |
5379 #endif | 5365 #endif |
5380 case PV_UL: return curbuf->b_p_ul != NO_LOCAL_UNDOLEVEL | 5366 case PV_UL: return curbuf->b_p_ul != NO_LOCAL_UNDOLEVEL |
5381 ? (char_u *)&(curbuf->b_p_ul) : p->var; | 5367 ? (char_u *)&(curbuf->b_p_ul) : p->var; |
5382 #ifdef FEAT_LISP | |
5383 case PV_LW: return *curbuf->b_p_lw != NUL | 5368 case PV_LW: return *curbuf->b_p_lw != NUL |
5384 ? (char_u *)&(curbuf->b_p_lw) : p->var; | 5369 ? (char_u *)&(curbuf->b_p_lw) : p->var; |
5385 #endif | |
5386 case PV_MENC: return *curbuf->b_p_menc != NUL | 5370 case PV_MENC: return *curbuf->b_p_menc != NUL |
5387 ? (char_u *)&(curbuf->b_p_menc) : p->var; | 5371 ? (char_u *)&(curbuf->b_p_menc) : p->var; |
5388 #ifdef FEAT_ARABIC | 5372 #ifdef FEAT_ARABIC |
5389 case PV_ARAB: return (char_u *)&(curwin->w_p_arab); | 5373 case PV_ARAB: return (char_u *)&(curwin->w_p_arab); |
5390 #endif | 5374 #endif |
5458 case PV_BOMB: return (char_u *)&(curbuf->b_p_bomb); | 5442 case PV_BOMB: return (char_u *)&(curbuf->b_p_bomb); |
5459 case PV_BH: return (char_u *)&(curbuf->b_p_bh); | 5443 case PV_BH: return (char_u *)&(curbuf->b_p_bh); |
5460 case PV_BT: return (char_u *)&(curbuf->b_p_bt); | 5444 case PV_BT: return (char_u *)&(curbuf->b_p_bt); |
5461 case PV_BL: return (char_u *)&(curbuf->b_p_bl); | 5445 case PV_BL: return (char_u *)&(curbuf->b_p_bl); |
5462 case PV_CI: return (char_u *)&(curbuf->b_p_ci); | 5446 case PV_CI: return (char_u *)&(curbuf->b_p_ci); |
5463 #ifdef FEAT_CINDENT | |
5464 case PV_CIN: return (char_u *)&(curbuf->b_p_cin); | 5447 case PV_CIN: return (char_u *)&(curbuf->b_p_cin); |
5465 case PV_CINK: return (char_u *)&(curbuf->b_p_cink); | 5448 case PV_CINK: return (char_u *)&(curbuf->b_p_cink); |
5466 case PV_CINO: return (char_u *)&(curbuf->b_p_cino); | 5449 case PV_CINO: return (char_u *)&(curbuf->b_p_cino); |
5467 case PV_CINSD: return (char_u *)&(curbuf->b_p_cinsd); | 5450 case PV_CINSD: return (char_u *)&(curbuf->b_p_cinsd); |
5468 #endif | |
5469 #if defined(FEAT_SMARTINDENT) || defined(FEAT_CINDENT) | |
5470 case PV_CINW: return (char_u *)&(curbuf->b_p_cinw); | 5451 case PV_CINW: return (char_u *)&(curbuf->b_p_cinw); |
5471 #endif | |
5472 case PV_COM: return (char_u *)&(curbuf->b_p_com); | 5452 case PV_COM: return (char_u *)&(curbuf->b_p_com); |
5473 #ifdef FEAT_FOLDING | 5453 #ifdef FEAT_FOLDING |
5474 case PV_CMS: return (char_u *)&(curbuf->b_p_cms); | 5454 case PV_CMS: return (char_u *)&(curbuf->b_p_cms); |
5475 #endif | 5455 #endif |
5476 case PV_CPT: return (char_u *)&(curbuf->b_p_cpt); | 5456 case PV_CPT: return (char_u *)&(curbuf->b_p_cpt); |
5499 #ifdef FEAT_FIND_ID | 5479 #ifdef FEAT_FIND_ID |
5500 # ifdef FEAT_EVAL | 5480 # ifdef FEAT_EVAL |
5501 case PV_INEX: return (char_u *)&(curbuf->b_p_inex); | 5481 case PV_INEX: return (char_u *)&(curbuf->b_p_inex); |
5502 # endif | 5482 # endif |
5503 #endif | 5483 #endif |
5504 #if defined(FEAT_CINDENT) && defined(FEAT_EVAL) | 5484 #if defined(FEAT_EVAL) |
5505 case PV_INDE: return (char_u *)&(curbuf->b_p_inde); | 5485 case PV_INDE: return (char_u *)&(curbuf->b_p_inde); |
5506 case PV_INDK: return (char_u *)&(curbuf->b_p_indk); | 5486 case PV_INDK: return (char_u *)&(curbuf->b_p_indk); |
5507 #endif | 5487 #endif |
5508 #ifdef FEAT_EVAL | 5488 #ifdef FEAT_EVAL |
5509 case PV_FEX: return (char_u *)&(curbuf->b_p_fex); | 5489 case PV_FEX: return (char_u *)&(curbuf->b_p_fex); |
5510 #endif | 5490 #endif |
5511 #ifdef FEAT_CRYPT | 5491 #ifdef FEAT_CRYPT |
5512 case PV_KEY: return (char_u *)&(curbuf->b_p_key); | 5492 case PV_KEY: return (char_u *)&(curbuf->b_p_key); |
5513 #endif | 5493 #endif |
5514 #ifdef FEAT_LISP | |
5515 case PV_LISP: return (char_u *)&(curbuf->b_p_lisp); | 5494 case PV_LISP: return (char_u *)&(curbuf->b_p_lisp); |
5516 #endif | |
5517 case PV_ML: return (char_u *)&(curbuf->b_p_ml); | 5495 case PV_ML: return (char_u *)&(curbuf->b_p_ml); |
5518 case PV_MPS: return (char_u *)&(curbuf->b_p_mps); | 5496 case PV_MPS: return (char_u *)&(curbuf->b_p_mps); |
5519 case PV_MA: return (char_u *)&(curbuf->b_p_ma); | 5497 case PV_MA: return (char_u *)&(curbuf->b_p_ma); |
5520 case PV_MOD: return (char_u *)&(curbuf->b_changed); | 5498 case PV_MOD: return (char_u *)&(curbuf->b_changed); |
5521 case PV_NF: return (char_u *)&(curbuf->b_p_nf); | 5499 case PV_NF: return (char_u *)&(curbuf->b_p_nf); |
5522 case PV_PI: return (char_u *)&(curbuf->b_p_pi); | 5500 case PV_PI: return (char_u *)&(curbuf->b_p_pi); |
5523 #ifdef FEAT_TEXTOBJ | 5501 #ifdef FEAT_TEXTOBJ |
5524 case PV_QE: return (char_u *)&(curbuf->b_p_qe); | 5502 case PV_QE: return (char_u *)&(curbuf->b_p_qe); |
5525 #endif | 5503 #endif |
5526 case PV_RO: return (char_u *)&(curbuf->b_p_ro); | 5504 case PV_RO: return (char_u *)&(curbuf->b_p_ro); |
5527 #ifdef FEAT_SMARTINDENT | |
5528 case PV_SI: return (char_u *)&(curbuf->b_p_si); | 5505 case PV_SI: return (char_u *)&(curbuf->b_p_si); |
5529 #endif | |
5530 case PV_SN: return (char_u *)&(curbuf->b_p_sn); | 5506 case PV_SN: return (char_u *)&(curbuf->b_p_sn); |
5531 case PV_STS: return (char_u *)&(curbuf->b_p_sts); | 5507 case PV_STS: return (char_u *)&(curbuf->b_p_sts); |
5532 #ifdef FEAT_SEARCHPATH | 5508 #ifdef FEAT_SEARCHPATH |
5533 case PV_SUA: return (char_u *)&(curbuf->b_p_sua); | 5509 case PV_SUA: return (char_u *)&(curbuf->b_p_sua); |
5534 #endif | 5510 #endif |
6021 // when it is set to 8 bytes in defaults.vim. | 5997 // when it is set to 8 bytes in defaults.vim. |
6022 buf->b_p_nf = vim_strsave(p_nf); | 5998 buf->b_p_nf = vim_strsave(p_nf); |
6023 COPY_OPT_SCTX(buf, BV_NF); | 5999 COPY_OPT_SCTX(buf, BV_NF); |
6024 buf->b_p_mps = vim_strsave(p_mps); | 6000 buf->b_p_mps = vim_strsave(p_mps); |
6025 COPY_OPT_SCTX(buf, BV_MPS); | 6001 COPY_OPT_SCTX(buf, BV_MPS); |
6026 #ifdef FEAT_SMARTINDENT | |
6027 buf->b_p_si = p_si; | 6002 buf->b_p_si = p_si; |
6028 COPY_OPT_SCTX(buf, BV_SI); | 6003 COPY_OPT_SCTX(buf, BV_SI); |
6029 #endif | |
6030 buf->b_p_ci = p_ci; | 6004 buf->b_p_ci = p_ci; |
6031 COPY_OPT_SCTX(buf, BV_CI); | 6005 COPY_OPT_SCTX(buf, BV_CI); |
6032 #ifdef FEAT_CINDENT | 6006 |
6033 buf->b_p_cin = p_cin; | 6007 buf->b_p_cin = p_cin; |
6034 COPY_OPT_SCTX(buf, BV_CIN); | 6008 COPY_OPT_SCTX(buf, BV_CIN); |
6035 buf->b_p_cink = vim_strsave(p_cink); | 6009 buf->b_p_cink = vim_strsave(p_cink); |
6036 COPY_OPT_SCTX(buf, BV_CINK); | 6010 COPY_OPT_SCTX(buf, BV_CINK); |
6037 buf->b_p_cino = vim_strsave(p_cino); | 6011 buf->b_p_cino = vim_strsave(p_cino); |
6038 COPY_OPT_SCTX(buf, BV_CINO); | 6012 COPY_OPT_SCTX(buf, BV_CINO); |
6039 buf->b_p_cinsd = vim_strsave(p_cinsd); | 6013 buf->b_p_cinsd = vim_strsave(p_cinsd); |
6040 COPY_OPT_SCTX(buf, BV_CINSD); | 6014 COPY_OPT_SCTX(buf, BV_CINSD); |
6041 #endif | 6015 |
6042 // Don't copy 'filetype', it must be detected | 6016 // Don't copy 'filetype', it must be detected |
6043 buf->b_p_ft = empty_option; | 6017 buf->b_p_ft = empty_option; |
6044 buf->b_p_pi = p_pi; | 6018 buf->b_p_pi = p_pi; |
6045 COPY_OPT_SCTX(buf, BV_PI); | 6019 COPY_OPT_SCTX(buf, BV_PI); |
6046 #if defined(FEAT_SMARTINDENT) || defined(FEAT_CINDENT) | |
6047 buf->b_p_cinw = vim_strsave(p_cinw); | 6020 buf->b_p_cinw = vim_strsave(p_cinw); |
6048 COPY_OPT_SCTX(buf, BV_CINW); | 6021 COPY_OPT_SCTX(buf, BV_CINW); |
6049 #endif | |
6050 #ifdef FEAT_LISP | |
6051 buf->b_p_lisp = p_lisp; | 6022 buf->b_p_lisp = p_lisp; |
6052 COPY_OPT_SCTX(buf, BV_LISP); | 6023 COPY_OPT_SCTX(buf, BV_LISP); |
6053 #endif | |
6054 #ifdef FEAT_SYN_HL | 6024 #ifdef FEAT_SYN_HL |
6055 // Don't copy 'syntax', it must be set | 6025 // Don't copy 'syntax', it must be set |
6056 buf->b_p_syn = empty_option; | 6026 buf->b_p_syn = empty_option; |
6057 buf->b_p_smc = p_smc; | 6027 buf->b_p_smc = p_smc; |
6058 COPY_OPT_SCTX(buf, BV_SMC); | 6028 COPY_OPT_SCTX(buf, BV_SMC); |
6067 buf->b_s.b_p_spl = vim_strsave(p_spl); | 6037 buf->b_s.b_p_spl = vim_strsave(p_spl); |
6068 COPY_OPT_SCTX(buf, BV_SPL); | 6038 COPY_OPT_SCTX(buf, BV_SPL); |
6069 buf->b_s.b_p_spo = vim_strsave(p_spo); | 6039 buf->b_s.b_p_spo = vim_strsave(p_spo); |
6070 COPY_OPT_SCTX(buf, BV_SPO); | 6040 COPY_OPT_SCTX(buf, BV_SPO); |
6071 #endif | 6041 #endif |
6072 #if defined(FEAT_CINDENT) && defined(FEAT_EVAL) | 6042 #if defined(FEAT_EVAL) |
6073 buf->b_p_inde = vim_strsave(p_inde); | 6043 buf->b_p_inde = vim_strsave(p_inde); |
6074 COPY_OPT_SCTX(buf, BV_INDE); | 6044 COPY_OPT_SCTX(buf, BV_INDE); |
6075 buf->b_p_indk = vim_strsave(p_indk); | 6045 buf->b_p_indk = vim_strsave(p_indk); |
6076 COPY_OPT_SCTX(buf, BV_INDK); | 6046 COPY_OPT_SCTX(buf, BV_INDK); |
6077 #endif | 6047 #endif |
6146 #endif | 6116 #endif |
6147 #ifdef FEAT_PERSISTENT_UNDO | 6117 #ifdef FEAT_PERSISTENT_UNDO |
6148 buf->b_p_udf = p_udf; | 6118 buf->b_p_udf = p_udf; |
6149 COPY_OPT_SCTX(buf, BV_UDF); | 6119 COPY_OPT_SCTX(buf, BV_UDF); |
6150 #endif | 6120 #endif |
6151 #ifdef FEAT_LISP | |
6152 buf->b_p_lw = empty_option; | 6121 buf->b_p_lw = empty_option; |
6153 #endif | |
6154 buf->b_p_menc = empty_option; | 6122 buf->b_p_menc = empty_option; |
6155 | 6123 |
6156 /* | 6124 /* |
6157 * Don't copy the options set by ex_help(), use the saved values, | 6125 * Don't copy the options set by ex_help(), use the saved values, |
6158 * when going from a help buffer to a non-help buffer. | 6126 * when going from a help buffer to a non-help buffer. |