Path: blob/main/src/vs/editor/contrib/documentSymbols/browser/documentSymbols.ts
3296 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import { CancellationToken } from '../../../../base/common/cancellation.js';6import { assertType } from '../../../../base/common/types.js';7import { URI } from '../../../../base/common/uri.js';8import { ITextModelService } from '../../../common/services/resolverService.js';9import { IOutlineModelService } from './outlineModel.js';10import { CommandsRegistry } from '../../../../platform/commands/common/commands.js';1112CommandsRegistry.registerCommand('_executeDocumentSymbolProvider', async function (accessor, ...args) {13const [resource] = args;14assertType(URI.isUri(resource));1516const outlineService = accessor.get(IOutlineModelService);17const modelService = accessor.get(ITextModelService);1819const reference = await modelService.createModelReference(resource);20try {21return (await outlineService.getOrCreate(reference.object.textEditorModel, CancellationToken.None)).getTopLevelSymbols();22} finally {23reference.dispose();24}25});262728