IEditAndContinueWorkspaceService.cs 1.6 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14
// Copyright (c) Microsoft.  All Rights Reserved.  Licensed under the Apache License, Version 2.0.  See License.txt in the project root for license information.

using System;
using System.Collections.Immutable;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.CodeAnalysis.Host;
using Microsoft.CodeAnalysis.Text;

namespace Microsoft.CodeAnalysis.EditAndContinue
{
    internal interface IEditAndContinueWorkspaceService : IWorkspaceService
    {
        Task<ImmutableArray<Diagnostic>> GetDocumentDiagnosticsAsync(Document document, CancellationToken cancellationToken);
15
        Task<bool> HasChangesAsync(string sourceFilePath, CancellationToken cancellationToken);
16 17 18 19 20 21 22 23 24
        Task<(SolutionUpdateStatus Summary, ImmutableArray<Deltas> Deltas)> EmitSolutionUpdateAsync(CancellationToken cancellationToken);

        void CommitSolutionUpdate();
        void DiscardSolutionUpdate();

        void OnManagedModuleInstanceLoaded(Guid mvid);
        void OnManagedModuleInstanceUnloaded(Guid mvid);

        bool IsDebuggingSessionInProgress { get; }
25
        void OnSourceFileUpdated(DocumentId documentId);
26 27 28 29 30 31 32 33 34 35 36 37

        void StartDebuggingSession();
        void StartEditSession();
        void EndEditSession();
        void EndDebuggingSession();

        Task<bool?> IsActiveStatementInExceptionRegionAsync(ActiveInstructionId instructionId, CancellationToken cancellationToken);
        Task<LinePositionSpan?> GetCurrentActiveStatementPositionAsync(ActiveInstructionId instructionId, CancellationToken cancellationToken);

        void ReportApplyChangesException(string message);
    }
}