Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/editor/contrib/documentSymbols/browser/documentSymbols.ts
3296 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import { CancellationToken } from '../../../../base/common/cancellation.js';
7
import { assertType } from '../../../../base/common/types.js';
8
import { URI } from '../../../../base/common/uri.js';
9
import { ITextModelService } from '../../../common/services/resolverService.js';
10
import { IOutlineModelService } from './outlineModel.js';
11
import { CommandsRegistry } from '../../../../platform/commands/common/commands.js';
12
13
CommandsRegistry.registerCommand('_executeDocumentSymbolProvider', async function (accessor, ...args) {
14
const [resource] = args;
15
assertType(URI.isUri(resource));
16
17
const outlineService = accessor.get(IOutlineModelService);
18
const modelService = accessor.get(ITextModelService);
19
20
const reference = await modelService.createModelReference(resource);
21
try {
22
return (await outlineService.getOrCreate(reference.object.textEditorModel, CancellationToken.None)).getTopLevelSymbols();
23
} finally {
24
reference.dispose();
25
}
26
});
27
28