@@ -11,17 +11,29 @@ interface State {
11
11
printWidth ?: number ;
12
12
tabWidth ?: number ;
13
13
useTabs ?: boolean ;
14
+ arrowParens ?: ArrowParens ;
14
15
trailingComma ?: TrailingComma ;
16
+ experimentalOperatorPosition ?: ExperimentalOperatorPosition ;
15
17
requirePragma ?: boolean ;
16
18
code ?: string ;
17
19
}
18
20
21
+ enum ArrowParens {
22
+ Always = "always" ,
23
+ Avoid = "avoid"
24
+ }
25
+
19
26
enum TrailingComma {
20
27
All = "all" ,
21
28
Es5 = "es5" ,
22
29
None = "none"
23
30
}
24
31
32
+ enum ExperimentalOperatorPosition {
33
+ Start = "start" ,
34
+ End = "end"
35
+ }
36
+
25
37
const codeSample = `public interface MyInterface {
26
38
String foo();
27
39
int[] bar();
@@ -63,9 +75,17 @@ function Inner() {
63
75
const [ printWidth , setPrintWidth ] = useState ( initialState . printWidth ?? 80 ) ;
64
76
const [ tabWidth , setTabWidth ] = useState ( initialState . tabWidth ?? 2 ) ;
65
77
const [ useTabs , setUseTabs ] = useState ( initialState . useTabs ?? false ) ;
66
- const [ trailingComma , setTrailingComma ] = useState < TrailingComma > (
78
+ const [ arrowParens , setArrowParens ] = useState (
79
+ initialState . arrowParens ?? ArrowParens . Avoid
80
+ ) ;
81
+ const [ trailingComma , setTrailingComma ] = useState (
67
82
initialState . trailingComma ?? TrailingComma . All
68
83
) ;
84
+ const [ experimentalOperatorPosition , setExperimentalOperatorPosition ] =
85
+ useState (
86
+ initialState . experimentalOperatorPosition ??
87
+ ExperimentalOperatorPosition . End
88
+ ) ;
69
89
const [ requirePragma , setRequirePragma ] = useState (
70
90
initialState . requirePragma ?? false
71
91
) ;
@@ -82,7 +102,9 @@ function Inner() {
82
102
printWidth,
83
103
tabWidth,
84
104
useTabs,
105
+ arrowParens,
85
106
trailingComma,
107
+ experimentalOperatorPosition,
86
108
requirePragma,
87
109
code
88
110
} ) ;
@@ -96,12 +118,23 @@ function Inner() {
96
118
printWidth,
97
119
tabWidth,
98
120
useTabs,
121
+ arrowParens,
99
122
trailingComma,
123
+ experimentalOperatorPosition,
100
124
requirePragma
101
125
} )
102
126
. then ( setFormattedCode )
103
127
. catch ( error => setFormattedCode ( error . message ) ) ;
104
- } , [ printWidth , tabWidth , useTabs , trailingComma , requirePragma , code ] ) ;
128
+ } , [
129
+ printWidth ,
130
+ tabWidth ,
131
+ useTabs ,
132
+ arrowParens ,
133
+ trailingComma ,
134
+ experimentalOperatorPosition ,
135
+ requirePragma ,
136
+ code
137
+ ] ) ;
105
138
106
139
return (
107
140
< div className = { styles . playground } >
@@ -137,6 +170,19 @@ function Inner() {
137
170
</ details >
138
171
< details open >
139
172
< summary > Java</ summary >
173
+ < label title = "Include parentheses around a sole arrow function parameter." >
174
+ --arrow-parens{ " " }
175
+ < select
176
+ value = { arrowParens }
177
+ onChange = { event =>
178
+ setArrowParens ( event . target . value as ArrowParens )
179
+ }
180
+ >
181
+ { Object . values ( ArrowParens ) . map ( option => (
182
+ < option key = { option } > { option } </ option >
183
+ ) ) }
184
+ </ select >
185
+ </ label >
140
186
< label title = "Print trailing commas wherever possible when multi-line." >
141
187
--trailing-comma{ " " }
142
188
< select
@@ -150,6 +196,21 @@ function Inner() {
150
196
) ) }
151
197
</ select >
152
198
</ label >
199
+ < label title = "Where to print operators when binary expressions wrap lines." >
200
+ --experimental-operator-position{ " " }
201
+ < select
202
+ value = { experimentalOperatorPosition }
203
+ onChange = { event =>
204
+ setExperimentalOperatorPosition (
205
+ event . target . value as ExperimentalOperatorPosition
206
+ )
207
+ }
208
+ >
209
+ { Object . values ( ExperimentalOperatorPosition ) . map ( option => (
210
+ < option key = { option } > { option } </ option >
211
+ ) ) }
212
+ </ select >
213
+ </ label >
153
214
</ details >
154
215
< details open >
155
216
< summary > Special</ summary >
0 commit comments