astro-ghostcms/.pnpm-store/v3/files/b6/ee193636f85ea235e9bb84483db...

61 lines
2.3 KiB
Plaintext
Raw Normal View History

2024-02-14 19:45:06 +00:00
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.register = void 0;
const cancellation_1 = require("../utils/cancellation");
const common_1 = require("../utils/common");
const featureWorkers_1 = require("../utils/featureWorkers");
const language_core_1 = require("@volar/language-core");
function register(context) {
return async (uri, token = cancellation_1.NoneCancellationToken) => {
return await (0, featureWorkers_1.documentFeatureWorker)(context, uri, map => map.map.mappings.some(mapping => (0, language_core_1.isCodeLensEnabled)(mapping.data)), async (service, document) => {
if (token.isCancellationRequested) {
return;
}
let codeLens = await service[1].provideCodeLenses?.(document, token);
const serviceIndex = context.services.indexOf(service);
codeLens?.forEach(codeLens => {
codeLens.data = {
kind: 'normal',
uri,
original: {
data: codeLens.data,
},
serviceIndex,
};
});
const ranges = await service[1].provideReferencesCodeLensRanges?.(document, token);
const referencesCodeLens = ranges?.map(range => ({
range,
data: {
kind: 'references',
sourceFileUri: uri,
workerFileUri: document.uri,
workerFileRange: range,
serviceIndex,
},
}));
codeLens = [
...codeLens ?? [],
...referencesCodeLens ?? [],
];
return codeLens;
}, (data, map) => {
if (!map) {
return data;
}
return data
.map(codeLens => {
const range = map.getSourceRange(codeLens.range, language_core_1.isCodeLensEnabled);
if (range) {
return {
...codeLens,
range,
};
}
})
.filter(common_1.notEmpty);
}, arr => arr.flat()) ?? [];
};
}
exports.register = register;
//# sourceMappingURL=provideCodeLenses.js.map