Skip to content

Commit d6a59b7

Browse files
authored
debug: fix mismatched indentation for folders in loaded scripts (microsoft#236750)
* debug: fix mismatched indentation for folders in loaded scripts Fixes microsoft#228241 * fix test
1 parent d4de5ce commit d6a59b7

File tree

3 files changed

+44
-38
lines changed

3 files changed

+44
-38
lines changed

src/vs/workbench/contrib/debug/browser/baseDebugView.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ export interface IVariableTemplateData {
5151

5252
export function renderViewTree(container: HTMLElement): HTMLElement {
5353
const treeContainer = $('.');
54-
treeContainer.classList.add('debug-view-content');
54+
treeContainer.classList.add('debug-view-content', 'file-icon-themable-tree');
5555
container.appendChild(treeContainer);
5656
return treeContainer;
5757
}

src/vs/workbench/contrib/debug/browser/loadedScriptsView.ts

Lines changed: 42 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -3,47 +3,46 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6-
import * as nls from '../../../../nls.js';
7-
import { IViewletViewOptions } from '../../../browser/parts/views/viewsViewlet.js';
8-
import { normalize, isAbsolute, posix } from '../../../../base/common/path.js';
9-
import { ViewPane, ViewAction } from '../../../browser/parts/views/viewPane.js';
10-
import { IInstantiationService, ServicesAccessor } from '../../../../platform/instantiation/common/instantiation.js';
11-
import { IContextMenuService } from '../../../../platform/contextview/browser/contextView.js';
12-
import { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';
13-
import { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';
14-
import { renderViewTree } from './baseDebugView.js';
15-
import { IDebugSession, IDebugService, CONTEXT_LOADED_SCRIPTS_ITEM_TYPE, LOADED_SCRIPTS_VIEW_ID } from '../common/debug.js';
16-
import { Source } from '../common/debugSource.js';
17-
import { IWorkspaceContextService, IWorkspaceFolder } from '../../../../platform/workspace/common/workspace.js';
18-
import { IContextKey, IContextKeyService, ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';
19-
import { normalizeDriveLetter, tildify } from '../../../../base/common/labels.js';
20-
import { isWindows } from '../../../../base/common/platform.js';
21-
import { URI } from '../../../../base/common/uri.js';
22-
import { ltrim } from '../../../../base/common/strings.js';
23-
import { RunOnceScheduler } from '../../../../base/common/async.js';
24-
import { ResourceLabels, IResourceLabelProps, IResourceLabelOptions, IResourceLabel } from '../../../browser/labels.js';
25-
import { FileKind } from '../../../../platform/files/common/files.js';
266
import { IListVirtualDelegate } from '../../../../base/browser/ui/list/list.js';
27-
import { ITreeNode, ITreeFilter, TreeVisibility, TreeFilterResult, ITreeElement } from '../../../../base/browser/ui/tree/tree.js';
287
import { IListAccessibilityProvider } from '../../../../base/browser/ui/list/listWidget.js';
29-
import { IEditorService } from '../../../services/editor/common/editorService.js';
30-
import { WorkbenchCompressibleObjectTree } from '../../../../platform/list/browser/listService.js';
31-
import { dispose } from '../../../../base/common/lifecycle.js';
32-
import { createMatches, FuzzyScore } from '../../../../base/common/filters.js';
33-
import { DebugContentProvider } from '../common/debugContentProvider.js';
34-
import { ILabelService } from '../../../../platform/label/common/label.js';
8+
import { TreeFindMode } from '../../../../base/browser/ui/tree/abstractTree.js';
359
import type { ICompressedTreeNode } from '../../../../base/browser/ui/tree/compressedObjectTreeModel.js';
3610
import type { ICompressibleTreeRenderer } from '../../../../base/browser/ui/tree/objectTree.js';
37-
import { registerAction2, MenuId } from '../../../../platform/actions/common/actions.js';
11+
import { ITreeElement, ITreeFilter, ITreeNode, TreeFilterResult, TreeVisibility } from '../../../../base/browser/ui/tree/tree.js';
12+
import { RunOnceScheduler } from '../../../../base/common/async.js';
3813
import { Codicon } from '../../../../base/common/codicons.js';
39-
40-
import { IViewDescriptorService } from '../../../common/views.js';
14+
import { createMatches, FuzzyScore } from '../../../../base/common/filters.js';
15+
import { normalizeDriveLetter, tildify } from '../../../../base/common/labels.js';
16+
import { dispose } from '../../../../base/common/lifecycle.js';
17+
import { isAbsolute, normalize, posix } from '../../../../base/common/path.js';
18+
import { isWindows } from '../../../../base/common/platform.js';
19+
import { ltrim } from '../../../../base/common/strings.js';
20+
import { URI } from '../../../../base/common/uri.js';
21+
import * as nls from '../../../../nls.js';
22+
import { MenuId, registerAction2 } from '../../../../platform/actions/common/actions.js';
23+
import { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';
24+
import { ContextKeyExpr, IContextKey, IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';
25+
import { IContextMenuService } from '../../../../platform/contextview/browser/contextView.js';
26+
import { FileKind } from '../../../../platform/files/common/files.js';
27+
import { IHoverService } from '../../../../platform/hover/browser/hover.js';
28+
import { IInstantiationService, ServicesAccessor } from '../../../../platform/instantiation/common/instantiation.js';
29+
import { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';
30+
import { ILabelService } from '../../../../platform/label/common/label.js';
31+
import { WorkbenchCompressibleObjectTree } from '../../../../platform/list/browser/listService.js';
4132
import { IOpenerService } from '../../../../platform/opener/common/opener.js';
42-
import { IThemeService } from '../../../../platform/theme/common/themeService.js';
4333
import { ITelemetryService } from '../../../../platform/telemetry/common/telemetry.js';
34+
import { IFileIconTheme, IThemeService } from '../../../../platform/theme/common/themeService.js';
35+
import { IWorkspaceContextService, IWorkspaceFolder } from '../../../../platform/workspace/common/workspace.js';
36+
import { IResourceLabel, IResourceLabelOptions, IResourceLabelProps, ResourceLabels } from '../../../browser/labels.js';
37+
import { ViewAction, ViewPane } from '../../../browser/parts/views/viewPane.js';
38+
import { IViewletViewOptions } from '../../../browser/parts/views/viewsViewlet.js';
39+
import { IViewDescriptorService } from '../../../common/views.js';
40+
import { IEditorService } from '../../../services/editor/common/editorService.js';
4441
import { IPathService } from '../../../services/path/common/pathService.js';
45-
import { TreeFindMode } from '../../../../base/browser/ui/tree/abstractTree.js';
46-
import { IHoverService } from '../../../../platform/hover/browser/hover.js';
42+
import { CONTEXT_LOADED_SCRIPTS_ITEM_TYPE, IDebugService, IDebugSession, LOADED_SCRIPTS_VIEW_ID } from '../common/debug.js';
43+
import { DebugContentProvider } from '../common/debugContentProvider.js';
44+
import { Source } from '../common/debugSource.js';
45+
import { renderViewTree } from './baseDebugView.js';
4746

4847
const NEW_STYLE_COMPRESS = true;
4948

@@ -439,7 +438,7 @@ export class LoadedScriptsView extends ViewPane {
439438
@IOpenerService openerService: IOpenerService,
440439
@IThemeService themeService: IThemeService,
441440
@ITelemetryService telemetryService: ITelemetryService,
442-
@IHoverService hoverService: IHoverService
441+
@IHoverService hoverService: IHoverService,
443442
) {
444443
super(options, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, telemetryService, hoverService);
445444
this.loadedScriptsItemType = CONTEXT_LOADED_SCRIPTS_ITEM_TYPE.bindTo(contextKeyService);
@@ -449,8 +448,7 @@ export class LoadedScriptsView extends ViewPane {
449448
super.renderBody(container);
450449

451450
this.element.classList.add('debug-pane');
452-
container.classList.add('debug-loaded-scripts');
453-
container.classList.add('show-file-icons');
451+
container.classList.add('debug-loaded-scripts', 'show-file-icons');
454452

455453
this.treeContainer = renderViewTree(container);
456454

@@ -461,6 +459,14 @@ export class LoadedScriptsView extends ViewPane {
461459
this.treeLabels = this.instantiationService.createInstance(ResourceLabels, { onDidChangeVisibility: this.onDidChangeBodyVisibility });
462460
this._register(this.treeLabels);
463461

462+
const onFileIconThemeChange = (fileIconTheme: IFileIconTheme) => {
463+
this.treeContainer.classList.toggle('align-icons-and-twisties', fileIconTheme.hasFileIcons && !fileIconTheme.hasFolderIcons);
464+
this.treeContainer.classList.toggle('hide-arrows', fileIconTheme.hidesExplorerArrows === true);
465+
};
466+
467+
this._register(this.themeService.onDidFileIconThemeChange(onFileIconThemeChange));
468+
onFileIconThemeChange(this.themeService.getFileIconTheme());
469+
464470
this.tree = this.instantiationService.createInstance(WorkbenchCompressibleObjectTree<LoadedScriptsItem, FuzzyScore>,
465471
'LoadedScriptsView',
466472
this.treeContainer,

src/vs/workbench/contrib/debug/test/browser/baseDebugView.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ suite('Debug - Base Debug View', () => {
106106
const container = $('.container');
107107
const treeContainer = renderViewTree(container);
108108

109-
assert.strictEqual(treeContainer.className, 'debug-view-content');
109+
assert.strictEqual(treeContainer.className, 'debug-view-content file-icon-themable-tree');
110110
assert.strictEqual(container.childElementCount, 1);
111111
assert.strictEqual(container.firstChild, treeContainer);
112112
assert.strictEqual(dom.isHTMLDivElement(treeContainer), true);

0 commit comments

Comments
 (0)