-
Notifications
You must be signed in to change notification settings - Fork 34.8k
Closed
Labels
apifeature-requestRequest for new features or functionalityRequest for new features or functionalitytypescriptTypescript support issuesTypescript support issuesverification-neededVerification of issue is requestedVerification of issue is requestedverifiedVerification succeededVerification succeeded
Milestone
Description
(Follow-up of microsoft/TypeScript#43893)
TypeScript language server plugins can now register handlers of custom commands (this is used for the VS Code inlien value provider for example).
However, VS Code extensions still cannot send such commands to the TypeScript language server.
It would be nice if the VS Code TypeScript extension would expose API to do that.
Proposed Solution
Extend the API returned by the TypeScript language features extension:
class ApiV0 {
// ...
invokeCustomCommand(customCommandId: string, uris: Uri[], payload: /* JSON serializable */ unknown): Promise<unknown> { ... }
}
Uris are automatically translated to file names to make life of third party extensions much easier (VS Code extensions only use Uris, typescript language service plugins use only file names).
This would then enable typescript language service plugins to react to such a command and send some data back:
export = function init(modules: { typescript: typeof ts }) {
return {
create(info: ts.server.PluginCreateInfo): ts.LanguageService {
info.session?.addProtocolHandler('getRelativeFileCall', request => {
return {
response: { myData: { ... } }
};
});
return info.languageService;
}
}
}
Metadata
Metadata
Assignees
Labels
apifeature-requestRequest for new features or functionalityRequest for new features or functionalitytypescriptTypescript support issuesTypescript support issuesverification-neededVerification of issue is requestedVerification of issue is requestedverifiedVerification succeededVerification succeeded