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.