{"action":"opened","issue":{"url":"https://api.github.com/repos/Microsoft/vscode/issues/28912","repository_url":"https://api.github.com/repos/Microsoft/vscode","labels_url":"https://api.github.com/repos/Microsoft/vscode/issues/28912/labels{/name}","comments_url":"https://api.github.com/repos/Microsoft/vscode/issues/28912/comments","events_url":"https://api.github.com/repos/Microsoft/vscode/issues/28912/events","html_url":"https://github.com/Microsoft/vscode/issues/28912","id":236609087,"number":28912,"title":"Typescript Extension: Provide public API-surface for extension authors","user":{"login":"mrcrowl","id":1796256,"avatar_url":"https://avatars3.githubusercontent.com/u/1796256?v=3","gravatar_id":"","url":"https://api.github.com/users/mrcrowl","html_url":"https://github.com/mrcrowl","followers_url":"https://api.github.com/users/mrcrowl/followers","following_url":"https://api.github.com/users/mrcrowl/following{/other_user}","gists_url":"https://api.github.com/users/mrcrowl/gists{/gist_id}","starred_url":"https://api.github.com/users/mrcrowl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mrcrowl/subscriptions","organizations_url":"https://api.github.com/users/mrcrowl/orgs","repos_url":"https://api.github.com/users/mrcrowl/repos","events_url":"https://api.github.com/users/mrcrowl/events{/privacy}","received_events_url":"https://api.github.com/users/mrcrowl/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2017-06-16T21:59:54Z","updated_at":"2017-06-16T21:59:54Z","closed_at":null,"body":"As an extension author, I'd like access to the same typescript client that is contained within the built-in typescript extension.  \r\n\r\nSome examples of useful APIs below:\r\n```typescript\r\n\r\n/// [typescriptMain.ts]\r\n\r\nexport function activate(context: ExtensionContext): DependentExtensionAPI {\r\n    ...\r\n\r\n    return {\r\n        // --> typescriptServiceClient.execute\r\n        clientExecute(command: string, args: any, expectsResultOrToken?: boolean | CancellationToken): Promise<any> \r\n\r\n        // --> taskProvider.getTsConfigForActiveFile\r\n        getTsConfigForActiveFile(): Promise<string>\r\n    }\r\n}\r\n\r\nexport interface DependentExtensionAPI \r\n{\r\n    clientExecute(command: 'configure', args: Proto.ConfigureRequestArguments, token?: CancellationToken): Promise<Proto.ConfigureResponse>;\r\n    clientExecute(command: 'open', args: Proto.OpenRequestArgs, expectedResult: boolean, token?: CancellationToken): Promise<any>;\r\n    clientExecute(command: 'close', args: Proto.FileRequestArgs, expectedResult: boolean, token?: CancellationToken): Promise<any>;\r\n    clientExecute(command: 'change', args: Proto.ChangeRequestArgs, expectedResult: boolean, token?: CancellationToken): Promise<any>;\r\n    clientExecute(command: 'geterr', args: Proto.GeterrRequestArgs, expectedResult: boolean, token?: CancellationToken): Promise<any>;\r\n    clientExecute(command: 'quickinfo', args: Proto.FileLocationRequestArgs, token?: CancellationToken): Promise<Proto.QuickInfoResponse>;\r\n    clientExecute(command: 'completions', args: Proto.CompletionsRequestArgs, token?: CancellationToken): Promise<Proto.CompletionsResponse>;\r\n    ...\r\n    getTsConfigForActiveFile(): Promise<string>;\r\n}\r\n```\r\n\r\n@dbaeumer"}}
{"actor":{"display_login":"mrcrowl"}}