Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions packages/components/src/recycle-tree/basic/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ export const BasicRecycleTree: React.FC<IBasicRecycleTreeProps> = ({
useEffect(() => {
ensureLoaded();
const disposable = treeService.current.onDidUpdateTreeModel(async (model?: BasicTreeModel) => {
await model?.root.ensureLoaded();
await model?.ensureReady;
setModel(model);
});
const handleBlur = () => {
Expand All @@ -94,7 +94,7 @@ export const BasicRecycleTree: React.FC<IBasicRecycleTreeProps> = ({
const ensureLoaded = async () => {
const model = treeService.current.model;
if (model) {
await model.root.ensureLoaded();
await model.ensureReady;
}
setModel(model);
};
Expand Down
3 changes: 0 additions & 3 deletions packages/components/src/recycle-tree/tree/Tree.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,6 @@ export abstract class Tree implements ITree {

set root(root: CompositeTreeNode | undefined) {
this._root = root;
if (this.root) {
this.root.ensureLoaded();
}
}

protected fireChanged(): void {
Expand Down
8 changes: 8 additions & 0 deletions packages/components/src/recycle-tree/tree/model/TreeModel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,28 @@ import { ISerializableState, TreeStateManager, TreeStateWatcher } from './treeSt
export class TreeModel {
private _state: TreeStateManager;
private _root: CompositeTreeNode;
private _ensureReady: Promise<boolean | void>;

private onChangeEmitter: Emitter<void> = new Emitter();

get onChange(): Event<void> {
return this.onChangeEmitter.event;
}

get ensureReady() {
return this._ensureReady;
}

get root() {
return this._root;
}

set root(root: CompositeTreeNode) {
this._root = root;
this.initState(root);
if (this.root) {
this._ensureReady = this.root.ensureLoaded();
Comment thread
erha19 marked this conversation as resolved.
}
}

get state() {
Expand Down
5 changes: 2 additions & 3 deletions packages/debug/src/browser/editor/debug-hover.view.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ import { DebugHoverModel } from './debug-hover-model';
import { DebugHoverTreeModelService, IDebugHoverUpdateData } from './debug-hover-tree.model.service';
import styles from './debug-hover.module.less';


export const DebugHoverView = observer(() => {
const debugHoverTreeModelService: DebugHoverTreeModelService = useInjectable(DebugHoverTreeModelService);
const DEFAULT_LAYOUT_HEIGHT = 250;
Expand All @@ -31,7 +30,7 @@ export const DebugHoverView = observer(() => {
debugHoverTreeModelService.onDidUpdateTreeModelOrVariable(async (data: IDebugHoverUpdateData) => {
const { treeModel, variable } = data;
if (treeModel) {
await treeModel.root.ensureLoaded();
await treeModel.ensureReady;
}
setModel({ treeModel, variable });
});
Expand All @@ -58,7 +57,7 @@ export const DebugHoverView = observer(() => {

const ensureLoaded = async () => {
if (debugHoverTreeModelService.treeModel) {
await debugHoverTreeModelService.treeModel!.root.ensureLoaded();
await debugHoverTreeModelService.treeModel.ensureReady;
setModel({ treeModel: debugHoverTreeModelService.treeModel });
}
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ export const DebugConsoleView = observer(({ viewState }: { viewState: ViewState
disposer.addDispose(
consoleModel.onDidUpdateTreeModel(async (model: IDebugConsoleModel) => {
if (model) {
await model.treeModel!.root.ensureLoaded();
await model.treeModel.ensureReady;
disposer.addDispose(
model.treeModel.root.watcher.on(TreeNodeEvent.WillChangeExpansionState, () => {
consoleModel.treeHandle.layoutItem();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ export class DebugVariablesModelService {
if (this.viewModel && this.viewModel.currentSession && !this.viewModel.currentSession.terminated) {
const currentTreeModel = await this.initTreeModel(this.viewModel.currentSession);
this._activeTreeModel = currentTreeModel;
await this._activeTreeModel?.root.ensureLoaded();
await this._activeTreeModel?.ensureReady;
/**
* 如果变量面板全部都是折叠状态
* 则需要找到当前 scope 作用域的 expensive 为 false 的变量列表,并默认展开它们
Expand Down
5 changes: 2 additions & 3 deletions packages/debug/src/browser/view/watch/debug-watch.view.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ import {
import { DebugWatchModelService, IWatchNode } from './debug-watch-tree.model.service';
import styles from './debug-watch.module.less';


export const DEBUG_WATCH_TREE_FIELD_NAME = 'DEBUG_WATCH_TREE_FIELD';

export const DebugWatchView = observer(({ viewState }: React.PropsWithChildren<{ viewState: ViewState }>) => {
Expand All @@ -52,7 +51,7 @@ export const DebugWatchView = observer(({ viewState }: React.PropsWithChildren<{
}),
);
if (treeModel) {
treeModel.root.ensureLoaded().then(() => {
treeModel.ensureReady.then(() => {
if (shouldUpdate) {
setModel(treeModel);
}
Expand All @@ -61,7 +60,7 @@ export const DebugWatchView = observer(({ viewState }: React.PropsWithChildren<{
disposableCollection.push(
debugWatchModelService.onDidUpdateTreeModel(async (model: TreeModel) => {
if (model) {
await model.root.ensureLoaded();
await model.ensureReady;
}
if (shouldUpdate) {
setModel(model);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@ describe('FileTree should be work while on single workspace model', () => {
// wait for init fileTree model
await fileTreeModelService.whenReady;
// make sure the root has been loaded
await fileTreeModelService.treeModel.root.ensureLoaded();
await fileTreeModelService.treeModel.ensureReady;
contextKey.initScopedContext(document.createElement('div'));
fileTreeService = injector.get<FileTreeService>(IFileTreeService);
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ export const FileDialog = ({ options, model, isOpenDialog }: React.PropsWithChil
await model.whenReady;
// 确保数据初始化完毕,减少初始化数据过程中多次刷新视图
// 这里需要重新取一下treeModel的值确保为最新的TreeModel
await model.treeModel.root.ensureLoaded();
await model.treeModel.ensureReady;
setSelectPath((model.treeModel.root as Directory).uri.codeUri.fsPath);
setIsReady(true);
};
Expand Down
7 changes: 3 additions & 4 deletions packages/file-tree-next/src/browser/file-tree.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ export const FileTree = ({ viewState }: PropsWithChildren<{ viewState: ViewState
setIsLoading(true);
if (treeModel) {
// 确保数据初始化完毕,减少初始化数据过程中多次刷新视图
await treeModel.root.ensureLoaded();
await treeModel.ensureReady;
}
setModel(treeModel);
setIsLoading(false);
Expand Down Expand Up @@ -271,10 +271,9 @@ export const FileTree = ({ viewState }: PropsWithChildren<{ viewState: ViewState
return;
}
if (fileTreeModelService.treeModel) {
setModel(fileTreeModelService.treeModel);
// 确保数据初始化完毕,减少初始化数据过程中多次刷新视图
// 这里需要重新取一下treeModel的值确保为最新的TreeModel
await fileTreeModelService.treeModel.root.ensureLoaded();
await fileTreeModelService.treeModel.ensureReady;
setModel(fileTreeModelService.treeModel);
if (token.isCancellationRequested) {
return;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ describe('OpenedEditorModelService should be work', () => {
openedEditorModelService = injector.get(OpenedEditorModelService);
openedEditorService = injector.get(OpenedEditorService);
await openedEditorModelService.whenReady;
await openedEditorModelService.treeModel?.root.ensureLoaded();
await openedEditorModelService.treeModel?.ensureReady;
});

afterEach(() => {
Expand Down
4 changes: 2 additions & 2 deletions packages/opened-editor/src/browser/opened-editor.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ export const ExplorerOpenEditorPanel = ({ viewState }: React.PropsWithChildren<{
setModel(openedEditorModelService.treeModel);
// 确保数据初始化完毕,减少初始化数据过程中多次刷新视图
// 这里需要重新取一下treeModel的值确保为最新的TreeModel
await openedEditorModelService.treeModel.root.ensureLoaded();
await openedEditorModelService.treeModel.ensureReady;
if (token.isCancellationRequested) {
return;
}
Expand All @@ -88,7 +88,7 @@ export const ExplorerOpenEditorPanel = ({ viewState }: React.PropsWithChildren<{
setIsLoading(true);
if (treeModel) {
// 确保数据初始化完毕,减少初始化数据过程中多次刷新视图
await treeModel.root.ensureLoaded();
await treeModel.ensureReady;
}
setModel(treeModel);
setIsLoading(false);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ describe('OutlineTreeModelService', () => {

await outlineTreeModelService.whenReady;

await outlineTreeModelService.treeModel.root.ensureLoaded();
await outlineTreeModelService.treeModel.ensureReady;
});

afterAll(() => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ export class OutlineModelService {
return;
}
const treeModel = this.injector.get<any>(OutlineTreeModel, [root]);
await treeModel.root.ensureLoaded();
await treeModel.ensureReady;
this._activeTreeModel = treeModel;
// 初始化节点装饰器
const decoration = this.initDecorations(root);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ export const SCMResourceTree: React.FC<{
if (scmTreeModelService.treeModel) {
// 确保数据初始化完毕,减少初始化数据过程中多次刷新视图
// 这里需要重新取一下treeModel的值确保为最新的TreeModel
await scmTreeModelService.treeModel.root.ensureLoaded();
await scmTreeModelService.treeModel.ensureReady;
}
setIsReady(true);
})();
Expand All @@ -50,7 +50,7 @@ export const SCMResourceTree: React.FC<{
await scmTreeModelService.whenReady;
if (model) {
// 确保数据初始化完毕,减少初始化数据过程中多次刷新视图
await scmTreeModelService.treeModel.root.ensureLoaded();
await scmTreeModelService.treeModel.ensureReady;
}
setModel(model);
});
Expand Down