💄
This commit is contained in:
parent
5a0ab960f0
commit
9cc4da7503
1 changed files with 14 additions and 21 deletions
|
@ -8,7 +8,6 @@ import * as vscode from 'vscode';
|
||||||
import * as nls from 'vscode-nls';
|
import * as nls from 'vscode-nls';
|
||||||
import type * as Proto from '../protocol';
|
import type * as Proto from '../protocol';
|
||||||
import { ITypeScriptServiceClient, ServerResponse } from '../typescriptService';
|
import { ITypeScriptServiceClient, ServerResponse } from '../typescriptService';
|
||||||
import API from '../utils/api';
|
|
||||||
import * as typeConverters from '../utils/typeConverters';
|
import * as typeConverters from '../utils/typeConverters';
|
||||||
import FileConfigurationManager from './fileConfigurationManager';
|
import FileConfigurationManager from './fileConfigurationManager';
|
||||||
|
|
||||||
|
@ -26,7 +25,7 @@ class TypeScriptRenameProvider implements vscode.RenameProvider {
|
||||||
token: vscode.CancellationToken
|
token: vscode.CancellationToken
|
||||||
): Promise<vscode.Range | null> {
|
): Promise<vscode.Range | null> {
|
||||||
const response = await this.execRename(document, position, token);
|
const response = await this.execRename(document, position, token);
|
||||||
if (!response || response.type !== 'response' || !response.body) {
|
if (response?.type !== 'response' || !response.body) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,12 +34,10 @@ class TypeScriptRenameProvider implements vscode.RenameProvider {
|
||||||
return Promise.reject<vscode.Range>(renameInfo.localizedErrorMessage);
|
return Promise.reject<vscode.Range>(renameInfo.localizedErrorMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.client.apiVersion.gte(API.v310)) {
|
const triggerSpan = renameInfo.triggerSpan; // added in TS 3.1
|
||||||
const triggerSpan = renameInfo.triggerSpan;
|
|
||||||
if (triggerSpan) {
|
if (triggerSpan) {
|
||||||
return typeConverters.Range.fromTextSpan(triggerSpan);
|
return typeConverters.Range.fromTextSpan(triggerSpan);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -61,8 +58,6 @@ class TypeScriptRenameProvider implements vscode.RenameProvider {
|
||||||
return Promise.reject<vscode.WorkspaceEdit>(renameInfo.localizedErrorMessage);
|
return Promise.reject<vscode.WorkspaceEdit>(renameInfo.localizedErrorMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (this.client.apiVersion.gte(API.v310)) {
|
|
||||||
if (renameInfo.fileToRename) {
|
if (renameInfo.fileToRename) {
|
||||||
const edits = await this.renameFile(renameInfo.fileToRename, newName, token);
|
const edits = await this.renameFile(renameInfo.fileToRename, newName, token);
|
||||||
if (edits) {
|
if (edits) {
|
||||||
|
@ -71,7 +66,7 @@ class TypeScriptRenameProvider implements vscode.RenameProvider {
|
||||||
return Promise.reject<vscode.WorkspaceEdit>(localize('fileRenameFail', "An error occurred while renaming file"));
|
return Promise.reject<vscode.WorkspaceEdit>(localize('fileRenameFail', "An error occurred while renaming file"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return this.updateLocs(response.body.locs, newName);
|
return this.updateLocs(response.body.locs, newName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -104,13 +99,11 @@ class TypeScriptRenameProvider implements vscode.RenameProvider {
|
||||||
const edit = new vscode.WorkspaceEdit();
|
const edit = new vscode.WorkspaceEdit();
|
||||||
for (const spanGroup of locations) {
|
for (const spanGroup of locations) {
|
||||||
const resource = this.client.toResource(spanGroup.file);
|
const resource = this.client.toResource(spanGroup.file);
|
||||||
if (resource) {
|
for (const textSpan of spanGroup.locs) {
|
||||||
for (const textSpan of spanGroup.locs as Proto.RenameTextSpan[]) {
|
|
||||||
edit.replace(resource, typeConverters.Range.fromTextSpan(textSpan),
|
edit.replace(resource, typeConverters.Range.fromTextSpan(textSpan),
|
||||||
(textSpan.prefixText || '') + newName + (textSpan.suffixText || ''));
|
(textSpan.prefixText || '') + newName + (textSpan.suffixText || ''));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return edit;
|
return edit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue