astro-ghostcms/.pnpm-store/v3/files/17/33132dc2be6dcd27dc119a2572d...

41 lines
1.7 KiB
Plaintext

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.register = void 0;
const rename_1 = require("./rename");
const dedupe = require("../utils/dedupe");
const language_core_1 = require("@volar/language-core");
const cancellation_1 = require("../utils/cancellation");
function register(context) {
return async (oldUri, newUri, token = cancellation_1.NoneCancellationToken) => {
const rootFile = context.documents.getSourceByUri(oldUri)?.root;
if (rootFile) {
let tsExt;
(0, language_core_1.forEachEmbeddedFile)(rootFile, embedded => {
if (embedded.kind === language_core_1.FileKind.TypeScriptHostFile && embedded.fileName.replace(rootFile.fileName, '').match(/^\.(js|ts)x?$/)) {
tsExt = embedded.fileName.substring(embedded.fileName.lastIndexOf('.'));
}
});
if (!tsExt) {
return;
}
oldUri += tsExt;
newUri += tsExt;
}
for (const service of Object.values(context.services)) {
if (token.isCancellationRequested)
break;
if (!service.provideFileRenameEdits)
continue;
const workspaceEdit = await service.provideFileRenameEdits(oldUri, newUri, token);
if (workspaceEdit) {
const result = (0, rename_1.embeddedEditToSourceEdit)(workspaceEdit, context.documents, 'fileName');
if (result?.documentChanges) {
result.documentChanges = dedupe.withDocumentChanges(result.documentChanges);
}
return result;
}
}
};
}
exports.register = register;
//# sourceMappingURL=fileRename.js.map