File: Protocol\Methods.Lifecyle.cs
Web Access
Project: src\src\LanguageServer\Protocol\Microsoft.CodeAnalysis.LanguageServer.Protocol.csproj (Microsoft.CodeAnalysis.LanguageServer.Protocol)
// 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.
 
namespace Roslyn.LanguageServer.Protocol;
 
// https://microsoft.github.io/language-server-protocol/specifications/specification-current/#lifeCycleMessages
partial class Methods
{
    // NOTE: these are sorted/grouped in the order used by the spec
 
    /// <summary>
    /// Method name for 'initialize'.
    /// <para>
    /// The initialize request is sent as the first request from the client to the server and is used to exchange capabilities.
    /// </para>
    /// <para>
    /// See the <see href="https://microsoft.github.io/language-server-protocol/specifications/specification-current/#initialize">Language Server Protocol specification</see> for additional information.
    /// </para>
    /// </summary>
    public const string InitializeName = "initialize";
 
    /// <summary>
    /// Strongly typed message object for 'initialize'.
    /// </summary>
    public static readonly LspRequest<InitializeParams, InitializeResult> Initialize = new(InitializeName);
 
    /// <summary>
    /// Method name for 'initialized'.
    /// <para>
    /// The initialized notification is sent from the client to the server after the client received the
    /// result of the initialize request but before the client is sending any other request or notification to the server.
    /// </para>
    /// <para>
    /// See the <see href="https://microsoft.github.io/language-server-protocol/specifications/specification-current/#initialized">Language Server Protocol specification</see> for additional information.
    /// </para>
    /// </summary>
    public const string InitializedName = "initialized";
 
    /// <summary>
    /// Strongly typed message object for 'initialized'.
    /// </summary>
    public static readonly LspNotification<InitializedParams> Initialized = new(InitializedName);
 
    /// <summary>
    /// Method name for 'client/registerCapability'.
    /// <para>
    /// The client/registerCapability request is sent from the server to the client to register for a new capability on the client side.
    /// </para>
    /// <para>
    /// See the <see href="https://microsoft.github.io/language-server-protocol/specifications/specification-current/#client_registerCapability">Language Server Protocol specification</see> for additional information.
    /// </para>
    /// </summary>
    public const string ClientRegisterCapabilityName = "client/registerCapability";
 
    /// <summary>
    /// Strongly typed message object for 'client/registerCapability'.
    /// </summary>
    public static readonly LspRequest<RegistrationParams, object> ClientRegisterCapability = new(ClientRegisterCapabilityName);
 
    /// <summary>
    /// Method name for 'client/unregisterCapability'.
    /// <para>
    /// The client/unregisterCapability request is sent from the server to the client to unregister a previously registered capability.
    /// </para>
    /// <para>
    /// See the <see href="https://microsoft.github.io/language-server-protocol/specifications/specification-current/#client_unregisterCapability">Language Server Protocol specification</see> for additional information.
    /// </para>
    /// </summary>
    public const string ClientUnregisterCapabilityName = "client/unregisterCapability";
 
    /// <summary>
    /// Strongly typed message object for 'client/unregisterCapability'.
    /// </summary>
    public static readonly LspRequest<UnregistrationParams, object> ClientUnregisterCapability = new(ClientUnregisterCapabilityName);
 
    /// <summary>
    /// Method name for '$/setTrace' notifications.
    /// <para>
    /// A notification that should be used by the client to modify the trace setting of the server.
    /// </para>
    /// <para>
    /// See the <see href="https://microsoft.github.io/language-server-protocol/specifications/specification-current/#setTrace">Language Server Protocol specification</see> for additional information.
    /// </para>
    /// </summary>
    public const string SetTraceName = "$/setTrace";
 
    /// <summary>
    /// Strongly typed message object for '$/setTrace'.
    /// </summary>
    public static readonly LspNotification<SetTraceParams> SetTrace = new(SetTraceName);
 
    /// <summary>
    /// Method name for '$/logTrace' notifications.
    /// <para>
    /// A notification to log the trace of the server’s execution. This must
    /// respect the current trace configuration set by the $/logTrace notification.
    /// </para>
    /// <para>
    /// This should only be used for systematic trace reporting For single debugging messages,
    /// the server should instead send window/logMessage notifications.
    /// </para>
    /// <para>
    /// See the <see href="https://microsoft.github.io/language-server-protocol/specifications/specification-current/#logTrace">Language Server Protocol specification</see> for additional information.
    /// </para>
    /// </summary>
    public const string LogTraceName = "$/logTrace";
 
    /// <summary>
    /// Strongly typed message object for '$/logTrace'.
    /// </summary>
    public static readonly LspNotification<LogTraceParams> LogTrace = new(LogTraceName);
 
    /// <summary>
    /// Method name for 'shutdown'.
    /// <para>
    /// The shutdown request is sent from the client to the server. It asks the server to shut
    /// down, but to not exit (otherwise the response might not be delivered correctly to the
    /// client). There is a separate exit notification that asks the server to exit.
    /// <para>
    /// </para>
    /// See the <see href="https://microsoft.github.io/language-server-protocol/specifications/specification-current/#shutdown">Language Server Protocol specification</see> for additional information.
    /// </para>
    /// </summary>
    public const string ShutdownName = "shutdown";
 
    /// <summary>
    /// Strongly typed message object for 'shutdown'.
    /// </summary>
    public static readonly LspRequest<object?, object> Shutdown = new(ShutdownName);
 
    /// <summary>
    /// Method name for 'exit'.
    /// <para>
    /// A notification to ask the server to exit its process.
    /// <para>
    /// </para>
    /// See the <see href="https://microsoft.github.io/language-server-protocol/specifications/specification-current/#shutdown">Language Server Protocol specification</see> for additional information.
    /// </para>
    /// </summary>
    public const string ExitName = "exit";
 
    /// <summary>
    /// Strongly typed message object for 'exit'.
    /// </summary>
    public static readonly LspNotification<object?> Exit = new(ExitName);
}