{"action":"created","comment":{"url":"https://api.github.com/repos/dotnet/roslyn-project-system/pulls/comments/93340106","pull_request_review_id":13865767,"id":93340106,"diff_hunk":"@@ -0,0 +1,152 @@\n+﻿using System;\n+using System.ComponentModel.Composition;\n+using System.Runtime.InteropServices;\n+using Microsoft.VisualStudio.Shell.Interop;\n+using Microsoft.VisualStudio.TextManager.Interop;\n+using Microsoft.VisualStudio.ProjectSystem.LanguageServices;\n+using Microsoft.VisualStudio.LanguageServices.ProjectSystem;\n+using Microsoft.VisualStudio.ProjectSystem;\n+using Microsoft.VisualStudio.ProjectSystem.VS;\n+using EncInterop = Microsoft.VisualStudio.LanguageServices.Implementation.EditAndContinue.Interop;\n+\n+namespace Microsoft.VisualStudio.ProjectSystem.Managed.VS.EditAndContinue\n+{\n+\n+    [Export(ExportContractNames.VsTypes.ProjectNodeComExtension)]\n+    [AppliesTo(ProjectCapability.ManagedEditAndContinue)]\n+    [ComServiceIid(typeof(IVsENCRebuildableProjectCfg))]\n+    [ComServiceIid(typeof(EncInterop.IVsENCRebuildableProjectCfg2))]\n+    [ComServiceIid(typeof(EncInterop.IVsENCRebuildableProjectCfg4))]\n+    internal class EditAndContinueProvider : IVsENCRebuildableProjectCfg, EncInterop.IVsENCRebuildableProjectCfg2, EncInterop.IVsENCRebuildableProjectCfg4\n+    {\n+        private readonly ILanguageServiceHost _host;\n+\n+        [ImportingConstructor]\n+        public EditAndContinueProvider(ILanguageServiceHost host)\n+        {\n+            _host = host;\n+        }\n+\n+        #region IVsENCRebuildableProjectCfg Implementation\n+        // Managed ENC always uses IVsENCRebuildableProjectCfg2.\n+        // Although we don't implement the methods of IVsENCRebuildableProjectCfg, it is important that we implement the interface and return VSConstants.E_NOTIMPL.\n+        // This is how the EncManager recognizes the project system that supports EnC.\n+        public int ENCRebuild(object in_pProgram, out object out_ppSnapshot)\n+        {\n+            out_ppSnapshot = null;\n+            return VSConstants.E_NOTIMPL;\n+        }\n+\n+        public int BelongToProject(string in_szFileName, ENC_REASON in_ENCReason, int in_fOnContinue)\n+        {\n+            return VSConstants.E_NOTIMPL;\n+        }\n+\n+        public int ENCComplete(int in_fENCSuccess)\n+        {\n+            return VSConstants.E_NOTIMPL;\n+        }\n+\n+        public int CancelENC()\n+        {\n+            return VSConstants.E_NOTIMPL;\n+        }\n+\n+        public int ENCRelink([In, MarshalAs(UnmanagedType.IUnknown)] object pENCRelinkInfo)\n+        {\n+            return VSConstants.E_NOTIMPL;\n+        }\n+\n+        public int StartDebugging()\n+        {\n+            return VSConstants.E_NOTIMPL;\n+        }\n+\n+        public int StopDebugging()\n+        {\n+            return VSConstants.E_NOTIMPL;\n+        }\n+\n+        public int SetENCProjectBuildOption([In] ref Guid in_guidOption, [In, MarshalAs(UnmanagedType.LPWStr)] string in_szOptionValue)\n+        {\n+            return VSConstants.E_NOTIMPL;\n+        }\n+        #endregion\n+\n+        #region IVsENCRebuildableProjectCfg2 Implementation\n+        public int BuildForEnc([In, MarshalAs(UnmanagedType.IUnknown)] object pUpdatePE)\n+        {\n+            return ((EncInterop.IVsENCRebuildableProjectCfg2)_host.HostSpecificEditAndContinueService)?.BuildForEnc(pUpdatePE) ?? VSConstants.S_OK;","path":"src/Microsoft.VisualStudio.ProjectSystem.Managed.VS/ProjectSystem/VS/EditAndContinue/EditAndContinueProvider.cs","position":79,"original_position":79,"commit_id":"eae54eb8d7e91dc5d457a66fd692664404904354","original_commit_id":"eae54eb8d7e91dc5d457a66fd692664404904354","user":{"login":"davkean","id":1103906,"avatar_url":"https://avatars.githubusercontent.com/u/1103906?v=3","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},"body":"I still do not understand the logic of when you return S_OK and when you return E_FAIL. Can you explain?","created_at":"2016-12-20T22:33:54Z","updated_at":"2016-12-20T22:33:54Z","html_url":"https://github.com/dotnet/roslyn-project-system/pull/968#discussion_r93340106","pull_request_url":"https://api.github.com/repos/dotnet/roslyn-project-system/pulls/968","_links":{"self":{"href":"https://api.github.com/repos/dotnet/roslyn-project-system/pulls/comments/93340106"},"html":{"href":"https://github.com/dotnet/roslyn-project-system/pull/968#discussion_r93340106"},"pull_request":{"href":"https://api.github.com/repos/dotnet/roslyn-project-system/pulls/968"}}},"pull_request":{"url":"https://api.github.com/repos/dotnet/roslyn-project-system/pulls/968","id":98254367,"html_url":"https://github.com/dotnet/roslyn-project-system/pull/968","diff_url":"https://github.com/dotnet/roslyn-project-system/pull/968.diff","patch_url":"https://github.com/dotnet/roslyn-project-system/pull/968.patch","issue_url":"https://api.github.com/repos/dotnet/roslyn-project-system/issues/968","number":968,"state":"open","locked":false,"title":"Add Edit and Continue support","user":{"login":"basoundr","id":10550513,"avatar_url":"https://avatars.githubusercontent.com/u/10550513?v=3","gravatar_id":"","url":"https://api.github.com/users/basoundr","html_url":"https://github.com/basoundr","followers_url":"https://api.github.com/users/basoundr/followers","following_url":"https://api.github.com/users/basoundr/following{/other_user}","gists_url":"https://api.github.com/users/basoundr/gists{/gist_id}","starred_url":"https://api.github.com/users/basoundr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/basoundr/subscriptions","organizations_url":"https://api.github.com/users/basoundr/orgs","repos_url":"https://api.github.com/users/basoundr/repos","events_url":"https://api.github.com/users/basoundr/events{/privacy}","received_events_url":"https://api.github.com/users/basoundr/received_events","type":"User","site_admin":false},"body":"This EditAndContinueProvider is just a proxy which redirects the call for EnC to the language service.\r\n\r\n@srivatsn @tmat @dotnet/project-system for review","created_at":"2016-12-15T23:50:13Z","updated_at":"2016-12-20T22:33:54Z","closed_at":null,"merged_at":null,"merge_commit_sha":"3b18bfe31fef627a2900e9be7f6d4700d2c23251","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/dotnet/roslyn-project-system/pulls/968/commits","review_comments_url":"https://api.github.com/repos/dotnet/roslyn-project-system/pulls/968/comments","review_comment_url":"https://api.github.com/repos/dotnet/roslyn-project-system/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dotnet/roslyn-project-system/issues/968/comments","statuses_url":"https://api.github.com/repos/dotnet/roslyn-project-system/statuses/eae54eb8d7e91dc5d457a66fd692664404904354","head":{"label":"basoundr:AddEnc","ref":"AddEnc","sha":"eae54eb8d7e91dc5d457a66fd692664404904354","user":{"login":"basoundr","id":10550513,"avatar_url":"https://avatars.githubusercontent.com/u/10550513?v=3","gravatar_id":"","url":"https://api.github.com/users/basoundr","html_url":"https://github.com/basoundr","followers_url":"https://api.github.com/users/basoundr/followers","following_url":"https://api.github.com/users/basoundr/following{/other_user}","gists_url":"https://api.github.com/users/basoundr/gists{/gist_id}","starred_url":"https://api.github.com/users/basoundr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/basoundr/subscriptions","organizations_url":"https://api.github.com/users/basoundr/orgs","repos_url":"https://api.github.com/users/basoundr/repos","events_url":"https://api.github.com/users/basoundr/events{/privacy}","received_events_url":"https://api.github.com/users/basoundr/received_events","type":"User","site_admin":false},"repo":{"id":58071639,"name":"roslyn-project-system","full_name":"basoundr/roslyn-project-system","owner":{"login":"basoundr","id":10550513,"avatar_url":"https://avatars.githubusercontent.com/u/10550513?v=3","gravatar_id":"","url":"https://api.github.com/users/basoundr","html_url":"https://github.com/basoundr","followers_url":"https://api.github.com/users/basoundr/followers","following_url":"https://api.github.com/users/basoundr/following{/other_user}","gists_url":"https://api.github.com/users/basoundr/gists{/gist_id}","starred_url":"https://api.github.com/users/basoundr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/basoundr/subscriptions","organizations_url":"https://api.github.com/users/basoundr/orgs","repos_url":"https://api.github.com/users/basoundr/repos","events_url":"https://api.github.com/users/basoundr/events{/privacy}","received_events_url":"https://api.github.com/users/basoundr/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/basoundr/roslyn-project-system","description":"The C# and Visual Basic project system for Visual Studio \"15\"","fork":true,"url":"https://api.github.com/repos/basoundr/roslyn-project-system","forks_url":"https://api.github.com/repos/basoundr/roslyn-project-system/forks","keys_url":"https://api.github.com/repos/basoundr/roslyn-project-system/keys{/key_id}","collaborators_url":"https://api.github.com/repos/basoundr/roslyn-project-system/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/basoundr/roslyn-project-system/teams","hooks_url":"https://api.github.com/repos/basoundr/roslyn-project-system/hooks","issue_events_url":"https://api.github.com/repos/basoundr/roslyn-project-system/issues/events{/number}","events_url":"https://api.github.com/repos/basoundr/roslyn-project-system/events","assignees_url":"https://api.github.com/repos/basoundr/roslyn-project-system/assignees{/user}","branches_url":"https://api.github.com/repos/basoundr/roslyn-project-system/branches{/branch}","tags_url":"https://api.github.com/repos/basoundr/roslyn-project-system/tags","blobs_url":"https://api.github.com/repos/basoundr/roslyn-project-system/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/basoundr/roslyn-project-system/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/basoundr/roslyn-project-system/git/refs{/sha}","trees_url":"https://api.github.com/repos/basoundr/roslyn-project-system/git/trees{/sha}","statuses_url":"https://api.github.com/repos/basoundr/roslyn-project-system/statuses/{sha}","languages_url":"https://api.github.com/repos/basoundr/roslyn-project-system/languages","stargazers_url":"https://api.github.com/repos/basoundr/roslyn-project-system/stargazers","contributors_url":"https://api.github.com/repos/basoundr/roslyn-project-system/contributors","subscribers_url":"https://api.github.com/repos/basoundr/roslyn-project-system/subscribers","subscription_url":"https://api.github.com/repos/basoundr/roslyn-project-system/subscription","commits_url":"https://api.github.com/repos/basoundr/roslyn-project-system/commits{/sha}","git_commits_url":"https://api.github.com/repos/basoundr/roslyn-project-system/git/commits{/sha}","comments_url":"https://api.github.com/repos/basoundr/roslyn-project-system/comments{/number}","issue_comment_url":"https://api.github.com/repos/basoundr/roslyn-project-system/issues/comments{/number}","contents_url":"https://api.github.com/repos/basoundr/roslyn-project-system/contents/{+path}","compare_url":"https://api.github.com/repos/basoundr/roslyn-project-system/compare/{base}...{head}","merges_url":"https://api.github.com/repos/basoundr/roslyn-project-system/merges","archive_url":"https://api.github.com/repos/basoundr/roslyn-project-system/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/basoundr/roslyn-project-system/downloads","issues_url":"https://api.github.com/repos/basoundr/roslyn-project-system/issues{/number}","pulls_url":"https://api.github.com/repos/basoundr/roslyn-project-system/pulls{/number}","milestones_url":"https://api.github.com/repos/basoundr/roslyn-project-system/milestones{/number}","notifications_url":"https://api.github.com/repos/basoundr/roslyn-project-system/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/basoundr/roslyn-project-system/labels{/name}","releases_url":"https://api.github.com/repos/basoundr/roslyn-project-system/releases{/id}","deployments_url":"https://api.github.com/repos/basoundr/roslyn-project-system/deployments","created_at":"2016-05-04T17:41:51Z","updated_at":"2016-10-05T18:40:00Z","pushed_at":"2016-12-20T21:57:25Z","git_url":"git://github.com/basoundr/roslyn-project-system.git","ssh_url":"git@github.com:basoundr/roslyn-project-system.git","clone_url":"https://github.com/basoundr/roslyn-project-system.git","svn_url":"https://github.com/basoundr/roslyn-project-system","homepage":null,"size":10042,"stargazers_count":0,"watchers_count":0,"language":"C#","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"dotnet:master","ref":"master","sha":"b7743788e3cfa67b6273a4a642f2cbee0d3bc80f","user":{"login":"dotnet","id":9141961,"avatar_url":"https://avatars.githubusercontent.com/u/9141961?v=3","gravatar_id":"","url":"https://api.github.com/users/dotnet","html_url":"https://github.com/dotnet","followers_url":"https://api.github.com/users/dotnet/followers","following_url":"https://api.github.com/users/dotnet/following{/other_user}","gists_url":"https://api.github.com/users/dotnet/gists{/gist_id}","starred_url":"https://api.github.com/users/dotnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dotnet/subscriptions","organizations_url":"https://api.github.com/users/dotnet/orgs","repos_url":"https://api.github.com/users/dotnet/repos","events_url":"https://api.github.com/users/dotnet/events{/privacy}","received_events_url":"https://api.github.com/users/dotnet/received_events","type":"Organization","site_admin":false},"repo":{"id":56740275,"name":"roslyn-project-system","full_name":"dotnet/roslyn-project-system","owner":{"login":"dotnet","id":9141961,"avatar_url":"https://avatars.githubusercontent.com/u/9141961?v=3","gravatar_id":"","url":"https://api.github.com/users/dotnet","html_url":"https://github.com/dotnet","followers_url":"https://api.github.com/users/dotnet/followers","following_url":"https://api.github.com/users/dotnet/following{/other_user}","gists_url":"https://api.github.com/users/dotnet/gists{/gist_id}","starred_url":"https://api.github.com/users/dotnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dotnet/subscriptions","organizations_url":"https://api.github.com/users/dotnet/orgs","repos_url":"https://api.github.com/users/dotnet/repos","events_url":"https://api.github.com/users/dotnet/events{/privacy}","received_events_url":"https://api.github.com/users/dotnet/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dotnet/roslyn-project-system","description":"The C# and Visual Basic project system for Visual Studio \"15\"","fork":false,"url":"https://api.github.com/repos/dotnet/roslyn-project-system","forks_url":"https://api.github.com/repos/dotnet/roslyn-project-system/forks","keys_url":"https://api.github.com/repos/dotnet/roslyn-project-system/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dotnet/roslyn-project-system/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dotnet/roslyn-project-system/teams","hooks_url":"https://api.github.com/repos/dotnet/roslyn-project-system/hooks","issue_events_url":"https://api.github.com/repos/dotnet/roslyn-project-system/issues/events{/number}","events_url":"https://api.github.com/repos/dotnet/roslyn-project-system/events","assignees_url":"https://api.github.com/repos/dotnet/roslyn-project-system/assignees{/user}","branches_url":"https://api.github.com/repos/dotnet/roslyn-project-system/branches{/branch}","tags_url":"https://api.github.com/repos/dotnet/roslyn-project-system/tags","blobs_url":"https://api.github.com/repos/dotnet/roslyn-project-system/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dotnet/roslyn-project-system/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dotnet/roslyn-project-system/git/refs{/sha}","trees_url":"https://api.github.com/repos/dotnet/roslyn-project-system/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dotnet/roslyn-project-system/statuses/{sha}","languages_url":"https://api.github.com/repos/dotnet/roslyn-project-system/languages","stargazers_url":"https://api.github.com/repos/dotnet/roslyn-project-system/stargazers","contributors_url":"https://api.github.com/repos/dotnet/roslyn-project-system/contributors","subscribers_url":"https://api.github.com/repos/dotnet/roslyn-project-system/subscribers","subscription_url":"https://api.github.com/repos/dotnet/roslyn-project-system/subscription","commits_url":"https://api.github.com/repos/dotnet/roslyn-project-system/commits{/sha}","git_commits_url":"https://api.github.com/repos/dotnet/roslyn-project-system/git/commits{/sha}","comments_url":"https://api.github.com/repos/dotnet/roslyn-project-system/comments{/number}","issue_comment_url":"https://api.github.com/repos/dotnet/roslyn-project-system/issues/comments{/number}","contents_url":"https://api.github.com/repos/dotnet/roslyn-project-system/contents/{+path}","compare_url":"https://api.github.com/repos/dotnet/roslyn-project-system/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dotnet/roslyn-project-system/merges","archive_url":"https://api.github.com/repos/dotnet/roslyn-project-system/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dotnet/roslyn-project-system/downloads","issues_url":"https://api.github.com/repos/dotnet/roslyn-project-system/issues{/number}","pulls_url":"https://api.github.com/repos/dotnet/roslyn-project-system/pulls{/number}","milestones_url":"https://api.github.com/repos/dotnet/roslyn-project-system/milestones{/number}","notifications_url":"https://api.github.com/repos/dotnet/roslyn-project-system/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dotnet/roslyn-project-system/labels{/name}","releases_url":"https://api.github.com/repos/dotnet/roslyn-project-system/releases{/id}","deployments_url":"https://api.github.com/repos/dotnet/roslyn-project-system/deployments","created_at":"2016-04-21T03:40:18Z","updated_at":"2016-12-20T20:05:43Z","pushed_at":"2016-12-20T21:57:21Z","git_url":"git://github.com/dotnet/roslyn-project-system.git","ssh_url":"git@github.com:dotnet/roslyn-project-system.git","clone_url":"https://github.com/dotnet/roslyn-project-system.git","svn_url":"https://github.com/dotnet/roslyn-project-system","homepage":null,"size":10014,"stargazers_count":188,"watchers_count":188,"language":"C#","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":47,"mirror_url":null,"open_issues_count":325,"forks":47,"open_issues":325,"watchers":188,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dotnet/roslyn-project-system/pulls/968"},"html":{"href":"https://github.com/dotnet/roslyn-project-system/pull/968"},"issue":{"href":"https://api.github.com/repos/dotnet/roslyn-project-system/issues/968"},"comments":{"href":"https://api.github.com/repos/dotnet/roslyn-project-system/issues/968/comments"},"review_comments":{"href":"https://api.github.com/repos/dotnet/roslyn-project-system/pulls/968/comments"},"review_comment":{"href":"https://api.github.com/repos/dotnet/roslyn-project-system/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dotnet/roslyn-project-system/pulls/968/commits"},"statuses":{"href":"https://api.github.com/repos/dotnet/roslyn-project-system/statuses/eae54eb8d7e91dc5d457a66fd692664404904354"}}}}
{"actor":{"display_login":"davkean"}}