@@ -69,7 +69,9 @@ class Item extends BreadcrumbsItem {
6969 return false ;
7070 }
7171 if ( this . element instanceof FileElement && other . element instanceof FileElement ) {
72- return isEqual ( this . element . uri , other . element . uri , false ) ;
72+ return ( isEqual ( this . element . uri , other . element . uri , false ) &&
73+ this . options . showFileIcons === other . options . showFileIcons &&
74+ this . options . showSymbolIcons === other . options . showSymbolIcons ) ;
7375 }
7476 if ( this . element instanceof TreeElement && other . element instanceof TreeElement ) {
7577 return this . element . id === other . element . id ;
@@ -143,6 +145,7 @@ export class BreadcrumbsControl {
143145 private readonly _ckBreadcrumbsActive : IContextKey < boolean > ;
144146
145147 private readonly _cfUseQuickPick : BreadcrumbsConfig < boolean > ;
148+ private readonly _cfShowIcons : BreadcrumbsConfig < boolean > ;
146149
147150 readonly domNode : HTMLDivElement ;
148151 private readonly _widget : BreadcrumbsWidget ;
@@ -185,6 +188,7 @@ export class BreadcrumbsControl {
185188 this . _ckBreadcrumbsActive = BreadcrumbsControl . CK_BreadcrumbsActive . bindTo ( this . _contextKeyService ) ;
186189
187190 this . _cfUseQuickPick = BreadcrumbsConfig . UseQuickPick . bindTo ( _configurationService ) ;
191+ this . _cfShowIcons = BreadcrumbsConfig . Icons . bindTo ( _configurationService ) ;
188192
189193 this . _disposables . add ( breadcrumbsService . register ( this . _editorGroup . id , this . _widget ) ) ;
190194 }
@@ -196,6 +200,7 @@ export class BreadcrumbsControl {
196200 this . _ckBreadcrumbsVisible . reset ( ) ;
197201 this . _ckBreadcrumbsActive . reset ( ) ;
198202 this . _cfUseQuickPick . dispose ( ) ;
203+ this . _cfShowIcons . dispose ( ) ;
199204 this . _widget . dispose ( ) ;
200205 this . domNode . remove ( ) ;
201206 }
@@ -246,15 +251,23 @@ export class BreadcrumbsControl {
246251 dom . toggleClass ( this . domNode , 'backslash-path' , this . _labelService . getSeparator ( uri . scheme , uri . authority ) === '\\' ) ;
247252
248253 const updateBreadcrumbs = ( ) => {
249- const items = model . getElements ( ) . map ( element => new Item ( element , this . _options , this . _instantiationService ) ) ;
254+ const showIcons = this . _cfShowIcons . getValue ( ) ;
255+ const options : IBreadcrumbsControlOptions = {
256+ ...this . _options ,
257+ showFileIcons : this . _options . showFileIcons && showIcons ,
258+ showSymbolIcons : this . _options . showSymbolIcons && showIcons
259+ } ;
260+ const items = model . getElements ( ) . map ( element => new Item ( element , options , this . _instantiationService ) ) ;
250261 this . _widget . setItems ( items ) ;
251262 this . _widget . reveal ( items [ items . length - 1 ] ) ;
252263 } ;
253264 const listener = model . onDidUpdate ( updateBreadcrumbs ) ;
265+ const configListener = this . _cfShowIcons . onDidChange ( updateBreadcrumbs ) ;
254266 updateBreadcrumbs ( ) ;
255267 this . _breadcrumbsDisposables . clear ( ) ;
256268 this . _breadcrumbsDisposables . add ( model ) ;
257269 this . _breadcrumbsDisposables . add ( listener ) ;
270+ this . _breadcrumbsDisposables . add ( configListener ) ;
258271
259272 // close picker on hide/update
260273 this . _breadcrumbsDisposables . add ( {
0 commit comments