提交 c0ee1a95 编写于 作者: J Joao Moreno

sample compressed tree

上级 5bbf9201
......@@ -341,17 +341,8 @@
expandall.onclick = () => perf('expand all', () => tree.expandAll());
collapseall.onclick = () => perf('collapse all', () => tree.collapseAll());
renderwidth.onclick = () => perf('renderwidth', () => tree.layoutWidth(Math.random()));
const xhr = new XMLHttpRequest();
xhr.open('GET', '/api/ls?path=');
xhr.send();
xhr.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
perf('splice', () => tree.setChildren(null, [JSON.parse(this.responseText)]));
treeFilter.updatePattern();
}
};
tree.setChildren(null, [{ "element": "core", "children": [{ "element": "org", "children": [{ "element": "eclipse", "children": [{ "element": "debug", "children": [{ "element": "core", "children": [{ "element": "DebugEvent.java" }, { "element": "DebugException.java" }, { "element": "DebugPlugin.java" }, { "element": "IBreakpointListener.java" }, { "element": "IBreakpointManager.java" }, { "element": "IBreakpointManagerListener.java" }, { "element": "IBreakpointsListener.java" }, { "element": "IDebugEventFilter.java" }, { "element": "IDebugEventSetListener.java" }, { "element": "IExpressionListener.java" }, { "element": "IExpressionManager.java" }, { "element": "IExpressionsListener.java" }, { "element": "ILaunch.java" }, { "element": "ILaunchConfiguration.java" }, { "element": "ILaunchConfigurationListener.java" }, { "element": "ILaunchConfigurationMigrationDelegate.java" }, { "element": "ILaunchConfigurationType.java" }, { "element": "ILaunchConfigurationWorkingCopy.java" }, { "element": "ILaunchDelegate.java" }, { "element": "ILaunchListener.java" }, { "element": "ILaunchManager.java" }, { "element": "ILaunchMode.java" }, { "element": "ILaunchesListener.java" }, { "element": "ILaunchesListener2.java" }, { "element": "ILogicalStructureProvider.java" }, { "element": "ILogicalStructureType.java" }, { "element": "IMemoryBlockListener.java" }, { "element": "IMemoryBlockManager.java" }, { "element": "IProcessFactory.java" }, { "element": "IPrototypeAttributesLabelProvider.java" }, { "element": "IRequest.java" }, { "element": "IStatusHandler.java" }, { "element": "IStreamListener.java" }, { "element": "Launch.java" }, { "element": "RefreshUtil.java" }, { "element": "commands", "children": [{ "element": "AbstractDebugCommand.java" }, { "element": "IDebugCommandHandler.java" }, { "element": "IDebugCommandRequest.java" }, { "element": "IDisconnectHandler.java" }, { "element": "IDropToFrameHandler.java" }, { "element": "IEnabledStateRequest.java" }, { "element": "IRestartHandler.java" }, { "element": "IResumeHandler.java" }, { "element": "IStepFiltersHandler.java" }, { "element": "IStepIntoHandler.java" }, { "element": "IStepOverHandler.java" }, { "element": "IStepReturnHandler.java" }, { "element": "ISuspendHandler.java" }, { "element": "ITerminateHandler.java" }, { "element": "package.html" }] }, { "element": "model", "children": [{ "element": "Breakpoint.java" }, { "element": "DebugElement.java" }, { "element": "IBreakpoint.java" }, { "element": "IBreakpointImportParticipant.java" }, { "element": "IDebugElement.java" }, { "element": "IDebugModelProvider.java" }, { "element": "IDebugTarget.java" }, { "element": "IDisconnect.java" }, { "element": "IDropToFrame.java" }, { "element": "IErrorReportingExpression.java" }, { "element": "IExpression.java" }, { "element": "IFilteredStep.java" }, { "element": "IFlushableStreamMonitor.java" }, { "element": "IIndexedValue.java" }, { "element": "ILaunchConfigurationDelegate.java" }, { "element": "ILaunchConfigurationDelegate2.java" }, { "element": "ILineBreakpoint.java" }, { "element": "ILogicalStructureTypeDelegate.java" }, { "element": "ILogicalStructureTypeDelegate2.java" }, { "element": "IMemoryBlock.java" }, { "element": "IMemoryBlockExtension.java" }, { "element": "IMemoryBlockRetrieval.java" }, { "element": "IMemoryBlockRetrievalExtension.java" }, { "element": "IPersistableSourceLocator.java" }, { "element": "IProcess.java" }, { "element": "IRegister.java" }, { "element": "IRegisterGroup.java" }, { "element": "ISourceLocator.java" }, { "element": "IStackFrame.java" }, { "element": "IStep.java" }, { "element": "IStepFilter.java" }, { "element": "IStepFilters.java" }, { "element": "IStreamMonitor.java" }, { "element": "IStreamsProxy.java" }, { "element": "IStreamsProxy2.java" }, { "element": "ISuspendResume.java" }, { "element": "ITerminate.java" }, { "element": "IThread.java" }, { "element": "ITriggerPoint.java" }, { "element": "IValue.java" }, { "element": "IValueModification.java" }, { "element": "IVariable.java" }, { "element": "IWatchExpression.java" }, { "element": "IWatchExpressionDelegate.java" }, { "element": "IWatchExpressionListener.java" }, { "element": "IWatchExpressionResult.java" }, { "element": "IWatchpoint.java" }, { "element": "LaunchConfigurationDelegate.java" }, { "element": "LineBreakpoint.java" }, { "element": "MemoryByte.java" }, { "element": "RuntimeProcess.java" }, { "element": "package.html" }] }, { "element": "package.html" }, { "element": "sourcelookup", "children": [{ "element": "AbstractSourceLookupDirector.java" }, { "element": "AbstractSourceLookupParticipant.java" }, { "element": "IPersistableSourceLocator2.java" }, { "element": "ISourceContainer.java" }, { "element": "ISourceContainerType.java" }, { "element": "ISourceContainerTypeDelegate.java" }, { "element": "ISourceLookupDirector.java" }, { "element": "ISourceLookupParticipant.java" }, { "element": "ISourcePathComputer.java" }, { "element": "ISourcePathComputerDelegate.java" }, { "element": "containers", "children": [{ "element": "AbstractSourceContainer.java" }, { "element": "AbstractSourceContainerTypeDelegate.java" }, { "element": "ArchiveSourceContainer.java" }, { "element": "CompositeSourceContainer.java" }, { "element": "ContainerSourceContainer.java" }, { "element": "DefaultSourceContainer.java" }, { "element": "DirectorySourceContainer.java" }, { "element": "ExternalArchiveSourceContainer.java" }, { "element": "FolderSourceContainer.java" }, { "element": "LocalFileStorage.java" }, { "element": "ProjectSourceContainer.java" }, { "element": "WorkspaceSourceContainer.java" }, { "element": "ZipEntryStorage.java" }, { "element": "package.html" }] }, { "element": "package.html" }] }] }, { "element": "internal", "children": [{ "element": "core", "children": [{ "element": "BreakpointImportParticipantDelegate.java" }, { "element": "BreakpointManager.java" }, { "element": "DebugCoreMessages.java" }, { "element": "DebugCoreMessages.properties" }, { "element": "DebugOptions.java" }, { "element": "DebugPreferenceInitializer.java" }, { "element": "EnvironmentVariableResolver.java" }, { "element": "ExpressionManager.java" }, { "element": "IConfigurationElementConstants.java" }, { "element": "IExpressionsListener2.java" }, { "element": "IInternalDebugCoreConstants.java" }, { "element": "IMementoConstants.java" }, { "element": "InputStreamMonitor.java" }, { "element": "LaunchConfiguration.java" }, { "element": "LaunchConfigurationComparator.java" }, { "element": "LaunchConfigurationInfo.java" }, { "element": "LaunchConfigurationType.java" }, { "element": "LaunchConfigurationWorkingCopy.java" }, { "element": "LaunchDelegate.java" }, { "element": "LaunchManager.java" }, { "element": "LaunchMode.java" }, { "element": "LaunchablePropertyTester.java" }, { "element": "LogicalStructureManager.java" }, { "element": "LogicalStructureProvider.java" }, { "element": "LogicalStructureType.java" }, { "element": "MemoryBlockManager.java" }, { "element": "NullStreamsProxy.java" }, { "element": "OutputStreamMonitor.java" }, { "element": "Preferences.java" }, { "element": "PreferredDelegateModifyListener.java" }, { "element": "RefreshScopeComparator.java" }, { "element": "ResourceFactory.java" }, { "element": "StepFilter.java" }, { "element": "StepFilterManager.java" }, { "element": "StreamsProxy.java" }, { "element": "SystemPropertyResolver.java" }, { "element": "SystemVariableResolver.java" }, { "element": "WatchExpression.java" }, { "element": "XMLMemento.java" }, { "element": "commands", "children": [{ "element": "CommandAdapterFactory.java" }, { "element": "DebugCommandRequest.java" }, { "element": "DisconnectCommand.java" }, { "element": "DropToFrameCommand.java" }, { "element": "ForEachCommand.java" }, { "element": "Request.java" }, { "element": "ResumeCommand.java" }, { "element": "StepCommand.java" }, { "element": "StepFiltersCommand.java" }, { "element": "StepIntoCommand.java" }, { "element": "StepOverCommand.java" }, { "element": "StepReturnCommand.java" }, { "element": "SuspendCommand.java" }, { "element": "TerminateCommand.java" }] }, { "element": "groups", "children": [{ "element": "GroupLaunch.java" }, { "element": "GroupLaunchConfigurationDelegate.java" }, { "element": "GroupLaunchElement.java" }, { "element": "GroupMemberChangeListener.java" }, { "element": "observer", "children": [{ "element": "ProcessObserver.java" }, { "element": "StreamObserver.java" }] }] }, { "element": "sourcelookup", "children": [{ "element": "SourceContainerType.java" }, { "element": "SourceLocatorMementoComparator.java" }, { "element": "SourceLookupMessages.java" }, { "element": "SourceLookupMessages.properties" }, { "element": "SourceLookupUtils.java" }, { "element": "SourcePathComputer.java" }, { "element": "containers", "children": [{ "element": "ArchiveSourceContainerType.java" }, { "element": "DefaultSourceContainerType.java" }, { "element": "DirectorySourceContainerType.java" }, { "element": "ExternalArchiveSourceContainerType.java" }, { "element": "FolderSourceContainerType.java" }, { "element": "ProjectSourceContainerType.java" }, { "element": "WorkspaceSourceContainerType.java" }] }] }, { "element": "variables", "children": [{ "element": "ContainerResolver.java" }, { "element": "DateTimeResolver.java" }, { "element": "Messages.java" }, { "element": "Messages.properties" }, { "element": "ProjectResolver.java" }, { "element": "ResourceResolver.java" }, { "element": "WorkspaceResolver.java" }] }] }] }] }] }] }] }]);
break;
}
......
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
const path = require('path');
const fs = require('fs');
function collect(location) {
const element = path.basename(location);
const stat = fs.statSync(location);
if (!stat.isDirectory()) {
return { element };
}
const children = fs.readdirSync(location)
.map(child => path.join(location, child))
.map(collect);
return { element, children };
}
console.log(JSON.stringify(collect(process.cwd())));
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册