astro-ghostcms/.pnpm-store/v3/files/80/e6c73078d3c3e9d9c09d9c69601...

42 lines
1.8 KiB
Plaintext

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.register = void 0;
const featureWorkers_1 = require("../utils/featureWorkers");
const cancellation_1 = require("../utils/cancellation");
function register(context) {
return (uri, position, autoInsertContext, token = cancellation_1.NoneCancellationToken) => {
return (0, featureWorkers_1.languageFeatureWorker)(context, uri, { position, autoInsertContext }, function* (arg, map) {
for (const position of map.toGeneratedPositions(arg.position, data => !!data.completion)) {
const rangeOffset = map.map.toGeneratedOffset(arg.autoInsertContext.lastChange.rangeOffset)?.[0];
const range = map.toGeneratedRange(arg.autoInsertContext.lastChange.range);
if (rangeOffset !== undefined && range) {
yield {
position,
autoInsertContext: {
lastChange: {
...arg.autoInsertContext.lastChange,
rangeOffset,
range,
},
},
};
break;
}
}
}, (service, document, arg) => {
if (token.isCancellationRequested)
return;
return service.provideAutoInsertionEdit?.(document, arg.position, arg.autoInsertContext, token);
}, (item, map) => {
if (!map || typeof item === 'string')
return item;
const range = map.toSourceRange(item.range);
if (range) {
item.range = range;
return item;
}
});
};
}
exports.register = register;
//# sourceMappingURL=autoInsert.js.map