diff --git a/src/FsAutoComplete/LspServers/AdaptiveFSharpLspServer.fs b/src/FsAutoComplete/LspServers/AdaptiveFSharpLspServer.fs index 1dc7e9820..b026413b1 100644 --- a/src/FsAutoComplete/LspServers/AdaptiveFSharpLspServer.fs +++ b/src/FsAutoComplete/LspServers/AdaptiveFSharpLspServer.fs @@ -440,8 +440,8 @@ type AdaptiveFSharpLspServer(workspaceLoader: IWorkspaceLoader, lspClient: FShar do disposables.Add( (notifications.Publish :> IObservable<_>) - // .BufferedDebounce(TimeSpan.FromMilliseconds(200.)) - // .SelectMany(fun l -> l.Distinct()) + .BufferedDebounce(TimeSpan.FromMilliseconds(200.)) + .SelectMany(fun l -> l.Distinct()) .Subscribe(fun e -> handleCommandEvents e) ) diff --git a/src/FsAutoComplete/LspServers/Common.fs b/src/FsAutoComplete/LspServers/Common.fs index e5792c8b7..24d40c351 100644 --- a/src/FsAutoComplete/LspServers/Common.fs +++ b/src/FsAutoComplete/LspServers/Common.fs @@ -188,7 +188,9 @@ module ObservableExtensions = /// Fires an event only after the specified interval has passed in which no other pending event has fired. Buffers all events leading up to that emit. member x.BufferedDebounce(ts: TimeSpan) = - x.Publish(fun shared -> shared.Window(shared.Throttle(ts))) + x + .Publish(fun shared -> shared.Window(shared.Throttle(ts))) + .SelectMany(fun l -> l.ToList()) module Helpers = let notImplemented<'t> = async.Return LspResult.notImplemented<'t>