File: ProjectSystem\IOpenTextBufferEventListener.cs
Web Access
Project: src\src\VisualStudio\Core\Def\Microsoft.VisualStudio.LanguageServices_avk53qfa_wpftmp.csproj (Microsoft.VisualStudio.LanguageServices)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
 
using Microsoft.VisualStudio.Shell.Interop;
using Microsoft.VisualStudio.Text;
 
namespace Microsoft.VisualStudio.LanguageServices.Implementation.ProjectSystem;
 
/// <summary>
/// Defines the methods that get called by the <see cref="OpenTextBufferProvider"/>
/// for getting notified about running document table events.
/// </summary>
internal interface IOpenTextBufferEventListener
{
    /// <summary>
    /// Triggered when a document is opened.
    /// </summary>
    /// <param name="moniker">the moniker of the opened document.</param>
    /// <param name="textBuffer">the text buffer of the opened document)</param>
    /// <param name="hierarchy">the hierarchy of the text buffer if available.</param>
    void OnOpenDocument(string moniker, ITextBuffer textBuffer, IVsHierarchy? hierarchy);
 
    void OnDocumentOpenedIntoWindowFrame(string moniker, IVsWindowFrame windowFrame);
 
    /// <summary>
    /// Triggered when a document is closed.
    /// </summary>
    /// <param name="moniker">the moniker of the closed document.</param>
    void OnCloseDocument(string moniker);
 
    /// <summary>
    /// Triggered when a document is saved.
    /// </summary>
    /// <param name="moniker">the moniker of the saved document.</param>
    void OnSaveDocument(string moniker);
 
    /// <summary>
    /// Triggered when a document context is refreshed with a new hierarchy.
    /// </summary>
    /// <param name="moniker">the moniker of the document that changed.</param>
    /// <param name="hierarchy">the hierarchy of the text buffer if available.</param>
    void OnRefreshDocumentContext(string moniker, IVsHierarchy hierarchy);
 
    /// <summary>
    /// Triggered when a document moniker changes.
    /// </summary>
    /// <param name="newMoniker">the document's new moniker.</param>
    /// <param name="oldMoniker">the document's old moniker.</param>
    /// <param name="textBuffer">the document's buffer.</param>
    void OnRenameDocument(string newMoniker, string oldMoniker, ITextBuffer textBuffer);
}