mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-27 12:04:04 +01:00
Switch to finalized TS protocol types (#152259)
This commit is contained in:
@@ -6,41 +6,13 @@
|
||||
import * as vscode from 'vscode';
|
||||
import * as nls from 'vscode-nls';
|
||||
import { Command, CommandManager } from '../commands/commandManager';
|
||||
import * as Proto from '../protocol';
|
||||
import { ExecConfig, ITypeScriptServiceClient, ServerResponse } from '../typescriptService';
|
||||
import { ITypeScriptServiceClient } from '../typescriptService';
|
||||
import API from '../utils/api';
|
||||
import { isSupportedLanguageMode } from '../utils/languageIds';
|
||||
import * as typeConverters from '../utils/typeConverters';
|
||||
|
||||
const localize = nls.loadMessageBundle();
|
||||
|
||||
namespace ExperimentalProto {
|
||||
export const enum CommandTypes {
|
||||
FindSourceDefinition = 'findSourceDefinition'
|
||||
}
|
||||
|
||||
export interface SourceDefinitionRequestArgs extends Proto.FileLocationRequestArgs { }
|
||||
|
||||
export interface SourceDefinitionRequest extends Proto.Request {
|
||||
command: CommandTypes.FindSourceDefinition;
|
||||
arguments: SourceDefinitionRequestArgs;
|
||||
}
|
||||
|
||||
export interface InlayHintsResponse extends Proto.DefinitionResponse { }
|
||||
|
||||
export interface IExtendedTypeScriptServiceClient {
|
||||
execute<K extends keyof ExtendedTsServerRequests>(
|
||||
command: K,
|
||||
args: ExtendedTsServerRequests[K][0],
|
||||
token: vscode.CancellationToken,
|
||||
config?: ExecConfig
|
||||
): Promise<ServerResponse.Response<ExtendedTsServerRequests[K][1]>>;
|
||||
}
|
||||
|
||||
export interface ExtendedTsServerRequests {
|
||||
'findSourceDefinition': [SourceDefinitionRequestArgs, InlayHintsResponse];
|
||||
}
|
||||
}
|
||||
|
||||
class SourceDefinitionCommand implements Command {
|
||||
|
||||
@@ -85,7 +57,7 @@ class SourceDefinitionCommand implements Command {
|
||||
|
||||
const position = activeEditor.selection.anchor;
|
||||
const args = typeConverters.Position.toFileLocationRequestArgs(openedFiledPath, position);
|
||||
const response = await (this.client as ExperimentalProto.IExtendedTypeScriptServiceClient).execute('findSourceDefinition', args, token);
|
||||
const response = await this.client.execute('findSourceDefinition', args, token);
|
||||
if (response.type === 'response' && response.body) {
|
||||
const locations: vscode.Location[] = response.body.map(reference =>
|
||||
typeConverters.Location.fromTextSpan(this.client.toResource(reference.file), reference));
|
||||
|
||||
@@ -73,6 +73,7 @@ interface StandardTsServerRequests {
|
||||
'fileReferences': [Proto.FileRequestArgs, Proto.FileReferencesResponse];
|
||||
'provideInlayHints': [Proto.InlayHintsRequestArgs, Proto.InlayHintsResponse];
|
||||
'encodedSemanticClassifications-full': [Proto.EncodedSemanticClassificationsRequestArgs, Proto.EncodedSemanticClassificationsResponse];
|
||||
'findSourceDefinition': [Proto.FileLocationRequestArgs, Proto.DefinitionResponse];
|
||||
}
|
||||
|
||||
interface NoResponseTsServerRequests {
|
||||
|
||||
Reference in New Issue
Block a user