|
4 | 4 | import vscode = require("vscode");
|
5 | 5 | import { RequestType } from "vscode-languageclient";
|
6 | 6 | import { LanguageClientConsumer } from "../languageClientConsumer";
|
7 |
| -import { RenameProvider, WorkspaceEdit, TextDocument, CancellationToken, Position,Uri,Range } from "vscode"; |
| 7 | +import { RenameProvider, WorkspaceEdit, TextDocument, CancellationToken, Position,Uri,Range, DocumentSelector } from "vscode"; |
| 8 | +import { LanguageClient } from "vscode-languageclient/node"; |
8 | 9 | // eslint-disable-next-line @typescript-eslint/no-empty-interface
|
9 | 10 | interface IRenameSymbolRequestArguments {
|
10 | 11 | FileName?:string
|
@@ -45,7 +46,14 @@ export const RenameSymbolRequestType = new RequestType<IRenameSymbolRequestArgum
|
45 | 46 | export const PrepareRenameSymbolRequestType = new RequestType<IPrepareRenameSymbolRequestArguments, IPrepareRenameSymbolRequestResponse, void>("powerShell/PrepareRenameSymbol");
|
46 | 47 |
|
47 | 48 | export class RenameSymbolFeature extends LanguageClientConsumer implements RenameProvider {
|
| 49 | + private languageRenameProvider:vscode.Disposable; |
48 | 50 |
|
| 51 | + constructor(documentSelector:DocumentSelector){ |
| 52 | + super(); |
| 53 | + this.languageRenameProvider = vscode.languages.registerRenameProvider(documentSelector,this); |
| 54 | + } |
| 55 | + // eslint-disable-next-line @typescript-eslint/no-empty-function |
| 56 | + public override onLanguageClientSet(_languageClient: LanguageClient): void {} |
49 | 57 | public async provideRenameEdits(document: TextDocument, position: Position, newName: string, _token: CancellationToken): Promise<WorkspaceEdit | undefined> {
|
50 | 58 |
|
51 | 59 | const req:IRenameSymbolRequestArguments = {
|
@@ -113,5 +121,7 @@ export class RenameSymbolFeature extends LanguageClientConsumer implements Renam
|
113 | 121 | return null;
|
114 | 122 | }
|
115 | 123 | }
|
116 |
| - |
| 124 | + public dispose(): void { |
| 125 | + this.languageRenameProvider.dispose(); |
| 126 | + } |
117 | 127 | }
|
0 commit comments