diff --git a/extensions/html-language-features/server/src/htmlServer.ts b/extensions/html-language-features/server/src/htmlServer.ts
index 7b76a857738..f1aeebb34d2 100644
--- a/extensions/html-language-features/server/src/htmlServer.ts
+++ b/extensions/html-language-features/server/src/htmlServer.ts
@@ -501,9 +501,10 @@ export function startServer(connection: Connection, runtime: RuntimeEnvironment)
const position: Position = params.position;
if (document) {
- const htmlMode = languageModes.getMode('html');
- if (htmlMode && htmlMode.doRename) {
- return htmlMode.doRename(document, position, params.newName);
+ const mode = languageModes.getModeAtPosition(document, params.position);
+
+ if (mode && mode.doRename) {
+ return mode.doRename(document, position, params.newName);
}
}
return null;
diff --git a/extensions/html-language-features/server/src/modes/javascriptMode.ts b/extensions/html-language-features/server/src/modes/javascriptMode.ts
index 1fc33faedec..9d19b8e5606 100644
--- a/extensions/html-language-features/server/src/modes/javascriptMode.ts
+++ b/extensions/html-language-features/server/src/modes/javascriptMode.ts
@@ -188,6 +188,23 @@ export function getJavaScriptMode(documentRegions: LanguageModelCache {
+ edits.push({
+ range: convertRange(jsDocument, renameInfo.textSpan),
+ newText: newName,
+ });
+ });
+
+ return {
+ changes: { [document.uri]: edits },
+ };
+ },
async findDocumentHighlight(document: TextDocument, position: Position): Promise {
const jsDocument = jsDocuments.get(document);
const jsLanguageService = await host.getLanguageService(jsDocument);