Home | History | Annotate | Line # | Download | only in indent
opt_eei.c revision 1.6
      1 /* $NetBSD: opt_eei.c,v 1.6 2021/11/20 16:54:17 rillig Exp $ */
      2 /* $FreeBSD$ */
      3 
      4 /*
      5  * Tests for the options '-eei' and '-neei'.
      6  *
      7  * The option '-eei' enables extra indentation on continuation lines of the
      8  * expression part of 'if' and 'while' statements. These continuation lines
      9  * are indented one extra level.
     10  *
     11  * The option '-neei' indents these conditions in the same way as all other
     12  * continued statements.
     13  */
     14 
     15 #indent input
     16 bool
     17 less(int a, int b)
     18 {
     19 	if (a <
     20 	    b)
     21 		return true;
     22 	if (a
     23 	    <
     24 	    b)
     25 		return true;
     26 }
     27 #indent end
     28 
     29 #indent run -eei
     30 bool
     31 less(int a, int b)
     32 {
     33 	if (a <
     34 			b)
     35 		return true;
     36 	if (a
     37 			<
     38 			b)
     39 		return true;
     40 }
     41 #indent end
     42 
     43 #indent run-equals-input -neei
     44 
     45 /*
     46  * When a single indentation level is the same as the continuation
     47  * indentation, the code does not clearly show whether the 'b' belongs to the
     48  * condition or the body statement.
     49  */
     50 #indent run -neei -i4
     51 bool
     52 less(int a, int b)
     53 {
     54     if (a <
     55 	b)
     56 	return true;
     57     if (a
     58 	<
     59 	b)
     60 	return true;
     61 }
     62 #indent end
     63 
     64 /*
     65  * Adding the extra level of indentation is useful when the standard
     66  * indentation is the same as the indentation of statement continuations. In
     67  * such a case, the continued condition would have the same indentation as the
     68  * following statement, which would be confusing.
     69  */
     70 #indent run -eei -i4
     71 bool
     72 less(int a, int b)
     73 {
     74     if (a <
     75 	    b)
     76 	return true;
     77     if (a
     78 	    <
     79 	    b)
     80 	return true;
     81 }
     82 #indent end
     83 
     84 /*
     85  * With an indentation size of 4, the width of the code 'if (' is exactly one
     86  * indentation level. With the option '-nlp', the option '-eei' has no effect.
     87  *
     88  * XXX: This is unexpected since this creates the exact ambiguity that the
     89  * option '-eei' is supposed to prevent.
     90  */
     91 #indent run -eei -i4 -nlp
     92 bool
     93 less(int a, int b)
     94 {
     95     if (a <
     96 	b)
     97 	return true;
     98     if (a
     99 	<
    100 	b)
    101 	return true;
    102 }
    103 #indent end
    104 
    105 
    106 /*
    107  * The option '-eei' applies no matter whether the continued expression starts
    108  * with a word or an operator like '&&'. The latter cannot start a statement,
    109  * so there would be no ambiguity.
    110  */
    111 #indent input
    112 {
    113 	if (a
    114 && b)
    115 	    stmt();
    116 }
    117 #indent end
    118 
    119 /*
    120  * XXX: The extra indentation is unnecessary since there is no possible
    121  * confusion: the standard indentation is 8, the indentation of the continued
    122  * condition could have stayed at 4.
    123  */
    124 #indent run -eei
    125 {
    126 	if (a
    127 			&& b)
    128 		stmt();
    129 }
    130 #indent end
    131 
    132 /*
    133  * The extra indentation is necessary here since otherwise the '&&' and the
    134  * 'stmt()' would start at the same indentation.
    135  */
    136 #indent run -eei -i4
    137 {
    138     if (a
    139 	    && b)
    140 	stmt();
    141 }
    142 #indent end
    143 
    144 /*
    145  * With an indentation size of 4, the width of the code 'if (' is exactly one
    146  * indentation level. With the option '-nlp', the option '-eei' has no effect.
    147  *
    148  * XXX: This is unexpected since this creates the exact ambiguity that the
    149  * option '-eei' is supposed to prevent.
    150  */
    151 #indent run -eei -i4 -nlp
    152 {
    153     if (a
    154 	&& b)
    155 	stmt();
    156 }
    157 #indent end
    158