Skip to content

Commit 056cb4b

Browse files
Razmo99JustinGrote
authored andcommitted
added more detection and handeling for preparerenamesymbol
1 parent d533c2b commit 056cb4b

File tree

1 file changed

+18
-7
lines changed

1 file changed

+18
-7
lines changed

src/features/RenameSymbol.ts

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// Licensed under the MIT License.
33

44
import vscode = require("vscode");
5-
import { RequestType } from "vscode-languageclient";
5+
import { RequestType } from "vscode-languageclient";
66
import { LanguageClientConsumer } from "../languageClientConsumer";
77
import { RenameProvider, WorkspaceEdit, TextDocument, CancellationToken, Position,Uri,Range } from "vscode";
88
// eslint-disable-next-line @typescript-eslint/no-empty-interface
@@ -89,9 +89,7 @@ export class RenameSymbolFeature extends LanguageClientConsumer implements Renam
8989
}
9090
}
9191
public async prepareRename(document: vscode.TextDocument, position: vscode.Position, _token: vscode.CancellationToken): Promise<vscode.Range | {
92-
range: vscode.
93-
Range; placeholder: string;
94-
} | null | undefined> {
92+
range: vscode.Range; placeholder: string;} | null> {
9593

9694
const req:IRenameSymbolRequestArguments = {
9795
FileName : document.fileName,
@@ -103,12 +101,25 @@ export class RenameSymbolFeature extends LanguageClientConsumer implements Renam
103101
const response = await this.languageClient?.sendRequest(PrepareRenameSymbolRequestType, req);
104102

105103
if (!response) {
106-
return undefined;
104+
return null;
105+
}
106+
const wordRange = document.getWordRangeAtPosition(position);
107+
if (!wordRange) {
108+
return Promise.reject("Not a valid location for renaming.");
109+
107110
}
108-
return Promise.reject(response.message);
111+
const wordText = document.getText(wordRange);
112+
if (response.message) {
113+
return Promise.reject(response.message);
109114

115+
}
116+
117+
return {
118+
range: wordRange,
119+
placeholder: wordText.substring(1)
120+
};
110121
}catch (error) {
111-
return undefined;
122+
return null;
112123
}
113124
}
114125

0 commit comments

Comments
 (0)