|
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