mirror of
https://github.com/coder/code-server.git
synced 2024-12-20 16:21:34 +03:00
1331 lines
87 KiB
Plaintext
1331 lines
87 KiB
Plaintext
[
|
|
{
|
|
"kind": 1,
|
|
"language": "markdown",
|
|
"value": "#### Config",
|
|
"editable": true,
|
|
"outputs": []
|
|
},
|
|
{
|
|
"kind": 2,
|
|
"language": "github-issues",
|
|
"value": "$repo=repo:microsoft/vscode\n$milestone=milestone:\"February 2021\"",
|
|
"editable": true,
|
|
"outputs": []
|
|
},
|
|
{
|
|
"kind": 1,
|
|
"language": "markdown",
|
|
"value": "### Finalization",
|
|
"editable": true,
|
|
"outputs": []
|
|
},
|
|
{
|
|
"kind": 2,
|
|
"language": "github-issues",
|
|
"value": "$repo $milestone label:api-finalization",
|
|
"editable": true,
|
|
"outputs": [
|
|
{
|
|
"mime": "text/markdown",
|
|
"value": "- [#88309](https://github.com/microsoft/vscode/issues/88309 \"Authentication Provider API\") Authentication Provider API [api-finalization, authentication, feature-request, settings-sync]- [@RMacfarlane](https://github.com/RMacfarlane \"Issue 88309 is assigned to RMacfarlane\")\n\n"
|
|
},
|
|
{
|
|
"mime": "x-application/github-issues",
|
|
"value": [
|
|
{
|
|
"url": "https://api.github.com/repos/microsoft/vscode/issues/88309",
|
|
"repository_url": "https://api.github.com/repos/microsoft/vscode",
|
|
"labels_url": "https://api.github.com/repos/microsoft/vscode/issues/88309/labels{/name}",
|
|
"comments_url": "https://api.github.com/repos/microsoft/vscode/issues/88309/comments",
|
|
"events_url": "https://api.github.com/repos/microsoft/vscode/issues/88309/events",
|
|
"html_url": "https://github.com/microsoft/vscode/issues/88309",
|
|
"id": 547141160,
|
|
"node_id": "MDU6SXNzdWU1NDcxNDExNjA=",
|
|
"number": 88309,
|
|
"title": "Authentication Provider API",
|
|
"user": {
|
|
"login": "RMacfarlane",
|
|
"id": 3672607,
|
|
"node_id": "MDQ6VXNlcjM2NzI2MDc=",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/3672607?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/RMacfarlane",
|
|
"html_url": "https://github.com/RMacfarlane",
|
|
"followers_url": "https://api.github.com/users/RMacfarlane/followers",
|
|
"following_url": "https://api.github.com/users/RMacfarlane/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/RMacfarlane/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/RMacfarlane/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/RMacfarlane/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/RMacfarlane/orgs",
|
|
"repos_url": "https://api.github.com/users/RMacfarlane/repos",
|
|
"events_url": "https://api.github.com/users/RMacfarlane/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/RMacfarlane/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"labels": [
|
|
{
|
|
"id": 974714207,
|
|
"node_id": "MDU6TGFiZWw5NzQ3MTQyMDc=",
|
|
"url": "https://api.github.com/repos/microsoft/vscode/labels/api-finalization",
|
|
"name": "api-finalization",
|
|
"color": "c5def5",
|
|
"default": false,
|
|
"description": ""
|
|
},
|
|
{
|
|
"id": 1702048079,
|
|
"node_id": "MDU6TGFiZWwxNzAyMDQ4MDc5",
|
|
"url": "https://api.github.com/repos/microsoft/vscode/labels/authentication",
|
|
"name": "authentication",
|
|
"color": "c5def5",
|
|
"default": false,
|
|
"description": "Authentication issues"
|
|
},
|
|
{
|
|
"id": 272689392,
|
|
"node_id": "MDU6TGFiZWwyNzI2ODkzOTI=",
|
|
"url": "https://api.github.com/repos/microsoft/vscode/labels/feature-request",
|
|
"name": "feature-request",
|
|
"color": "dcdcdc",
|
|
"default": false,
|
|
"description": "Request for new features or functionality"
|
|
},
|
|
{
|
|
"id": 1684021718,
|
|
"node_id": "MDU6TGFiZWwxNjg0MDIxNzE4",
|
|
"url": "https://api.github.com/repos/microsoft/vscode/labels/settings-sync",
|
|
"name": "settings-sync",
|
|
"color": "1d76db",
|
|
"default": false,
|
|
"description": ""
|
|
}
|
|
],
|
|
"state": "open",
|
|
"locked": false,
|
|
"assignee": {
|
|
"login": "RMacfarlane",
|
|
"id": 3672607,
|
|
"node_id": "MDQ6VXNlcjM2NzI2MDc=",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/3672607?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/RMacfarlane",
|
|
"html_url": "https://github.com/RMacfarlane",
|
|
"followers_url": "https://api.github.com/users/RMacfarlane/followers",
|
|
"following_url": "https://api.github.com/users/RMacfarlane/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/RMacfarlane/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/RMacfarlane/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/RMacfarlane/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/RMacfarlane/orgs",
|
|
"repos_url": "https://api.github.com/users/RMacfarlane/repos",
|
|
"events_url": "https://api.github.com/users/RMacfarlane/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/RMacfarlane/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"assignees": [
|
|
{
|
|
"login": "RMacfarlane",
|
|
"id": 3672607,
|
|
"node_id": "MDQ6VXNlcjM2NzI2MDc=",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/3672607?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/RMacfarlane",
|
|
"html_url": "https://github.com/RMacfarlane",
|
|
"followers_url": "https://api.github.com/users/RMacfarlane/followers",
|
|
"following_url": "https://api.github.com/users/RMacfarlane/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/RMacfarlane/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/RMacfarlane/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/RMacfarlane/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/RMacfarlane/orgs",
|
|
"repos_url": "https://api.github.com/users/RMacfarlane/repos",
|
|
"events_url": "https://api.github.com/users/RMacfarlane/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/RMacfarlane/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
}
|
|
],
|
|
"milestone": {
|
|
"url": "https://api.github.com/repos/microsoft/vscode/milestones/142",
|
|
"html_url": "https://github.com/microsoft/vscode/milestone/142",
|
|
"labels_url": "https://api.github.com/repos/microsoft/vscode/milestones/142/labels",
|
|
"id": 6286096,
|
|
"node_id": "MDk6TWlsZXN0b25lNjI4NjA5Ng==",
|
|
"number": 142,
|
|
"title": "February 2021",
|
|
"description": "",
|
|
"creator": {
|
|
"login": "Tyriar",
|
|
"id": 2193314,
|
|
"node_id": "MDQ6VXNlcjIxOTMzMTQ=",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/2193314?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/Tyriar",
|
|
"html_url": "https://github.com/Tyriar",
|
|
"followers_url": "https://api.github.com/users/Tyriar/followers",
|
|
"following_url": "https://api.github.com/users/Tyriar/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/Tyriar/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/Tyriar/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/Tyriar/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/Tyriar/orgs",
|
|
"repos_url": "https://api.github.com/users/Tyriar/repos",
|
|
"events_url": "https://api.github.com/users/Tyriar/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/Tyriar/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"open_issues": 232,
|
|
"closed_issues": 300,
|
|
"state": "open",
|
|
"created_at": "2021-01-07T18:23:10Z",
|
|
"updated_at": "2021-02-17T10:48:47Z",
|
|
"due_on": null,
|
|
"closed_at": null
|
|
},
|
|
"comments": 23,
|
|
"created_at": "2020-01-08T22:31:35Z",
|
|
"updated_at": "2021-02-10T20:41:11Z",
|
|
"closed_at": null,
|
|
"author_association": "MEMBER",
|
|
"active_lock_reason": null,
|
|
"body": "### Problem\r\n\r\nThere are currently some extensions that attempt to provide authentication abilities that can be reused by other extensions. (An example being the Azure Account extension). Now that we've begun working on login for settings sync, it's worth revisiting if authentication should be a first-class concept in VS Code. By exposing an API to contribute an authentication flow\r\n\r\n- the core of VSCode can potentially leverage authentication\r\n- other extensions can leverage authentication\r\n- UI for account management could be centralized\r\n\r\n### Proposal\r\n\r\nI propose introducing a concept of an \"AuthenticationProvider\". Such a provider implements methods for logging in and logging out of a specified account, and exposes a list of accounts that are currently available with an event listener for changes to these. This abstracts away refreshing tokens from consumers - the AuthenticationProvider extension can manage refreshing in the background and fire an event when the accessToken has been changed.\r\n\r\n```ts\r\nexport interface Account {\r\n\treadonly id: string;\r\n\treadonly accessToken: string;\r\n\treadonly displayName: string;\r\n}\r\n\r\nexport interface AuthenticationProvider {\r\n\treadonly id: string; // perhaps \"type\"? Would be something like \"GitHub\", \"MSA\", etc.\r\n\treadonly displayName: string;\r\n\r\n\taccounts: ReadonlyArray<Account>;\r\n\tonDidChangeAccounts: Event<ReadonlyArray<Account>>;\r\n\r\n\tlogin(): Promise<Account>;\r\n\tlogout(accountId: string): Promise<void>;\r\n}\r\n\r\nexport namespace authentication {\r\n\texport function registerAuthenticationProvider(provider: AuthenticationProvider): Disposable;\r\n\texport const authenticationProviders: ReadonlyArray<AuthenticationProvider>;\r\n}\r\n```\r\n\r\nConsumers would need to know the id of the provider they're looking for. For example, the settings sync code would look for an \"MSA\" provider since this is what the setting sync backend currently needs.\r\n\r\nSince the authentication provider extension would be activated in each VS Code window, the extension would be responsible for synchronizing state across instances. By default, such extensions would have [\"ui\", \"workspace\"] extensionKind, so that they can store and read credentials on the local machine in both the desktop and web case.",
|
|
"performed_via_github_app": null,
|
|
"score": 1
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"kind": 1,
|
|
"language": "markdown",
|
|
"value": "### Proposals",
|
|
"editable": true,
|
|
"outputs": []
|
|
},
|
|
{
|
|
"kind": 2,
|
|
"language": "github-issues",
|
|
"value": "$repo $milestone is:open label:api-proposal ",
|
|
"editable": true,
|
|
"outputs": [
|
|
{
|
|
"mime": "text/markdown",
|
|
"value": "- [#115631](https://github.com/microsoft/vscode/issues/115631 \"Provide a way for custom editors to process untitled files without relying on textDocument\") Provide a way for custom editors to process untitled files without relying on textDocument [api-proposal, custom-editors, notebook]- [@lramos15](https://github.com/lramos15 \"Issue 115631 is assigned to lramos15\")\n\n- [#115626](https://github.com/microsoft/vscode/issues/115626 \"Microsoft Auth Provider should support overriding client id and tenant id\") Microsoft Auth Provider should support overriding client id and tenant id [api-proposal, authentication]- [@TylerLeonhardt](https://github.com/TylerLeonhardt \"Issue 115626 is assigned to TylerLeonhardt\")\n\n- [#115616](https://github.com/microsoft/vscode/issues/115616 \"Provide extension API to exclude ports from forwarding\") Provide extension API to exclude ports from forwarding [api, api-proposal, feature-request, remote-explorer]\n- [#114123](https://github.com/microsoft/vscode/issues/114123 \"Resolve the conflict run button in editor context menu\") Resolve the conflict run button in editor context menu [api-proposal, feature-request, menus]- [@jrieken](https://github.com/jrieken \"Issue 114123 is assigned to jrieken\")\n\n- [#109277](https://github.com/microsoft/vscode/issues/109277 \"Let extensions hook into url opening\") Let extensions hook into url opening [api, api-proposal, under-discussion]- [@mjbvz](https://github.com/mjbvz \"Issue 109277 is assigned to mjbvz\")\n\n- [#107467](https://github.com/microsoft/vscode/issues/107467 \"Testing in VS Code\") Testing in VS Code [api-proposal, plan-item, under-discussion]- [@connor4312](https://github.com/connor4312 \"Issue 107467 is assigned to connor4312\")\n\n- [#105690](https://github.com/microsoft/vscode/issues/105690 \"Extension API for Inline Values\") Extension API for Inline Values [api, api-proposal, debug, feature-request]- [@weinand](https://github.com/weinand \"Issue 105690 is assigned to weinand\")\n\n"
|
|
},
|
|
{
|
|
"mime": "x-application/github-issues",
|
|
"value": [
|
|
{
|
|
"url": "https://api.github.com/repos/microsoft/vscode/issues/115631",
|
|
"repository_url": "https://api.github.com/repos/microsoft/vscode",
|
|
"labels_url": "https://api.github.com/repos/microsoft/vscode/issues/115631/labels{/name}",
|
|
"comments_url": "https://api.github.com/repos/microsoft/vscode/issues/115631/comments",
|
|
"events_url": "https://api.github.com/repos/microsoft/vscode/issues/115631/events",
|
|
"html_url": "https://github.com/microsoft/vscode/issues/115631",
|
|
"id": 799606785,
|
|
"node_id": "MDU6SXNzdWU3OTk2MDY3ODU=",
|
|
"number": 115631,
|
|
"title": "Provide a way for custom editors to process untitled files without relying on textDocument",
|
|
"user": {
|
|
"login": "lramos15",
|
|
"id": 4544166,
|
|
"node_id": "MDQ6VXNlcjQ1NDQxNjY=",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/4544166?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/lramos15",
|
|
"html_url": "https://github.com/lramos15",
|
|
"followers_url": "https://api.github.com/users/lramos15/followers",
|
|
"following_url": "https://api.github.com/users/lramos15/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/lramos15/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/lramos15/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/lramos15/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/lramos15/orgs",
|
|
"repos_url": "https://api.github.com/users/lramos15/repos",
|
|
"events_url": "https://api.github.com/users/lramos15/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/lramos15/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"labels": [
|
|
{
|
|
"id": 869332220,
|
|
"node_id": "MDU6TGFiZWw4NjkzMzIyMjA=",
|
|
"url": "https://api.github.com/repos/microsoft/vscode/labels/api-proposal",
|
|
"name": "api-proposal",
|
|
"color": "c5def5",
|
|
"default": false,
|
|
"description": ""
|
|
},
|
|
{
|
|
"id": 1713330180,
|
|
"node_id": "MDU6TGFiZWwxNzEzMzMwMTgw",
|
|
"url": "https://api.github.com/repos/microsoft/vscode/labels/custom-editors",
|
|
"name": "custom-editors",
|
|
"color": "c5def5",
|
|
"default": false,
|
|
"description": "Custom editor API (webview based editors)"
|
|
},
|
|
{
|
|
"id": 1839857516,
|
|
"node_id": "MDU6TGFiZWwxODM5ODU3NTE2",
|
|
"url": "https://api.github.com/repos/microsoft/vscode/labels/notebook",
|
|
"name": "notebook",
|
|
"color": "c5def5",
|
|
"default": false,
|
|
"description": ""
|
|
}
|
|
],
|
|
"state": "open",
|
|
"locked": false,
|
|
"assignee": {
|
|
"login": "lramos15",
|
|
"id": 4544166,
|
|
"node_id": "MDQ6VXNlcjQ1NDQxNjY=",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/4544166?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/lramos15",
|
|
"html_url": "https://github.com/lramos15",
|
|
"followers_url": "https://api.github.com/users/lramos15/followers",
|
|
"following_url": "https://api.github.com/users/lramos15/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/lramos15/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/lramos15/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/lramos15/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/lramos15/orgs",
|
|
"repos_url": "https://api.github.com/users/lramos15/repos",
|
|
"events_url": "https://api.github.com/users/lramos15/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/lramos15/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"assignees": [
|
|
{
|
|
"login": "lramos15",
|
|
"id": 4544166,
|
|
"node_id": "MDQ6VXNlcjQ1NDQxNjY=",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/4544166?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/lramos15",
|
|
"html_url": "https://github.com/lramos15",
|
|
"followers_url": "https://api.github.com/users/lramos15/followers",
|
|
"following_url": "https://api.github.com/users/lramos15/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/lramos15/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/lramos15/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/lramos15/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/lramos15/orgs",
|
|
"repos_url": "https://api.github.com/users/lramos15/repos",
|
|
"events_url": "https://api.github.com/users/lramos15/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/lramos15/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
{
|
|
"login": "mjbvz",
|
|
"id": 12821956,
|
|
"node_id": "MDQ6VXNlcjEyODIxOTU2",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/12821956?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/mjbvz",
|
|
"html_url": "https://github.com/mjbvz",
|
|
"followers_url": "https://api.github.com/users/mjbvz/followers",
|
|
"following_url": "https://api.github.com/users/mjbvz/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/mjbvz/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/mjbvz/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/mjbvz/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/mjbvz/orgs",
|
|
"repos_url": "https://api.github.com/users/mjbvz/repos",
|
|
"events_url": "https://api.github.com/users/mjbvz/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/mjbvz/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
}
|
|
],
|
|
"milestone": {
|
|
"url": "https://api.github.com/repos/microsoft/vscode/milestones/142",
|
|
"html_url": "https://github.com/microsoft/vscode/milestone/142",
|
|
"labels_url": "https://api.github.com/repos/microsoft/vscode/milestones/142/labels",
|
|
"id": 6286096,
|
|
"node_id": "MDk6TWlsZXN0b25lNjI4NjA5Ng==",
|
|
"number": 142,
|
|
"title": "February 2021",
|
|
"description": "",
|
|
"creator": {
|
|
"login": "Tyriar",
|
|
"id": 2193314,
|
|
"node_id": "MDQ6VXNlcjIxOTMzMTQ=",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/2193314?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/Tyriar",
|
|
"html_url": "https://github.com/Tyriar",
|
|
"followers_url": "https://api.github.com/users/Tyriar/followers",
|
|
"following_url": "https://api.github.com/users/Tyriar/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/Tyriar/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/Tyriar/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/Tyriar/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/Tyriar/orgs",
|
|
"repos_url": "https://api.github.com/users/Tyriar/repos",
|
|
"events_url": "https://api.github.com/users/Tyriar/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/Tyriar/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"open_issues": 232,
|
|
"closed_issues": 300,
|
|
"state": "open",
|
|
"created_at": "2021-01-07T18:23:10Z",
|
|
"updated_at": "2021-02-17T10:48:47Z",
|
|
"due_on": null,
|
|
"closed_at": null
|
|
},
|
|
"comments": 1,
|
|
"created_at": "2021-02-02T19:29:05Z",
|
|
"updated_at": "2021-02-02T21:58:36Z",
|
|
"closed_at": null,
|
|
"author_association": "MEMBER",
|
|
"active_lock_reason": null,
|
|
"body": "Currently the \"Reopen with\" experience for untitled files and custom binary editors needs better support. See #114711. After discussion in the API call the best proposal seems to be placing the untitled file data in the OpenEditor / OpenNotebook context. There interface would be modified as shown:\r\n```ts\r\n\t/**\r\n\t * Additional information about the opening custom document.\r\n\t */\r\n\tinterface CustomDocumentOpenContext {\r\n\t\t/**\r\n\t\t * The id of the backup to restore the document from or `undefined` if there is no backup.\r\n\t\t *\r\n\t\t * If this is provided, your extension should restore the editor from the backup instead of reading the file\r\n\t\t * from the user's workspace.\r\n\t\t */\r\n\t\treadonly backupId?: string;\r\n\t\t/**\r\n\t\t * If the URI is an untitled file, this will be populated with the byte data of that file\r\n\t\t *\r\n\t\t * If this is provided, your extension should utilize this byte data rather than executing fs APIs on the URI passed in\r\n\t\t */\r\n\t\treadonly untitledDocumentData?: Uint8Array;\r\n\t}\r\n\r\n\tinterface NotebookDocumentOpenContext {\r\n\t\treadonly backupId?: string;\r\n\t\treadonly untitledDocumentData?: Uint8Array;\r\n\t}\r\n```\r\nThe extension other would then not be required to resolve the URI to a text document (which would have been disposed of). ",
|
|
"performed_via_github_app": null,
|
|
"score": 1
|
|
},
|
|
{
|
|
"url": "https://api.github.com/repos/microsoft/vscode/issues/115626",
|
|
"repository_url": "https://api.github.com/repos/microsoft/vscode",
|
|
"labels_url": "https://api.github.com/repos/microsoft/vscode/issues/115626/labels{/name}",
|
|
"comments_url": "https://api.github.com/repos/microsoft/vscode/issues/115626/comments",
|
|
"events_url": "https://api.github.com/repos/microsoft/vscode/issues/115626/events",
|
|
"html_url": "https://github.com/microsoft/vscode/issues/115626",
|
|
"id": 799566516,
|
|
"node_id": "MDU6SXNzdWU3OTk1NjY1MTY=",
|
|
"number": 115626,
|
|
"title": "Microsoft Auth Provider should support overriding client id and tenant id",
|
|
"user": {
|
|
"login": "TylerLeonhardt",
|
|
"id": 2644648,
|
|
"node_id": "MDQ6VXNlcjI2NDQ2NDg=",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/2644648?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/TylerLeonhardt",
|
|
"html_url": "https://github.com/TylerLeonhardt",
|
|
"followers_url": "https://api.github.com/users/TylerLeonhardt/followers",
|
|
"following_url": "https://api.github.com/users/TylerLeonhardt/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/TylerLeonhardt/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/TylerLeonhardt/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/TylerLeonhardt/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/TylerLeonhardt/orgs",
|
|
"repos_url": "https://api.github.com/users/TylerLeonhardt/repos",
|
|
"events_url": "https://api.github.com/users/TylerLeonhardt/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/TylerLeonhardt/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"labels": [
|
|
{
|
|
"id": 869332220,
|
|
"node_id": "MDU6TGFiZWw4NjkzMzIyMjA=",
|
|
"url": "https://api.github.com/repos/microsoft/vscode/labels/api-proposal",
|
|
"name": "api-proposal",
|
|
"color": "c5def5",
|
|
"default": false,
|
|
"description": ""
|
|
},
|
|
{
|
|
"id": 1702048079,
|
|
"node_id": "MDU6TGFiZWwxNzAyMDQ4MDc5",
|
|
"url": "https://api.github.com/repos/microsoft/vscode/labels/authentication",
|
|
"name": "authentication",
|
|
"color": "c5def5",
|
|
"default": false,
|
|
"description": "Authentication issues"
|
|
}
|
|
],
|
|
"state": "open",
|
|
"locked": false,
|
|
"assignee": {
|
|
"login": "TylerLeonhardt",
|
|
"id": 2644648,
|
|
"node_id": "MDQ6VXNlcjI2NDQ2NDg=",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/2644648?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/TylerLeonhardt",
|
|
"html_url": "https://github.com/TylerLeonhardt",
|
|
"followers_url": "https://api.github.com/users/TylerLeonhardt/followers",
|
|
"following_url": "https://api.github.com/users/TylerLeonhardt/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/TylerLeonhardt/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/TylerLeonhardt/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/TylerLeonhardt/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/TylerLeonhardt/orgs",
|
|
"repos_url": "https://api.github.com/users/TylerLeonhardt/repos",
|
|
"events_url": "https://api.github.com/users/TylerLeonhardt/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/TylerLeonhardt/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"assignees": [
|
|
{
|
|
"login": "TylerLeonhardt",
|
|
"id": 2644648,
|
|
"node_id": "MDQ6VXNlcjI2NDQ2NDg=",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/2644648?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/TylerLeonhardt",
|
|
"html_url": "https://github.com/TylerLeonhardt",
|
|
"followers_url": "https://api.github.com/users/TylerLeonhardt/followers",
|
|
"following_url": "https://api.github.com/users/TylerLeonhardt/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/TylerLeonhardt/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/TylerLeonhardt/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/TylerLeonhardt/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/TylerLeonhardt/orgs",
|
|
"repos_url": "https://api.github.com/users/TylerLeonhardt/repos",
|
|
"events_url": "https://api.github.com/users/TylerLeonhardt/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/TylerLeonhardt/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
{
|
|
"login": "RMacfarlane",
|
|
"id": 3672607,
|
|
"node_id": "MDQ6VXNlcjM2NzI2MDc=",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/3672607?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/RMacfarlane",
|
|
"html_url": "https://github.com/RMacfarlane",
|
|
"followers_url": "https://api.github.com/users/RMacfarlane/followers",
|
|
"following_url": "https://api.github.com/users/RMacfarlane/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/RMacfarlane/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/RMacfarlane/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/RMacfarlane/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/RMacfarlane/orgs",
|
|
"repos_url": "https://api.github.com/users/RMacfarlane/repos",
|
|
"events_url": "https://api.github.com/users/RMacfarlane/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/RMacfarlane/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
}
|
|
],
|
|
"milestone": {
|
|
"url": "https://api.github.com/repos/microsoft/vscode/milestones/142",
|
|
"html_url": "https://github.com/microsoft/vscode/milestone/142",
|
|
"labels_url": "https://api.github.com/repos/microsoft/vscode/milestones/142/labels",
|
|
"id": 6286096,
|
|
"node_id": "MDk6TWlsZXN0b25lNjI4NjA5Ng==",
|
|
"number": 142,
|
|
"title": "February 2021",
|
|
"description": "",
|
|
"creator": {
|
|
"login": "Tyriar",
|
|
"id": 2193314,
|
|
"node_id": "MDQ6VXNlcjIxOTMzMTQ=",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/2193314?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/Tyriar",
|
|
"html_url": "https://github.com/Tyriar",
|
|
"followers_url": "https://api.github.com/users/Tyriar/followers",
|
|
"following_url": "https://api.github.com/users/Tyriar/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/Tyriar/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/Tyriar/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/Tyriar/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/Tyriar/orgs",
|
|
"repos_url": "https://api.github.com/users/Tyriar/repos",
|
|
"events_url": "https://api.github.com/users/Tyriar/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/Tyriar/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"open_issues": 232,
|
|
"closed_issues": 300,
|
|
"state": "open",
|
|
"created_at": "2021-01-07T18:23:10Z",
|
|
"updated_at": "2021-02-17T10:48:47Z",
|
|
"due_on": null,
|
|
"closed_at": null
|
|
},
|
|
"comments": 0,
|
|
"created_at": "2021-02-02T18:42:12Z",
|
|
"updated_at": "2021-02-02T18:58:50Z",
|
|
"closed_at": null,
|
|
"author_association": "MEMBER",
|
|
"active_lock_reason": null,
|
|
"body": "<!-- ⚠️⚠️ Do Not Delete This! feature_request_template ⚠️⚠️ -->\r\n<!-- Please read our Rules of Conduct: https://opensource.microsoft.com/codeofconduct/ -->\r\n<!-- Please search existing issues to avoid creating duplicates. -->\r\n\r\n<!-- Describe the feature you'd like. -->\r\n\r\nThe Microsoft Auth Provider uses a specific AAD application with client id hardcoded here:\r\nhttps://github.com/microsoft/vscode/blob/582ea371c2bf785d88458dab95828387ad94a63d/extensions/microsoft-authentication/src/AADHelper.ts#L25-L26\r\n\r\nHowever, this application only has access to a handful of scopes, and to add _allowed_ scopes to this client id is a manual process (which for an external extension author means opening an issue here and then having one of us add that scope to the _allowed_ scopes for the application)\r\n\r\nAs an extension author, I should easily be able to create my own AAD application (in the Azure Portal for example) and use that client id instead of the one vscode uses so that I can have control over the scopes I care about and, if this exists, I can get telemetry when my client id is used.\r\n\r\nSince we have abstracted auth providers, I think it's fitting to be able to pass additional auth provider specific options down to an auth provider. For example, the Microsoft auth provider would take a client id and tenant that would replace the hard coded string above.\r\n\r\nProposal:\r\n\r\n```ts\r\n /**\r\n\t * Options to be used when getting an [AuthenticationSession](#AuthenticationSession) from an [AuthenticationProvider](#AuthenticationProvider).\r\n\t */\r\n\texport interface AuthenticationGetSessionOptions {\r\n\t\t/**\r\n\t\t * Whether login should be performed if there is no matching session.\r\n\t\t *\r\n\t\t * If true, a modal dialog will be shown asking the user to sign in. If false, a numbered badge will be shown\r\n\t\t * on the accounts activity bar icon. An entry for the extension will be added under the menu to sign in. This\r\n\t\t * allows quietly prompting the user to sign in.\r\n\t\t *\r\n\t\t * Defaults to false.\r\n\t\t */\r\n\t\tcreateIfNone?: boolean;\r\n\r\n\t\t/**\r\n\t\t * Whether the existing user session preference should be cleared.\r\n\t\t *\r\n\t\t * For authentication providers that support being signed into multiple accounts at once, the user will be\r\n\t\t * prompted to select an account to use when [getSession](#authentication.getSession) is called. This preference\r\n\t\t * is remembered until [getSession](#authentication.getSession) is called with this flag.\r\n\t\t *\r\n\t\t * Defaults to false.\r\n\t\t */\r\n\t\tclearSessionPreference?: boolean;\r\n\r\n\t\t/*************/\r\n\t\t/*** NEW ***/\r\n\t\t/*************/\r\n /**\r\n * Provider specific options for getting this session (i.e. client id, tenant)\r\n */\r\n\t\tproviderOptions?: { [key: string]: any; }\r\n\t}\r\n```\r\n\r\nThe Auth Provider would then need to be responsible for deciding if it already has created a session with these options or if it needs to create a new session based on these options.",
|
|
"performed_via_github_app": null,
|
|
"score": 1
|
|
},
|
|
{
|
|
"url": "https://api.github.com/repos/microsoft/vscode/issues/115616",
|
|
"repository_url": "https://api.github.com/repos/microsoft/vscode",
|
|
"labels_url": "https://api.github.com/repos/microsoft/vscode/issues/115616/labels{/name}",
|
|
"comments_url": "https://api.github.com/repos/microsoft/vscode/issues/115616/comments",
|
|
"events_url": "https://api.github.com/repos/microsoft/vscode/issues/115616/events",
|
|
"html_url": "https://github.com/microsoft/vscode/issues/115616",
|
|
"id": 799392757,
|
|
"node_id": "MDU6SXNzdWU3OTkzOTI3NTc=",
|
|
"number": 115616,
|
|
"title": "Provide extension API to exclude ports from forwarding",
|
|
"user": {
|
|
"login": "alexr00",
|
|
"id": 38270282,
|
|
"node_id": "MDQ6VXNlcjM4MjcwMjgy",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/38270282?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/alexr00",
|
|
"html_url": "https://github.com/alexr00",
|
|
"followers_url": "https://api.github.com/users/alexr00/followers",
|
|
"following_url": "https://api.github.com/users/alexr00/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/alexr00/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/alexr00/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/alexr00/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/alexr00/orgs",
|
|
"repos_url": "https://api.github.com/users/alexr00/repos",
|
|
"events_url": "https://api.github.com/users/alexr00/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/alexr00/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"labels": [
|
|
{
|
|
"id": 290465400,
|
|
"node_id": "MDU6TGFiZWwyOTA0NjU0MDA=",
|
|
"url": "https://api.github.com/repos/microsoft/vscode/labels/api",
|
|
"name": "api",
|
|
"color": "1d76db",
|
|
"default": false,
|
|
"description": ""
|
|
},
|
|
{
|
|
"id": 869332220,
|
|
"node_id": "MDU6TGFiZWw4NjkzMzIyMjA=",
|
|
"url": "https://api.github.com/repos/microsoft/vscode/labels/api-proposal",
|
|
"name": "api-proposal",
|
|
"color": "c5def5",
|
|
"default": false,
|
|
"description": ""
|
|
},
|
|
{
|
|
"id": 272689392,
|
|
"node_id": "MDU6TGFiZWwyNzI2ODkzOTI=",
|
|
"url": "https://api.github.com/repos/microsoft/vscode/labels/feature-request",
|
|
"name": "feature-request",
|
|
"color": "dcdcdc",
|
|
"default": false,
|
|
"description": "Request for new features or functionality"
|
|
},
|
|
{
|
|
"id": 1772775110,
|
|
"node_id": "MDU6TGFiZWwxNzcyNzc1MTEw",
|
|
"url": "https://api.github.com/repos/microsoft/vscode/labels/remote-explorer",
|
|
"name": "remote-explorer",
|
|
"color": "1d76db",
|
|
"default": false,
|
|
"description": "Remote explorer view"
|
|
}
|
|
],
|
|
"state": "open",
|
|
"locked": false,
|
|
"assignee": null,
|
|
"assignees": [
|
|
{
|
|
"login": "alexr00",
|
|
"id": 38270282,
|
|
"node_id": "MDQ6VXNlcjM4MjcwMjgy",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/38270282?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/alexr00",
|
|
"html_url": "https://github.com/alexr00",
|
|
"followers_url": "https://api.github.com/users/alexr00/followers",
|
|
"following_url": "https://api.github.com/users/alexr00/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/alexr00/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/alexr00/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/alexr00/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/alexr00/orgs",
|
|
"repos_url": "https://api.github.com/users/alexr00/repos",
|
|
"events_url": "https://api.github.com/users/alexr00/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/alexr00/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
}
|
|
],
|
|
"milestone": {
|
|
"url": "https://api.github.com/repos/microsoft/vscode/milestones/142",
|
|
"html_url": "https://github.com/microsoft/vscode/milestone/142",
|
|
"labels_url": "https://api.github.com/repos/microsoft/vscode/milestones/142/labels",
|
|
"id": 6286096,
|
|
"node_id": "MDk6TWlsZXN0b25lNjI4NjA5Ng==",
|
|
"number": 142,
|
|
"title": "February 2021",
|
|
"description": "",
|
|
"creator": {
|
|
"login": "Tyriar",
|
|
"id": 2193314,
|
|
"node_id": "MDQ6VXNlcjIxOTMzMTQ=",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/2193314?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/Tyriar",
|
|
"html_url": "https://github.com/Tyriar",
|
|
"followers_url": "https://api.github.com/users/Tyriar/followers",
|
|
"following_url": "https://api.github.com/users/Tyriar/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/Tyriar/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/Tyriar/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/Tyriar/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/Tyriar/orgs",
|
|
"repos_url": "https://api.github.com/users/Tyriar/repos",
|
|
"events_url": "https://api.github.com/users/Tyriar/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/Tyriar/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"open_issues": 232,
|
|
"closed_issues": 300,
|
|
"state": "open",
|
|
"created_at": "2021-01-07T18:23:10Z",
|
|
"updated_at": "2021-02-17T10:48:47Z",
|
|
"due_on": null,
|
|
"closed_at": null
|
|
},
|
|
"comments": 15,
|
|
"created_at": "2021-02-02T15:37:45Z",
|
|
"updated_at": "2021-02-12T16:08:10Z",
|
|
"closed_at": null,
|
|
"author_association": "MEMBER",
|
|
"active_lock_reason": null,
|
|
"body": "From @weinand:\r\nToday the tunneling service blindly forwards all communication ports.\r\nThis includes ports that are used for debugging (even if our remote debugging feature does not need these ports to be forwarded).\r\nThis is confusing for users because they see ports that they are not really interested in.\r\n\r\nI propose to add extension API so that individual ports or port ranges can be excluded from forwarding.\r\nDebug extensions could use this API.\r\n\r\n",
|
|
"performed_via_github_app": null,
|
|
"score": 1
|
|
},
|
|
{
|
|
"url": "https://api.github.com/repos/microsoft/vscode/issues/114123",
|
|
"repository_url": "https://api.github.com/repos/microsoft/vscode",
|
|
"labels_url": "https://api.github.com/repos/microsoft/vscode/issues/114123/labels{/name}",
|
|
"comments_url": "https://api.github.com/repos/microsoft/vscode/issues/114123/comments",
|
|
"events_url": "https://api.github.com/repos/microsoft/vscode/issues/114123/events",
|
|
"html_url": "https://github.com/microsoft/vscode/issues/114123",
|
|
"id": 783094648,
|
|
"node_id": "MDU6SXNzdWU3ODMwOTQ2NDg=",
|
|
"number": 114123,
|
|
"title": "Resolve the conflict run button in editor context menu",
|
|
"user": {
|
|
"login": "jdneo",
|
|
"id": 6193897,
|
|
"node_id": "MDQ6VXNlcjYxOTM4OTc=",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6193897?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/jdneo",
|
|
"html_url": "https://github.com/jdneo",
|
|
"followers_url": "https://api.github.com/users/jdneo/followers",
|
|
"following_url": "https://api.github.com/users/jdneo/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/jdneo/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/jdneo/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/jdneo/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/jdneo/orgs",
|
|
"repos_url": "https://api.github.com/users/jdneo/repos",
|
|
"events_url": "https://api.github.com/users/jdneo/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/jdneo/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"labels": [
|
|
{
|
|
"id": 869332220,
|
|
"node_id": "MDU6TGFiZWw4NjkzMzIyMjA=",
|
|
"url": "https://api.github.com/repos/microsoft/vscode/labels/api-proposal",
|
|
"name": "api-proposal",
|
|
"color": "c5def5",
|
|
"default": false,
|
|
"description": ""
|
|
},
|
|
{
|
|
"id": 272689392,
|
|
"node_id": "MDU6TGFiZWwyNzI2ODkzOTI=",
|
|
"url": "https://api.github.com/repos/microsoft/vscode/labels/feature-request",
|
|
"name": "feature-request",
|
|
"color": "dcdcdc",
|
|
"default": false,
|
|
"description": "Request for new features or functionality"
|
|
},
|
|
{
|
|
"id": 795791582,
|
|
"node_id": "MDU6TGFiZWw3OTU3OTE1ODI=",
|
|
"url": "https://api.github.com/repos/microsoft/vscode/labels/menus",
|
|
"name": "menus",
|
|
"color": "1d76db",
|
|
"default": false,
|
|
"description": "Menu items and widget issues"
|
|
}
|
|
],
|
|
"state": "open",
|
|
"locked": false,
|
|
"assignee": {
|
|
"login": "jrieken",
|
|
"id": 1794099,
|
|
"node_id": "MDQ6VXNlcjE3OTQwOTk=",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/1794099?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/jrieken",
|
|
"html_url": "https://github.com/jrieken",
|
|
"followers_url": "https://api.github.com/users/jrieken/followers",
|
|
"following_url": "https://api.github.com/users/jrieken/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/jrieken/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/jrieken/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/jrieken/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/jrieken/orgs",
|
|
"repos_url": "https://api.github.com/users/jrieken/repos",
|
|
"events_url": "https://api.github.com/users/jrieken/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/jrieken/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"assignees": [
|
|
{
|
|
"login": "jrieken",
|
|
"id": 1794099,
|
|
"node_id": "MDQ6VXNlcjE3OTQwOTk=",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/1794099?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/jrieken",
|
|
"html_url": "https://github.com/jrieken",
|
|
"followers_url": "https://api.github.com/users/jrieken/followers",
|
|
"following_url": "https://api.github.com/users/jrieken/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/jrieken/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/jrieken/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/jrieken/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/jrieken/orgs",
|
|
"repos_url": "https://api.github.com/users/jrieken/repos",
|
|
"events_url": "https://api.github.com/users/jrieken/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/jrieken/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
}
|
|
],
|
|
"milestone": {
|
|
"url": "https://api.github.com/repos/microsoft/vscode/milestones/142",
|
|
"html_url": "https://github.com/microsoft/vscode/milestone/142",
|
|
"labels_url": "https://api.github.com/repos/microsoft/vscode/milestones/142/labels",
|
|
"id": 6286096,
|
|
"node_id": "MDk6TWlsZXN0b25lNjI4NjA5Ng==",
|
|
"number": 142,
|
|
"title": "February 2021",
|
|
"description": "",
|
|
"creator": {
|
|
"login": "Tyriar",
|
|
"id": 2193314,
|
|
"node_id": "MDQ6VXNlcjIxOTMzMTQ=",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/2193314?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/Tyriar",
|
|
"html_url": "https://github.com/Tyriar",
|
|
"followers_url": "https://api.github.com/users/Tyriar/followers",
|
|
"following_url": "https://api.github.com/users/Tyriar/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/Tyriar/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/Tyriar/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/Tyriar/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/Tyriar/orgs",
|
|
"repos_url": "https://api.github.com/users/Tyriar/repos",
|
|
"events_url": "https://api.github.com/users/Tyriar/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/Tyriar/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"open_issues": 232,
|
|
"closed_issues": 300,
|
|
"state": "open",
|
|
"created_at": "2021-01-07T18:23:10Z",
|
|
"updated_at": "2021-02-17T10:48:47Z",
|
|
"due_on": null,
|
|
"closed_at": null
|
|
},
|
|
"comments": 15,
|
|
"created_at": "2021-01-11T06:09:50Z",
|
|
"updated_at": "2021-02-09T13:40:28Z",
|
|
"closed_at": null,
|
|
"author_association": "MEMBER",
|
|
"active_lock_reason": null,
|
|
"body": "<!-- ⚠️⚠️ Do Not Delete This! feature_request_template ⚠️⚠️ -->\r\n<!-- Please read our Rules of Conduct: https://opensource.microsoft.com/codeofconduct/ -->\r\n<!-- Please search existing issues to avoid creating duplicates. -->\r\n\r\n<!-- Describe the feature you'd like. -->\r\n\r\n### Problem\r\nSince the contribution point: `editor/title` is open for all the extensions, sometimes different extensions may have conflicts at this area. For example, in Java, such conflicts affect the run experience when the user installs both the Java extensions and the Code Runner extension:\r\n\r\n![image](https://user-images.githubusercontent.com/6193897/104149682-30373100-5412-11eb-84be-8f05bfa9c042.png)\r\n\r\nThis is a very open and big topic, as a author of VS Code extensions, it will be great if VS Code as a platform, can provide solutions for this issue.\r\n\r\n### Potential Solutions\r\nBelow are just rough ideas on this, it's open for discussion!\r\n\r\n#### Editor Metadata\r\nExtensions can register context value per document/editor, and register command on the editor title area according to the context value. For example. the Java Debugger can use this to mark if the current Java file is executable or not. And register the run/debug command into the editor context area if it's executable.\r\n\r\n> This can somehow achieved by using the `in` expression of the when clause, something like `resource in hasMainMethodFiles`. But we also need to [get the context value dynamically from the code](https://github.com/microsoft/vscode/issues/10471#issuecomment-718548790) to handle with the corporation between multiple extensions. \r\n\r\nMeanwhile the Java feature team can contribute changes to the Code Runner extension to align the UX (for example, hide the run button from Code Runner if the current Java file contains an executable Main class).\r\n\r\n#### Official Support for the run experience in the editor title area.\r\nThis also may have some opportunity since I believe it's somehow related with #85759, if VS Code team will consider provide official `run/debug` functionality area in the editor title.\r\n\r\n",
|
|
"performed_via_github_app": null,
|
|
"score": 1
|
|
},
|
|
{
|
|
"url": "https://api.github.com/repos/microsoft/vscode/issues/109277",
|
|
"repository_url": "https://api.github.com/repos/microsoft/vscode",
|
|
"labels_url": "https://api.github.com/repos/microsoft/vscode/issues/109277/labels{/name}",
|
|
"comments_url": "https://api.github.com/repos/microsoft/vscode/issues/109277/comments",
|
|
"events_url": "https://api.github.com/repos/microsoft/vscode/issues/109277/events",
|
|
"html_url": "https://github.com/microsoft/vscode/issues/109277",
|
|
"id": 728636389,
|
|
"node_id": "MDU6SXNzdWU3Mjg2MzYzODk=",
|
|
"number": 109277,
|
|
"title": "Let extensions hook into url opening",
|
|
"user": {
|
|
"login": "mjbvz",
|
|
"id": 12821956,
|
|
"node_id": "MDQ6VXNlcjEyODIxOTU2",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/12821956?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/mjbvz",
|
|
"html_url": "https://github.com/mjbvz",
|
|
"followers_url": "https://api.github.com/users/mjbvz/followers",
|
|
"following_url": "https://api.github.com/users/mjbvz/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/mjbvz/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/mjbvz/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/mjbvz/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/mjbvz/orgs",
|
|
"repos_url": "https://api.github.com/users/mjbvz/repos",
|
|
"events_url": "https://api.github.com/users/mjbvz/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/mjbvz/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"labels": [
|
|
{
|
|
"id": 290465400,
|
|
"node_id": "MDU6TGFiZWwyOTA0NjU0MDA=",
|
|
"url": "https://api.github.com/repos/microsoft/vscode/labels/api",
|
|
"name": "api",
|
|
"color": "1d76db",
|
|
"default": false,
|
|
"description": ""
|
|
},
|
|
{
|
|
"id": 869332220,
|
|
"node_id": "MDU6TGFiZWw4NjkzMzIyMjA=",
|
|
"url": "https://api.github.com/repos/microsoft/vscode/labels/api-proposal",
|
|
"name": "api-proposal",
|
|
"color": "c5def5",
|
|
"default": false,
|
|
"description": ""
|
|
},
|
|
{
|
|
"id": 578047123,
|
|
"node_id": "MDU6TGFiZWw1NzgwNDcxMjM=",
|
|
"url": "https://api.github.com/repos/microsoft/vscode/labels/under-discussion",
|
|
"name": "under-discussion",
|
|
"color": "dcdcdc",
|
|
"default": false,
|
|
"description": "Issue is under discussion for relevance, priority, approach"
|
|
}
|
|
],
|
|
"state": "open",
|
|
"locked": false,
|
|
"assignee": {
|
|
"login": "mjbvz",
|
|
"id": 12821956,
|
|
"node_id": "MDQ6VXNlcjEyODIxOTU2",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/12821956?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/mjbvz",
|
|
"html_url": "https://github.com/mjbvz",
|
|
"followers_url": "https://api.github.com/users/mjbvz/followers",
|
|
"following_url": "https://api.github.com/users/mjbvz/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/mjbvz/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/mjbvz/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/mjbvz/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/mjbvz/orgs",
|
|
"repos_url": "https://api.github.com/users/mjbvz/repos",
|
|
"events_url": "https://api.github.com/users/mjbvz/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/mjbvz/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"assignees": [
|
|
{
|
|
"login": "mjbvz",
|
|
"id": 12821956,
|
|
"node_id": "MDQ6VXNlcjEyODIxOTU2",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/12821956?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/mjbvz",
|
|
"html_url": "https://github.com/mjbvz",
|
|
"followers_url": "https://api.github.com/users/mjbvz/followers",
|
|
"following_url": "https://api.github.com/users/mjbvz/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/mjbvz/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/mjbvz/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/mjbvz/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/mjbvz/orgs",
|
|
"repos_url": "https://api.github.com/users/mjbvz/repos",
|
|
"events_url": "https://api.github.com/users/mjbvz/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/mjbvz/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
}
|
|
],
|
|
"milestone": {
|
|
"url": "https://api.github.com/repos/microsoft/vscode/milestones/142",
|
|
"html_url": "https://github.com/microsoft/vscode/milestone/142",
|
|
"labels_url": "https://api.github.com/repos/microsoft/vscode/milestones/142/labels",
|
|
"id": 6286096,
|
|
"node_id": "MDk6TWlsZXN0b25lNjI4NjA5Ng==",
|
|
"number": 142,
|
|
"title": "February 2021",
|
|
"description": "",
|
|
"creator": {
|
|
"login": "Tyriar",
|
|
"id": 2193314,
|
|
"node_id": "MDQ6VXNlcjIxOTMzMTQ=",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/2193314?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/Tyriar",
|
|
"html_url": "https://github.com/Tyriar",
|
|
"followers_url": "https://api.github.com/users/Tyriar/followers",
|
|
"following_url": "https://api.github.com/users/Tyriar/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/Tyriar/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/Tyriar/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/Tyriar/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/Tyriar/orgs",
|
|
"repos_url": "https://api.github.com/users/Tyriar/repos",
|
|
"events_url": "https://api.github.com/users/Tyriar/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/Tyriar/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"open_issues": 232,
|
|
"closed_issues": 300,
|
|
"state": "open",
|
|
"created_at": "2021-01-07T18:23:10Z",
|
|
"updated_at": "2021-02-17T10:48:47Z",
|
|
"due_on": null,
|
|
"closed_at": null
|
|
},
|
|
"comments": 10,
|
|
"created_at": "2020-10-24T02:27:26Z",
|
|
"updated_at": "2021-02-11T23:51:08Z",
|
|
"closed_at": null,
|
|
"author_association": "MEMBER",
|
|
"active_lock_reason": null,
|
|
"body": "## Overview\r\nLet extensions hook into url opening. Motivating use case: I click on a link in the integrated terminal and it opens in my [browser preview extension](https://marketplace.visualstudio.com/items?itemName=auchenberg.vscode-browser-preview)\r\n\r\nPotential places to handle links:\r\n\r\n- Links in the terminal\r\n- Links in documents\r\n- Links from the remote port forwarding views\r\n- Debugger launch?\r\n- Open external?\r\n\r\n## Additional requirements\r\n\r\n- A url opener should be able to decline opening a link\r\n\r\n Some openers may only support specific types of links, such as `localhost`\r\n\r\n- Clicking a link should activate relevant extensions\r\n\r\n We'd need a new activation event so that extensions can make sure they handle link opening\r\n\r\n- Let users fallback to VS Code's default behavior\r\n\r\n This typically is to open using the default browser\r\n\r\n- Handle multiple url openers being registered at the same time\r\n\r\n Users should be able to select which opener to use in this case. They should potentially be able to specify a default opener.\r\n",
|
|
"performed_via_github_app": null,
|
|
"score": 1
|
|
},
|
|
{
|
|
"url": "https://api.github.com/repos/microsoft/vscode/issues/107467",
|
|
"repository_url": "https://api.github.com/repos/microsoft/vscode",
|
|
"labels_url": "https://api.github.com/repos/microsoft/vscode/issues/107467/labels{/name}",
|
|
"comments_url": "https://api.github.com/repos/microsoft/vscode/issues/107467/comments",
|
|
"events_url": "https://api.github.com/repos/microsoft/vscode/issues/107467/events",
|
|
"html_url": "https://github.com/microsoft/vscode/issues/107467",
|
|
"id": 709128519,
|
|
"node_id": "MDU6SXNzdWU3MDkxMjg1MTk=",
|
|
"number": 107467,
|
|
"title": "Testing in VS Code",
|
|
"user": {
|
|
"login": "connor4312",
|
|
"id": 2230985,
|
|
"node_id": "MDQ6VXNlcjIyMzA5ODU=",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/2230985?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/connor4312",
|
|
"html_url": "https://github.com/connor4312",
|
|
"followers_url": "https://api.github.com/users/connor4312/followers",
|
|
"following_url": "https://api.github.com/users/connor4312/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/connor4312/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/connor4312/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/connor4312/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/connor4312/orgs",
|
|
"repos_url": "https://api.github.com/users/connor4312/repos",
|
|
"events_url": "https://api.github.com/users/connor4312/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/connor4312/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"labels": [
|
|
{
|
|
"id": 869332220,
|
|
"node_id": "MDU6TGFiZWw4NjkzMzIyMjA=",
|
|
"url": "https://api.github.com/repos/microsoft/vscode/labels/api-proposal",
|
|
"name": "api-proposal",
|
|
"color": "c5def5",
|
|
"default": false,
|
|
"description": ""
|
|
},
|
|
{
|
|
"id": 293426086,
|
|
"node_id": "MDU6TGFiZWwyOTM0MjYwODY=",
|
|
"url": "https://api.github.com/repos/microsoft/vscode/labels/plan-item",
|
|
"name": "plan-item",
|
|
"color": "dcdcdc",
|
|
"default": false,
|
|
"description": "VS Code - planned item for upcoming"
|
|
},
|
|
{
|
|
"id": 578047123,
|
|
"node_id": "MDU6TGFiZWw1NzgwNDcxMjM=",
|
|
"url": "https://api.github.com/repos/microsoft/vscode/labels/under-discussion",
|
|
"name": "under-discussion",
|
|
"color": "dcdcdc",
|
|
"default": false,
|
|
"description": "Issue is under discussion for relevance, priority, approach"
|
|
}
|
|
],
|
|
"state": "open",
|
|
"locked": false,
|
|
"assignee": {
|
|
"login": "connor4312",
|
|
"id": 2230985,
|
|
"node_id": "MDQ6VXNlcjIyMzA5ODU=",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/2230985?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/connor4312",
|
|
"html_url": "https://github.com/connor4312",
|
|
"followers_url": "https://api.github.com/users/connor4312/followers",
|
|
"following_url": "https://api.github.com/users/connor4312/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/connor4312/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/connor4312/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/connor4312/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/connor4312/orgs",
|
|
"repos_url": "https://api.github.com/users/connor4312/repos",
|
|
"events_url": "https://api.github.com/users/connor4312/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/connor4312/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"assignees": [
|
|
{
|
|
"login": "connor4312",
|
|
"id": 2230985,
|
|
"node_id": "MDQ6VXNlcjIyMzA5ODU=",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/2230985?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/connor4312",
|
|
"html_url": "https://github.com/connor4312",
|
|
"followers_url": "https://api.github.com/users/connor4312/followers",
|
|
"following_url": "https://api.github.com/users/connor4312/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/connor4312/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/connor4312/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/connor4312/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/connor4312/orgs",
|
|
"repos_url": "https://api.github.com/users/connor4312/repos",
|
|
"events_url": "https://api.github.com/users/connor4312/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/connor4312/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
{
|
|
"login": "sandy081",
|
|
"id": 10746682,
|
|
"node_id": "MDQ6VXNlcjEwNzQ2Njgy",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/10746682?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/sandy081",
|
|
"html_url": "https://github.com/sandy081",
|
|
"followers_url": "https://api.github.com/users/sandy081/followers",
|
|
"following_url": "https://api.github.com/users/sandy081/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/sandy081/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/sandy081/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/sandy081/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/sandy081/orgs",
|
|
"repos_url": "https://api.github.com/users/sandy081/repos",
|
|
"events_url": "https://api.github.com/users/sandy081/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/sandy081/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
}
|
|
],
|
|
"milestone": {
|
|
"url": "https://api.github.com/repos/microsoft/vscode/milestones/142",
|
|
"html_url": "https://github.com/microsoft/vscode/milestone/142",
|
|
"labels_url": "https://api.github.com/repos/microsoft/vscode/milestones/142/labels",
|
|
"id": 6286096,
|
|
"node_id": "MDk6TWlsZXN0b25lNjI4NjA5Ng==",
|
|
"number": 142,
|
|
"title": "February 2021",
|
|
"description": "",
|
|
"creator": {
|
|
"login": "Tyriar",
|
|
"id": 2193314,
|
|
"node_id": "MDQ6VXNlcjIxOTMzMTQ=",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/2193314?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/Tyriar",
|
|
"html_url": "https://github.com/Tyriar",
|
|
"followers_url": "https://api.github.com/users/Tyriar/followers",
|
|
"following_url": "https://api.github.com/users/Tyriar/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/Tyriar/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/Tyriar/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/Tyriar/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/Tyriar/orgs",
|
|
"repos_url": "https://api.github.com/users/Tyriar/repos",
|
|
"events_url": "https://api.github.com/users/Tyriar/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/Tyriar/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"open_issues": 232,
|
|
"closed_issues": 300,
|
|
"state": "open",
|
|
"created_at": "2021-01-07T18:23:10Z",
|
|
"updated_at": "2021-02-17T10:48:47Z",
|
|
"due_on": null,
|
|
"closed_at": null
|
|
},
|
|
"comments": 53,
|
|
"created_at": "2020-09-25T17:19:53Z",
|
|
"updated_at": "2021-02-16T21:11:36Z",
|
|
"closed_at": null,
|
|
"author_association": "MEMBER",
|
|
"active_lock_reason": null,
|
|
"body": "## State of the World\r\n\r\nTesting support in VS Code has been a feature request for [a long time](https://github.com/microsoft/vscode/issues/9505). The VS Code community has build excellent extensions around testing, for example:\r\n\r\n- The [Test Explorer UI](https://marketplace.visualstudio.com/items?itemName=hbenl.vscode-test-explorer) from @hbenl\r\n- [Wallaby.js](https://wallabyjs.com/) from the Wallaby team\r\n- [Jest](https://marketplace.visualstudio.com/items?itemName=Orta.vscode-jest) from @orta\r\n- ...and many more\r\n\r\nEach implementation of testing presents a different set of features, UI, and idiomaticity. Because there is no sanctioned approach to tests in VS Code, extension developers tend to make bespoke implementations, as we've seen in the Python and Java language extensions. Ideally, like in debugging, a VS Code user would have just about the same experience as they work between projects and languages.\r\n\r\n## VS Code's Approach\r\n\r\n> Investigate how VS Code can improve the testing support. Several extensions are already providing testing support, explore what APIs/UIs could be added to improve these testing extensions and the test running experience. -- [2020 Roadmap](https://github.com/microsoft/vscode/wiki/Roadmap#testing)\r\n\r\nThe Test Explorer UI presents the best point of inspiration for us, as there are many existing extensions built on its API: it's capable and proven. Regardless of the direction we take in VS Code, we should have a way for its Test Adapters to be upgraded to the new world.\r\n\r\nWallaby is an excellent extension, but it's tailored and purpose-built to JavaScript, and includes functionality which is not readily portable to other languages. While it is a good source for inspiration, we're not aiming to encompass Wallaby's feature set in the extension points we provide, at least not yet.\r\n\r\nWe're prototyping an API in the extension host, but there are a number of approaches we can take:\r\n\r\n<table>\r\n\t<thead>\r\n\t\t<tr>\r\n\t\t\t<th>Extension Host ('traditional' VS Code API)</th>\r\n\t\t\t<th>'Test Protocol' (like DAP/LSP)</th>\r\n\t\t\t<th>Extension (like existing test explorer)</th>\r\n\t\t</tr>\r\n\t</thead>\r\n\t<tr>\r\n\t\t<td width=\"33%\">\r\n\t\t\t+ Simple to adopt for extension authors<br>\r\n\t\t\t+ Easier to manage state<br>\r\n\t\t\t+ Clear way to build 'official' test extensions<br>\r\n\t\t</td>\r\n\t\t<td width=\"33%\">\r\n\t\t\t+ Encourages keeping expensive work in child processes<br>\r\n\t\t\t+ Could be theoretically shared with VS and other editors<br>\r\n\t\t</td>\r\n\t\t<td width=\"33%\">\r\n\t\t\t+ Keep VS Code core slim<br>\r\n\t\t\t+ Unclear whether there's significant functionality we'd want that's not already possible in exthost api<br>\r\n\t\t</td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td width=\"33%\">\r\n\t\t\t- The 'obvious path' is doing heavy lifting in the extension host process, which is undesirable<br>\r\n\t\t</td>\r\n\t\t<td width=\"33%\">\r\n\t\t\t- Additional implementation and maintainence complexity for VS Code<br>\r\n\t\t\t- Less friendly, additional complexity than TS APIs for extension authors<br>\r\n\t\t</td>\r\n\t\t<td width=\"33%\">\r\n\t\t\t- Additional extension and set of libraries to maintain+version for types and implementation<br>\r\n\t\t\t- Less clear there's an official pathway for test extensions<br>\r\n\t\t</td>\r\n\t</tr>\r\n</table>\r\n\r\n## API Design\r\n\r\nThe following is a working draft of an API design. It should not be considered final, or anything close to final. This post will be edited as it evolves.\r\n\r\n#### Changes versus the [Test Adapter API](https://github.com/hbenl/vscode-test-adapter-api)\r\n\r\nAs mentioned, the test adapter API and this one provide a similar end user experience. Here are the notable changes we made:\r\n\r\n- The test adapter API does not distinguish between watching a workspace and watching a file. In some cases, there is an existing process that reads workspace tests (such as a language server in Java) or it's not much more expensive to get workspace tests than file tests (such as mocha, perhaps). However, some cases, like Go, providing tests for a single file can be done very cheaply and efficiently without needing to involve the workspace.\r\n\r\n\tIn this API we expect the `TestProvider` to, after activation, always provide tests for the visible text editors, and we only request tests for the entire workspace when required (i.e. when the UI needs to enumerate them).\r\n\r\n- We have modeled the test state more closely after the existing `DiagnosticCollection`, where the Test Adapter API uses only events to enumerate tests and does not have a central collection.\r\n\r\n- The Test Adapter API makes the distinction between suites and tests, we do not. They have almost identical capabilities, and in [at least one scenario](https://blog.golang.org/subtests) the 'suites' are more like tests and the leaf 'tests' cannot be run individually.\r\n\r\n- We use object identity rather than ID for referencing tests. This is in line with other items in the VS Code API, including Diagnostics.\r\n\r\n#### Ideas and Open Questions\r\n\r\n- We do not (yet) have a concept of test invalidation and auto-run, which in the test adapter API via the \"retire\" event. We are still looking into how this can best be implemented.\r\n\t\r\n\tIn a golden scenario, invalidation of tests would be done by a language server which can intelligently determine specific tests that should be invalidated when a file or a file dependency changes. Maybe this is still handled by an event on the TestProvider, but if we take a \"Test Protocol\" approach then coordination will be harder.\r\n- As marked in the `todo`, we will expose APIs for other extensions to read test state and build UI, but this is not yet included in the API design.\r\n- How should errors loading tests be handled? Emit diagnostics or have some test-specific code?\r\n\r\n- We would like to support code coverage in testing as well, but that is further down the line.\r\n\r\n- How can we let users learn about/onboard to testing from within VS Code?\r\n\r\n### API\r\n\r\nSee the current working proposal in https://github.com/microsoft/vscode/blob/master/src/vs/vscode.proposed.d.ts (ctrl+f for 107467)",
|
|
"performed_via_github_app": null,
|
|
"score": 1
|
|
},
|
|
{
|
|
"url": "https://api.github.com/repos/microsoft/vscode/issues/105690",
|
|
"repository_url": "https://api.github.com/repos/microsoft/vscode",
|
|
"labels_url": "https://api.github.com/repos/microsoft/vscode/issues/105690/labels{/name}",
|
|
"comments_url": "https://api.github.com/repos/microsoft/vscode/issues/105690/comments",
|
|
"events_url": "https://api.github.com/repos/microsoft/vscode/issues/105690/events",
|
|
"html_url": "https://github.com/microsoft/vscode/issues/105690",
|
|
"id": 688793797,
|
|
"node_id": "MDU6SXNzdWU2ODg3OTM3OTc=",
|
|
"number": 105690,
|
|
"title": "Extension API for Inline Values",
|
|
"user": {
|
|
"login": "weinand",
|
|
"id": 1898161,
|
|
"node_id": "MDQ6VXNlcjE4OTgxNjE=",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/1898161?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/weinand",
|
|
"html_url": "https://github.com/weinand",
|
|
"followers_url": "https://api.github.com/users/weinand/followers",
|
|
"following_url": "https://api.github.com/users/weinand/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/weinand/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/weinand/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/weinand/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/weinand/orgs",
|
|
"repos_url": "https://api.github.com/users/weinand/repos",
|
|
"events_url": "https://api.github.com/users/weinand/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/weinand/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"labels": [
|
|
{
|
|
"id": 290465400,
|
|
"node_id": "MDU6TGFiZWwyOTA0NjU0MDA=",
|
|
"url": "https://api.github.com/repos/microsoft/vscode/labels/api",
|
|
"name": "api",
|
|
"color": "1d76db",
|
|
"default": false,
|
|
"description": ""
|
|
},
|
|
{
|
|
"id": 869332220,
|
|
"node_id": "MDU6TGFiZWw4NjkzMzIyMjA=",
|
|
"url": "https://api.github.com/repos/microsoft/vscode/labels/api-proposal",
|
|
"name": "api-proposal",
|
|
"color": "c5def5",
|
|
"default": false,
|
|
"description": ""
|
|
},
|
|
{
|
|
"id": 291054922,
|
|
"node_id": "MDU6TGFiZWwyOTEwNTQ5MjI=",
|
|
"url": "https://api.github.com/repos/microsoft/vscode/labels/debug",
|
|
"name": "debug",
|
|
"color": "1d76db",
|
|
"default": false,
|
|
"description": "Debug viewlet, configurations, breakpoints, adapter issues"
|
|
},
|
|
{
|
|
"id": 272689392,
|
|
"node_id": "MDU6TGFiZWwyNzI2ODkzOTI=",
|
|
"url": "https://api.github.com/repos/microsoft/vscode/labels/feature-request",
|
|
"name": "feature-request",
|
|
"color": "dcdcdc",
|
|
"default": false,
|
|
"description": "Request for new features or functionality"
|
|
}
|
|
],
|
|
"state": "open",
|
|
"locked": false,
|
|
"assignee": {
|
|
"login": "weinand",
|
|
"id": 1898161,
|
|
"node_id": "MDQ6VXNlcjE4OTgxNjE=",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/1898161?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/weinand",
|
|
"html_url": "https://github.com/weinand",
|
|
"followers_url": "https://api.github.com/users/weinand/followers",
|
|
"following_url": "https://api.github.com/users/weinand/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/weinand/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/weinand/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/weinand/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/weinand/orgs",
|
|
"repos_url": "https://api.github.com/users/weinand/repos",
|
|
"events_url": "https://api.github.com/users/weinand/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/weinand/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"assignees": [
|
|
{
|
|
"login": "weinand",
|
|
"id": 1898161,
|
|
"node_id": "MDQ6VXNlcjE4OTgxNjE=",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/1898161?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/weinand",
|
|
"html_url": "https://github.com/weinand",
|
|
"followers_url": "https://api.github.com/users/weinand/followers",
|
|
"following_url": "https://api.github.com/users/weinand/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/weinand/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/weinand/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/weinand/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/weinand/orgs",
|
|
"repos_url": "https://api.github.com/users/weinand/repos",
|
|
"events_url": "https://api.github.com/users/weinand/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/weinand/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
}
|
|
],
|
|
"milestone": {
|
|
"url": "https://api.github.com/repos/microsoft/vscode/milestones/142",
|
|
"html_url": "https://github.com/microsoft/vscode/milestone/142",
|
|
"labels_url": "https://api.github.com/repos/microsoft/vscode/milestones/142/labels",
|
|
"id": 6286096,
|
|
"node_id": "MDk6TWlsZXN0b25lNjI4NjA5Ng==",
|
|
"number": 142,
|
|
"title": "February 2021",
|
|
"description": "",
|
|
"creator": {
|
|
"login": "Tyriar",
|
|
"id": 2193314,
|
|
"node_id": "MDQ6VXNlcjIxOTMzMTQ=",
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/2193314?v=4",
|
|
"gravatar_id": "",
|
|
"url": "https://api.github.com/users/Tyriar",
|
|
"html_url": "https://github.com/Tyriar",
|
|
"followers_url": "https://api.github.com/users/Tyriar/followers",
|
|
"following_url": "https://api.github.com/users/Tyriar/following{/other_user}",
|
|
"gists_url": "https://api.github.com/users/Tyriar/gists{/gist_id}",
|
|
"starred_url": "https://api.github.com/users/Tyriar/starred{/owner}{/repo}",
|
|
"subscriptions_url": "https://api.github.com/users/Tyriar/subscriptions",
|
|
"organizations_url": "https://api.github.com/users/Tyriar/orgs",
|
|
"repos_url": "https://api.github.com/users/Tyriar/repos",
|
|
"events_url": "https://api.github.com/users/Tyriar/events{/privacy}",
|
|
"received_events_url": "https://api.github.com/users/Tyriar/received_events",
|
|
"type": "User",
|
|
"site_admin": false
|
|
},
|
|
"open_issues": 232,
|
|
"closed_issues": 300,
|
|
"state": "open",
|
|
"created_at": "2021-01-07T18:23:10Z",
|
|
"updated_at": "2021-02-17T10:48:47Z",
|
|
"due_on": null,
|
|
"closed_at": null
|
|
},
|
|
"comments": 7,
|
|
"created_at": "2020-08-30T21:21:23Z",
|
|
"updated_at": "2021-02-08T05:21:59Z",
|
|
"closed_at": null,
|
|
"author_association": "MEMBER",
|
|
"active_lock_reason": null,
|
|
"body": "Today the \"Show Inline Values\" feature of VS Code's debugger is based on a generic implementation in the VS Code core and provides neither customisability through settings, nor extensibility via extensions.\r\n\r\nAs a consequence, it is not a perfect fit for all languages (e.g. #101797) and sometimes even shows incorrect values because it doesn't understand the scope regions of the underlying language. \r\n\r\nThis features asks for an extension API that either replaces the built-in implementation completely or allows to replace parts of the implementation with custom code.\r\n",
|
|
"performed_via_github_app": null,
|
|
"score": 1
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
] |