astro-ghostcms/.pnpm-store/v3/files/84/5d378ce459809ce3cc4cf007964...

37 lines
1.5 KiB
Plaintext

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.register = void 0;
const transformer = require("../transformer");
const common_1 = require("../utils/common");
const cancellation_1 = require("../utils/cancellation");
function register(context) {
return async (query, token = cancellation_1.NoneCancellationToken) => {
const symbolsList = [];
for (const service of Object.values(context.services)) {
if (token.isCancellationRequested)
break;
if (!service.provideWorkspaceSymbols)
continue;
const embeddedSymbols = await service.provideWorkspaceSymbols(query, token);
if (!embeddedSymbols)
continue;
const symbols = embeddedSymbols.map(symbol => transformer.asWorkspaceSymbol(symbol, loc => {
if (context.documents.isVirtualFileUri(loc.uri)) {
for (const [_, map] of context.documents.getMapsByVirtualFileUri(loc.uri)) {
const range = map.toSourceRange(loc.range);
if (range) {
return { uri: map.sourceFileDocument.uri, range };
}
}
}
else {
return loc;
}
})).filter(common_1.notEmpty);
symbolsList.push(symbols);
}
return symbolsList.flat();
};
}
exports.register = register;
//# sourceMappingURL=workspaceSymbols.js.map