-
Notifications
You must be signed in to change notification settings - Fork 4.1k
/
InitializeManager.cs
44 lines (35 loc) · 1.18 KB
/
InitializeManager.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// 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 System;
using Roslyn.LanguageServer.Protocol;
using Roslyn.Utilities;
namespace Microsoft.CodeAnalysis.LanguageServer.Handler;
internal class InitializeManager : IInitializeManager
{
public InitializeManager()
{
}
private InitializeParams? _initializeParams;
public ClientCapabilities GetClientCapabilities()
{
if (_initializeParams?.Capabilities is null)
{
throw new InvalidOperationException($"Tried to get required {nameof(ClientCapabilities)} before it was set");
}
return _initializeParams.Capabilities;
}
public void SetInitializeParams(InitializeParams initializeParams)
{
Contract.ThrowIfFalse(_initializeParams == null);
_initializeParams = initializeParams;
}
public InitializeParams? TryGetInitializeParams()
{
return _initializeParams;
}
public ClientCapabilities? TryGetClientCapabilities()
{
return _initializeParams?.Capabilities;
}
}