{"action":"created","issue":{"url":"https://api.github.com/repos/Microsoft/vscode/issues/52317","repository_url":"https://api.github.com/repos/Microsoft/vscode","labels_url":"https://api.github.com/repos/Microsoft/vscode/issues/52317/labels{/name}","comments_url":"https://api.github.com/repos/Microsoft/vscode/issues/52317/comments","events_url":"https://api.github.com/repos/Microsoft/vscode/issues/52317/events","html_url":"https://github.com/Microsoft/vscode/issues/52317","id":333614800,"node_id":"MDU6SXNzdWUzMzM2MTQ4MDA=","number":52317,"title":"Clicking the + button to add a watch expression re-evaluates all expressions and waits until they complete before showing input box","user":{"login":"DanTup","id":1078012,"node_id":"MDQ6VXNlcjEwNzgwMTI=","avatar_url":"https://avatars2.githubusercontent.com/u/1078012?v=4","gravatar_id":"","url":"https://api.github.com/users/DanTup","html_url":"https://github.com/DanTup","followers_url":"https://api.github.com/users/DanTup/followers","following_url":"https://api.github.com/users/DanTup/following{/other_user}","gists_url":"https://api.github.com/users/DanTup/gists{/gist_id}","starred_url":"https://api.github.com/users/DanTup/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DanTup/subscriptions","organizations_url":"https://api.github.com/users/DanTup/orgs","repos_url":"https://api.github.com/users/DanTup/repos","events_url":"https://api.github.com/users/DanTup/events{/privacy}","received_events_url":"https://api.github.com/users/DanTup/received_events","type":"User","site_admin":false},"labels":[{"id":256129993,"node_id":"MDU6TGFiZWwyNTYxMjk5OTM=","url":"https://api.github.com/repos/Microsoft/vscode/labels/bug","name":"bug","color":"8D6673","default":true},{"id":291054922,"node_id":"MDU6TGFiZWwyOTEwNTQ5MjI=","url":"https://api.github.com/repos/Microsoft/vscode/labels/debug","name":"debug","color":"1d76db","default":false}],"state":"open","locked":false,"assignee":{"login":"isidorn","id":1926584,"node_id":"MDQ6VXNlcjE5MjY1ODQ=","avatar_url":"https://avatars2.githubusercontent.com/u/1926584?v=4","gravatar_id":"","url":"https://api.github.com/users/isidorn","html_url":"https://github.com/isidorn","followers_url":"https://api.github.com/users/isidorn/followers","following_url":"https://api.github.com/users/isidorn/following{/other_user}","gists_url":"https://api.github.com/users/isidorn/gists{/gist_id}","starred_url":"https://api.github.com/users/isidorn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/isidorn/subscriptions","organizations_url":"https://api.github.com/users/isidorn/orgs","repos_url":"https://api.github.com/users/isidorn/repos","events_url":"https://api.github.com/users/isidorn/events{/privacy}","received_events_url":"https://api.github.com/users/isidorn/received_events","type":"User","site_admin":false},"assignees":[{"login":"isidorn","id":1926584,"node_id":"MDQ6VXNlcjE5MjY1ODQ=","avatar_url":"https://avatars2.githubusercontent.com/u/1926584?v=4","gravatar_id":"","url":"https://api.github.com/users/isidorn","html_url":"https://github.com/isidorn","followers_url":"https://api.github.com/users/isidorn/followers","following_url":"https://api.github.com/users/isidorn/following{/other_user}","gists_url":"https://api.github.com/users/isidorn/gists{/gist_id}","starred_url":"https://api.github.com/users/isidorn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/isidorn/subscriptions","organizations_url":"https://api.github.com/users/isidorn/orgs","repos_url":"https://api.github.com/users/isidorn/repos","events_url":"https://api.github.com/users/isidorn/events{/privacy}","received_events_url":"https://api.github.com/users/isidorn/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/Microsoft/vscode/milestones/8","html_url":"https://github.com/Microsoft/vscode/milestone/8","labels_url":"https://api.github.com/repos/Microsoft/vscode/milestones/8/labels","id":1412124,"node_id":"MDk6TWlsZXN0b25lMTQxMjEyNA==","number":8,"title":"Backlog","description":"Work not yet planned for a specific release.","creator":{"login":"chrisdias","id":1487073,"node_id":"MDQ6VXNlcjE0ODcwNzM=","avatar_url":"https://avatars0.githubusercontent.com/u/1487073?v=4","gravatar_id":"","url":"https://api.github.com/users/chrisdias","html_url":"https://github.com/chrisdias","followers_url":"https://api.github.com/users/chrisdias/followers","following_url":"https://api.github.com/users/chrisdias/following{/other_user}","gists_url":"https://api.github.com/users/chrisdias/gists{/gist_id}","starred_url":"https://api.github.com/users/chrisdias/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chrisdias/subscriptions","organizations_url":"https://api.github.com/users/chrisdias/orgs","repos_url":"https://api.github.com/users/chrisdias/repos","events_url":"https://api.github.com/users/chrisdias/events{/privacy}","received_events_url":"https://api.github.com/users/chrisdias/received_events","type":"User","site_admin":false},"open_issues":1990,"closed_issues":3781,"state":"open","created_at":"2015-11-15T10:30:19Z","updated_at":"2018-06-20T07:25:14Z","due_on":null,"closed_at":null},"comments":10,"created_at":"2018-06-19T10:38:33Z","updated_at":"2018-06-20T08:36:40Z","closed_at":null,"author_association":"NONE","body":"When adding a new watch expression with the `+` button; an `evaluateRequest` is sent for all existing expressions and the input box for the new expression doesn't appear until all of them complete.\r\n\r\nThis makes it feel sluggish if the evaluations are slow (in my case, I have a bug so I put a 3s timeout on them; and I see a 3s delay whenever I try to add a new expression because of one of the existing expressions timing out). It also seems unnecessary - at this point it's just showing an empty input box so there's no need to re-evaluate everything (the same actually goes for any edits here, it seems to re-evaluate them all).\r\n\r\nOn a slightly greater tangent, the Watch window seems to generally behave really badly if there is an evaluateRequest that hasn't completed. For ex. if you make an evaluate request take 10 seconds; for that duration the Watch window just because really strangely (the enabled/disable state of the add/remove buttons is confusing, and the text labels seem to revert when you edit them)."},"comment":{"url":"https://api.github.com/repos/Microsoft/vscode/issues/comments/398670185","html_url":"https://github.com/Microsoft/vscode/issues/52317#issuecomment-398670185","issue_url":"https://api.github.com/repos/Microsoft/vscode/issues/52317","id":398670185,"node_id":"MDEyOklzc3VlQ29tbWVudDM5ODY3MDE4NQ==","user":{"login":"weinand","id":1898161,"node_id":"MDQ6VXNlcjE4OTgxNjE=","avatar_url":"https://avatars0.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},"created_at":"2018-06-20T08:36:40Z","updated_at":"2018-06-20T08:36:40Z","author_association":"MEMBER","body":"So we should try to limit the watch evaluations based on usage patterns, e.g.\r\n- add: only evaluate new watch\r\n- remove: no evaluate\r\n- stopped event: evaluate all\r\n\r\nThis might require that the tree refresh is decoupled from the watch evaluations so that we have better control when we do the evaluations.\r\n\r\nProbably the same applies to the variables tree too: If I understand the tree correctly we always reload values from the DA when we refresh the tree (because that is really needed on a stopped event). But if we would implement the feature that a DA can send notification when a variable value changes, we would need a more fine-grained refresh approach (where only a specific tree node needs to reload its value)."}}
{"actor":{"display_login":"weinand"}}