@@ -18,7 +18,7 @@ import { DisposableCollection } from '@theia/core/lib/common/disposable';
1818import { FrontendApplicationStateService } from '@theia/core/lib/browser/frontend-application-state' ;
1919import { AbstractDialog , DialogProps , PreferenceService , PreferenceScope , DialogError , ReactWidget } from '@theia/core/lib/browser' ;
2020import { Index } from '../common/types' ;
21- import { ConfigService , FileSystemExt , Network , ProxySettings } from '../common/protocol' ;
21+ import { CompilerWarnings , CompilerWarningLiterals , ConfigService , FileSystemExt , Network , ProxySettings } from '../common/protocol' ;
2222
2323export interface Settings extends Index {
2424 editorFontSize : number ; // `editor.fontSize`
@@ -29,6 +29,7 @@ export interface Settings extends Index {
2929 interfaceScale : number ; // `arduino.window.zoomLevel` https://github.com/eclipse-theia/theia/issues/8751
3030 checkForUpdates ?: boolean ; // `arduino.ide.autoUpdate`
3131 verboseOnCompile : boolean ; // `arduino.compile.verbose`
32+ compilerWarnings : CompilerWarnings ; // `arduino.compile.warnings`
3233 verboseOnUpload : boolean ; // `arduino.upload.verbose`
3334 verifyAfterUpload : boolean ; // `arduino.upload.verify`
3435 enableLsLogs : boolean ; // `arduino.language.log`
@@ -87,6 +88,7 @@ export class SettingsService {
8788 interfaceScale ,
8889 // checkForUpdates,
8990 verboseOnCompile ,
91+ compilerWarnings ,
9092 verboseOnUpload ,
9193 verifyAfterUpload ,
9294 enableLsLogs ,
@@ -99,6 +101,7 @@ export class SettingsService {
99101 this . preferenceService . get < number > ( 'arduino.window.zoomLevel' , 0 ) ,
100102 // this.preferenceService.get<string>('arduino.ide.autoUpdate', true),
101103 this . preferenceService . get < boolean > ( 'arduino.compile.verbose' , true ) ,
104+ this . preferenceService . get < any > ( 'arduino.compile.warnings' , 'None' ) ,
102105 this . preferenceService . get < boolean > ( 'arduino.upload.verbose' , true ) ,
103106 this . preferenceService . get < boolean > ( 'arduino.upload.verify' , true ) ,
104107 this . preferenceService . get < boolean > ( 'arduino.language.log' , true ) ,
@@ -114,6 +117,7 @@ export class SettingsService {
114117 interfaceScale,
115118 // checkForUpdates,
116119 verboseOnCompile,
120+ compilerWarnings,
117121 verboseOnUpload,
118122 verifyAfterUpload,
119123 enableLsLogs,
@@ -175,6 +179,7 @@ export class SettingsService {
175179 interfaceScale,
176180 // checkForUpdates,
177181 verboseOnCompile,
182+ compilerWarnings,
178183 verboseOnUpload,
179184 verifyAfterUpload,
180185 enableLsLogs,
@@ -198,6 +203,7 @@ export class SettingsService {
198203 this . preferenceService . set ( 'arduino.window.zoomLevel' , interfaceScale , PreferenceScope . User ) ,
199204 // this.preferenceService.set('arduino.ide.autoUpdate', checkForUpdates, PreferenceScope.User),
200205 this . preferenceService . set ( 'arduino.compile.verbose' , verboseOnCompile , PreferenceScope . User ) ,
206+ this . preferenceService . set ( 'arduino.compile.warnings' , compilerWarnings , PreferenceScope . User ) ,
201207 this . preferenceService . set ( 'arduino.upload.verbose' , verboseOnUpload , PreferenceScope . User ) ,
202208 this . preferenceService . set ( 'arduino.upload.verify' , verifyAfterUpload , PreferenceScope . User ) ,
203209 this . preferenceService . set ( 'arduino.language.log' , enableLsLogs , PreferenceScope . User ) ,
@@ -267,6 +273,7 @@ export class SettingsComponent extends React.Component<SettingsComponent.Props,
267273 < div className = 'flex-line' > Interface scale:</ div >
268274 < div className = 'flex-line' > Theme:</ div >
269275 < div className = 'flex-line' > Show verbose output during:</ div >
276+ < div className = 'flex-line' > Compiler warnings:</ div >
270277 </ div >
271278 < div className = 'column' >
272279 < div className = 'flex-line' >
@@ -321,6 +328,14 @@ export class SettingsComponent extends React.Component<SettingsComponent.Props,
321328 upload
322329 </ label >
323330 </ 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 >
324339 </ div >
325340 </ div >
326341 < label className = 'flex-line' >
@@ -544,6 +559,14 @@ export class SettingsComponent extends React.Component<SettingsComponent.Props,
544559 }
545560 } ;
546561
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+
547570 protected verboseOnCompileDidChange = ( event : React . ChangeEvent < HTMLInputElement > ) => {
548571 this . setState ( { verboseOnCompile : event . target . checked } ) ;
549572 } ;
0 commit comments