astro-ghostcms/.pnpm-store/v3/files/96/f785ef141498e0498fe6f064b95...

44 lines
1.7 KiB
Plaintext

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.register = void 0;
const common_1 = require("../utils/common");
const cancellation_1 = require("../utils/cancellation");
const transform_1 = require("../utils/transform");
function register(context) {
return async (query, token = cancellation_1.NoneCancellationToken) => {
const symbolsList = [];
for (const service of context.services) {
if (context.disabledServicePlugins.has(service[1])) {
continue;
}
if (token.isCancellationRequested) {
break;
}
if (!service[1].provideWorkspaceSymbols) {
continue;
}
const embeddedSymbols = await service[1].provideWorkspaceSymbols(query, token);
if (!embeddedSymbols) {
continue;
}
const symbols = embeddedSymbols.map(symbol => (0, transform_1.transformWorkspaceSymbol)(symbol, loc => {
const [virtualCode] = context.documents.getVirtualCodeByUri(loc.uri);
if (virtualCode) {
for (const map of context.documents.getMaps(virtualCode)) {
const range = map.getSourceRange(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=provideWorkspaceSymbols.js.map