From 9dab11bc278c93847dab468d15b2d36a343e4271 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Tue, 10 Mar 2015 14:53:33 -0700 Subject: [PATCH] Only mark buffers readonly if they're part of a project that supports Enc. --- .../EditAndContinue/VsReadOnlyDocumentTracker.cs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/VisualStudio/Core/Def/Implementation/EditAndContinue/VsReadOnlyDocumentTracker.cs b/src/VisualStudio/Core/Def/Implementation/EditAndContinue/VsReadOnlyDocumentTracker.cs index 6b9a2b92571..8ca192b9918 100644 --- a/src/VisualStudio/Core/Def/Implementation/EditAndContinue/VsReadOnlyDocumentTracker.cs +++ b/src/VisualStudio/Core/Def/Implementation/EditAndContinue/VsReadOnlyDocumentTracker.cs @@ -10,6 +10,7 @@ using Microsoft.VisualStudio.Text; using Microsoft.VisualStudio.TextManager.Interop; using Roslyn.Utilities; +using Microsoft.VisualStudio.LanguageServices.Implementation.ProjectSystem; namespace Microsoft.CodeAnalysis.Editor.Implementation.EditAndContinue { @@ -80,9 +81,16 @@ public void Dispose() private void SetReadOnly(Document document) { - SessionReadOnlyReason sessionReason; - ProjectReadOnlyReason projectReason; - SetReadOnly(document.Id, _encService.IsProjectReadOnly(document.Project.Name, out sessionReason, out projectReason)); + // Only set documents read-only if they're part of a project that supports Enc. + var workspace = document.Project.Solution.Workspace as VisualStudioWorkspaceImpl; + var project = workspace?.ProjectTracker?.GetProject(document.Project.Id) as AbstractEncProject; + + if (project != null) + { + SessionReadOnlyReason sessionReason; + ProjectReadOnlyReason projectReason; + SetReadOnly(document.Id, _encService.IsProjectReadOnly(document.Project.Name, out sessionReason, out projectReason)); + } } private void SetReadOnly(DocumentId documentId, bool value) -- GitLab