Exemple #1
0
        internal LanguageClient(
            Connection connection,
            IOptions <LanguageClientOptions> options,
            IEnumerable <ICapability> capabilities,
            ClientInfo clientInfo,
            ClientCapabilities clientCapabilities,
            ILspClientReceiver lspClientReceiver,
            TextDocumentIdentifiers textDocumentIdentifiers,
            IServiceProvider serviceProvider,
            IEnumerable <OnLanguageClientStartedDelegate> startedDelegates,
            IEnumerable <IOnLanguageClientStarted> startedHandlers,
            ITextDocumentLanguageClient textDocumentLanguageClient,
            IClientLanguageClient clientLanguageClient,
            IGeneralLanguageClient generalLanguageClient,
            IWindowLanguageClient windowLanguageClient,
            IWorkspaceLanguageClient workspaceLanguageClient,
            LanguageProtocolSettingsBag languageProtocolSettingsBag,
            SharedHandlerCollection handlerCollection,
            IResponseRouter responseRouter,
            IProgressManager progressManager,
            IClientWorkDoneManager clientWorkDoneManager,
            IRegistrationManager registrationManager,
            ILanguageClientWorkspaceFoldersManager languageClientWorkspaceFoldersManager, IEnumerable <OnLanguageClientInitializeDelegate> initializeDelegates,
            IEnumerable <IOnLanguageClientInitialize> initializeHandlers, IEnumerable <OnLanguageClientInitializedDelegate> initializedDelegates,
            IEnumerable <IOnLanguageClientInitialized> initializedHandlers
            ) : base(handlerCollection, responseRouter)
        {
            _connection              = connection;
            _capabilities            = capabilities;
            _clientCapabilities      = clientCapabilities;
            _clientInfo              = clientInfo;
            _receiver                = lspClientReceiver;
            _textDocumentIdentifiers = textDocumentIdentifiers;
            _startedDelegates        = startedDelegates;
            _startedHandlers         = startedHandlers;
            _rootUri = options.Value.RootUri;
            _trace   = options.Value.Trace;
            _initializationOptions = options.Value.InitializationOptions;
            _settingsBag           = languageProtocolSettingsBag;
            _collection            = handlerCollection;
            Services = serviceProvider;

            _responseRouter         = responseRouter;
            ProgressManager         = progressManager;
            WorkDoneManager         = clientWorkDoneManager;
            RegistrationManager     = registrationManager;
            WorkspaceFoldersManager = languageClientWorkspaceFoldersManager;
            _initializeDelegates    = initializeDelegates;
            _initializeHandlers     = initializeHandlers;
            _initializedDelegates   = initializedDelegates;
            _initializedHandlers    = initializedHandlers;
            _concurrency            = options.Value.Concurrency;

            // We need to at least create Window here in case any handler does loggin in their constructor
            TextDocument = textDocumentLanguageClient;
            Client       = clientLanguageClient;
            General      = generalLanguageClient;
            Window       = windowLanguageClient;
            Workspace    = workspaceLanguageClient;
        }
Exemple #2
0
 public static TResult ObserveWorkDone <T, TResult>(
     this IWorkspaceLanguageClient proxy, T @params, Func <IWorkspaceLanguageClient, T, TResult> func, IWorkDoneProgressObserver observer
     )
     where T : IWorkDoneProgressParams
 {
     DoObserveWorkDone(proxy, @params, observer);
     return(func(proxy, @params));
 }
        public LanguageClientWorkspaceFoldersManager(IWorkspaceLanguageClient client, IEnumerable <WorkspaceFolder> workspaceFolders)
        {
            _client                  = client;
            _workspaceFolders        = new ConcurrentDictionary <DocumentUri, WorkspaceFolder>(DocumentUri.Comparer);
            _workspaceFoldersSubject = new ReplaySubject <IEnumerable <WorkspaceFolder> >(1);

            foreach (var folder in workspaceFolders)
            {
                _workspaceFolders.TryAdd(folder.Uri, folder);
            }
        }
Exemple #4
0
 public static Task ExecuteCommand(this IWorkspaceLanguageClient mediator, Command @params, CancellationToken cancellationToken = default)
 => mediator.ExecuteCommand(new ExecuteCommandParams {
     Arguments = @params.Arguments, Command = @params.Name
 }, cancellationToken);