@@ -18,7 +18,7 @@ import { DisposableCollection } from '@theia/core/lib/common/disposable';
18
18
import { FrontendApplicationStateService } from '@theia/core/lib/browser/frontend-application-state' ;
19
19
import { AbstractDialog , DialogProps , PreferenceService , PreferenceScope , DialogError , ReactWidget } from '@theia/core/lib/browser' ;
20
20
import { Index } from '../common/types' ;
21
- import { ConfigService , FileSystemExt , Network , ProxySettings } from '../common/protocol' ;
21
+ import { CompilerWarnings , CompilerWarningLiterals , ConfigService , FileSystemExt , Network , ProxySettings } from '../common/protocol' ;
22
22
23
23
export interface Settings extends Index {
24
24
editorFontSize : number ; // `editor.fontSize`
@@ -29,6 +29,7 @@ export interface Settings extends Index {
29
29
interfaceScale : number ; // `arduino.window.zoomLevel` https://github.com/eclipse-theia/theia/issues/8751
30
30
checkForUpdates ?: boolean ; // `arduino.ide.autoUpdate`
31
31
verboseOnCompile : boolean ; // `arduino.compile.verbose`
32
+ compilerWarnings : CompilerWarnings ; // `arduino.compile.warnings`
32
33
verboseOnUpload : boolean ; // `arduino.upload.verbose`
33
34
verifyAfterUpload : boolean ; // `arduino.upload.verify`
34
35
enableLsLogs : boolean ; // `arduino.language.log`
@@ -87,6 +88,7 @@ export class SettingsService {
87
88
interfaceScale ,
88
89
// checkForUpdates,
89
90
verboseOnCompile ,
91
+ compilerWarnings ,
90
92
verboseOnUpload ,
91
93
verifyAfterUpload ,
92
94
enableLsLogs ,
@@ -99,6 +101,7 @@ export class SettingsService {
99
101
this . preferenceService . get < number > ( 'arduino.window.zoomLevel' , 0 ) ,
100
102
// this.preferenceService.get<string>('arduino.ide.autoUpdate', true),
101
103
this . preferenceService . get < boolean > ( 'arduino.compile.verbose' , true ) ,
104
+ this . preferenceService . get < any > ( 'arduino.compile.warnings' , 'None' ) ,
102
105
this . preferenceService . get < boolean > ( 'arduino.upload.verbose' , true ) ,
103
106
this . preferenceService . get < boolean > ( 'arduino.upload.verify' , true ) ,
104
107
this . preferenceService . get < boolean > ( 'arduino.language.log' , true ) ,
@@ -114,6 +117,7 @@ export class SettingsService {
114
117
interfaceScale,
115
118
// checkForUpdates,
116
119
verboseOnCompile,
120
+ compilerWarnings,
117
121
verboseOnUpload,
118
122
verifyAfterUpload,
119
123
enableLsLogs,
@@ -175,6 +179,7 @@ export class SettingsService {
175
179
interfaceScale,
176
180
// checkForUpdates,
177
181
verboseOnCompile,
182
+ compilerWarnings,
178
183
verboseOnUpload,
179
184
verifyAfterUpload,
180
185
enableLsLogs,
@@ -198,6 +203,7 @@ export class SettingsService {
198
203
this . preferenceService . set ( 'arduino.window.zoomLevel' , interfaceScale , PreferenceScope . User ) ,
199
204
// this.preferenceService.set('arduino.ide.autoUpdate', checkForUpdates, PreferenceScope.User),
200
205
this . preferenceService . set ( 'arduino.compile.verbose' , verboseOnCompile , PreferenceScope . User ) ,
206
+ this . preferenceService . set ( 'arduino.compile.warnings' , compilerWarnings , PreferenceScope . User ) ,
201
207
this . preferenceService . set ( 'arduino.upload.verbose' , verboseOnUpload , PreferenceScope . User ) ,
202
208
this . preferenceService . set ( 'arduino.upload.verify' , verifyAfterUpload , PreferenceScope . User ) ,
203
209
this . preferenceService . set ( 'arduino.language.log' , enableLsLogs , PreferenceScope . User ) ,
@@ -267,6 +273,7 @@ export class SettingsComponent extends React.Component<SettingsComponent.Props,
267
273
< div className = 'flex-line' > Interface scale:</ div >
268
274
< div className = 'flex-line' > Theme:</ div >
269
275
< div className = 'flex-line' > Show verbose output during:</ div >
276
+ < div className = 'flex-line' > Compiler warnings:</ div >
270
277
</ div >
271
278
< div className = 'column' >
272
279
< div className = 'flex-line' >
@@ -321,6 +328,14 @@ export class SettingsComponent extends React.Component<SettingsComponent.Props,
321
328
upload
322
329
</ label >
323
330
</ div >
331
+ < div className = 'flex-line' >
332
+ < select
333
+ className = 'theia-select'
334
+ value = { this . state . compilerWarnings }
335
+ onChange = { this . compilerWarningsDidChange } >
336
+ { CompilerWarningLiterals . map ( value => < option key = { value } value = { value } > { value } </ option > ) }
337
+ </ select >
338
+ </ div >
324
339
</ div >
325
340
</ div >
326
341
< label className = 'flex-line' >
@@ -544,6 +559,14 @@ export class SettingsComponent extends React.Component<SettingsComponent.Props,
544
559
}
545
560
} ;
546
561
562
+ protected compilerWarningsDidChange = ( event : React . ChangeEvent < HTMLSelectElement > ) => {
563
+ const { selectedIndex } = event . target . options ;
564
+ const compilerWarnings = CompilerWarningLiterals [ selectedIndex ] ;
565
+ if ( compilerWarnings ) {
566
+ this . setState ( { compilerWarnings } ) ;
567
+ }
568
+ } ;
569
+
547
570
protected verboseOnCompileDidChange = ( event : React . ChangeEvent < HTMLInputElement > ) => {
548
571
this . setState ( { verboseOnCompile : event . target . checked } ) ;
549
572
} ;
0 commit comments