{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/roslyn/issues/31038","repository_url":"https://api.github.com/repos/dotnet/roslyn","labels_url":"https://api.github.com/repos/dotnet/roslyn/issues/31038/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/roslyn/issues/31038/comments","events_url":"https://api.github.com/repos/dotnet/roslyn/issues/31038/events","html_url":"https://github.com/dotnet/roslyn/issues/31038","id":378589323,"node_id":"MDU6SXNzdWUzNzg1ODkzMjM=","number":31038,"title":"Navigating to an analyzer issue causes the issue to disappear for a few seconds making me lose confidence in the product","user":{"login":"davkean","id":1103906,"node_id":"MDQ6VXNlcjExMDM5MDY=","avatar_url":"https://avatars1.githubusercontent.com/u/1103906?v=4","gravatar_id":"","url":"https://api.github.com/users/davkean","html_url":"https://github.com/davkean","followers_url":"https://api.github.com/users/davkean/followers","following_url":"https://api.github.com/users/davkean/following{/other_user}","gists_url":"https://api.github.com/users/davkean/gists{/gist_id}","starred_url":"https://api.github.com/users/davkean/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davkean/subscriptions","organizations_url":"https://api.github.com/users/davkean/orgs","repos_url":"https://api.github.com/users/davkean/repos","events_url":"https://api.github.com/users/davkean/events{/privacy}","received_events_url":"https://api.github.com/users/davkean/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":15,"created_at":"2018-11-08T05:55:24Z","updated_at":"2018-11-08T18:21:41Z","closed_at":null,"author_association":"MEMBER","body":"This issue has bothered me for a while, if I navigate to an issue, Roslyn appears to retag/scan/analyze the file resulting in issues that disappear momentarily only to come back. This does not happen for compiler errors or warnings, only for analyzers.\r\n\r\nThe larger the file, the longer this process takes. This makes me lose confidence in the product.\r\n\r\n![slow](https://user-images.githubusercontent.com/1103906/48180184-a2191900-e376-11e8-8164-3e1eb55ed0ed.gif)\r\n"},"comment":{"url":"https://api.github.com/repos/dotnet/roslyn/issues/comments/437103906","html_url":"https://github.com/dotnet/roslyn/issues/31038#issuecomment-437103906","issue_url":"https://api.github.com/repos/dotnet/roslyn/issues/31038","id":437103906,"node_id":"MDEyOklzc3VlQ29tbWVudDQzNzEwMzkwNg==","user":{"login":"mavasani","id":10605811,"node_id":"MDQ6VXNlcjEwNjA1ODEx","avatar_url":"https://avatars2.githubusercontent.com/u/10605811?v=4","gravatar_id":"","url":"https://api.github.com/users/mavasani","html_url":"https://github.com/mavasani","followers_url":"https://api.github.com/users/mavasani/followers","following_url":"https://api.github.com/users/mavasani/following{/other_user}","gists_url":"https://api.github.com/users/mavasani/gists{/gist_id}","starred_url":"https://api.github.com/users/mavasani/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mavasani/subscriptions","organizations_url":"https://api.github.com/users/mavasani/orgs","repos_url":"https://api.github.com/users/mavasani/repos","events_url":"https://api.github.com/users/mavasani/events{/privacy}","received_events_url":"https://api.github.com/users/mavasani/received_events","type":"User","site_admin":false},"created_at":"2018-11-08T18:21:41Z","updated_at":"2018-11-08T18:21:41Z","author_association":"CONTRIBUTOR","body":"@heejaechang is the expert in this area, so I will let him give more affirmative answers, but I think the challenge is that we leave the stale diagnostics in the system while the latest are being computed, then not only the user will see the stale diagnostics, but even the code fixer's RegisterCodeFixesAsync will get invoked with stale diagnostics for computing the light bulb preview on Ctrl + Dot. I recall @heejaechang had actually proposed once that we invoke the code fix with a stale diagnostic for computing the light bulb preview for a better experience with compilation end diagnostic's code fix. The primary risk is what if user edit had actually changed the original syntax node on which diagnostic was reported and the code fixer is not resistant enough to handle stale diagnostics from an older snapshot. Other minor side effect could be that preview shows the diagnostic can be fixed but attempting to apply it is a no-op as the actual code action will be invoked with latest diagnostics from the new snapshot, and that diagnostic may no longer exist, but I think that is acceptable experience.\r\n\r\n@heejaechang Do you think it is a big task to prototype this approach? If not, we can try out an experimental VSIX with this change and see if the experience is better. If so, we basically need to make sure that all IDE code fixers are hardened for the stale diagnostic scenario, which I presume most of them should be, but @CyrusNajmabadi can confirm."}}
{"actor":{"display_login":"mavasani"}}