Task <Unit> IRequestHandler <DidChangeWorkspaceFoldersParams, Unit> .Handle(DidChangeWorkspaceFoldersParams request, CancellationToken cancellationToken)
        {
            if (!IsSupported)
            {
                return(Unit.Task);
            }
            foreach (var folder in request.Event.Added)
            {
                _workspaceFolders.AddOrUpdate(folder.Uri, folder, (a, b) => folder);
                if (_workspaceFoldersChangedSubject.IsDisposed)
                {
                    continue;
                }
                _workspaceFoldersChangedSubject.OnNext(new WorkspaceFolderChange(WorkspaceFolderEvent.Add, folder));
            }

            foreach (var folder in request.Event.Removed)
            {
                _workspaceFolders.TryRemove(folder.Uri, out _);
                if (_workspaceFoldersChangedSubject.IsDisposed)
                {
                    continue;
                }
                _workspaceFoldersChangedSubject.OnNext(new WorkspaceFolderChange(WorkspaceFolderEvent.Remove, folder));
            }

            if (_workspaceFoldersSubject.IsDisposed)
            {
                _workspaceFoldersSubject.OnNext(_workspaceFolders.Values);
            }

            return(Unit.Task);
        }
Esempio n. 2
0
 public Task <Unit> Handle(DidChangeWorkspaceFoldersParams request, CancellationToken cancellationToken) => Unit.Task;
 public override Task <Unit> Handle(DidChangeWorkspaceFoldersParams request, CancellationToken cancellationToken) => _handler.Invoke(request, cancellationToken);
 public abstract Task <Unit> Handle(DidChangeWorkspaceFoldersParams request, CancellationToken cancellationToken);
Esempio n. 5
0
        public async Task <Unit> Handle(DidChangeWorkspaceFoldersParams request, CancellationToken cancellationToken)
        {
            await UpdateProjects(UpdateProjectsOptions.ReloadProjects);

            return(Unit.Value);
        }
 public static void DidChangeWorkspaceFolders(this ILanguageClientWorkspace router, DidChangeWorkspaceFoldersParams @params)
 {
     router.SendNotification(WorkspaceNames.DidChangeWorkspaceFolders, @params);
 }
Esempio n. 7
0
 public abstract RpcResult DidChangeWorkspaceFolders(DidChangeWorkspaceFoldersParams args);