From 6f6d5e71b6c7dc59de395aacb00742e0ecb6637a Mon Sep 17 00:00:00 2001 From: Omar Jair Purata Funes Date: Fri, 17 Dec 2021 22:09:00 -0600 Subject: [PATCH] Merge 967687b964b74523019aaaeb5b58a09f1a2587c3 created by @TysonAndre in #1230 --- src/language_client.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/language_client.rs b/src/language_client.rs index 60c62cb5..63cb9bdd 100644 --- a/src/language_client.rs +++ b/src/language_client.rs @@ -2273,7 +2273,16 @@ impl LanguageClient { .stdout .ok_or_else(|| anyhow!("Failed to get subprocess stdout"))?, )); - let writer = Box::new(BufWriter::new( + + // Allocate a much larger buffer size (1 megabyte instead of the BufWriter default of 8kb) + // so that Vim's ui doesn't get blocked when waiting to write to a language server + // that is doing work instead of reading from stdin + // (e.g. if the server is single threaded). + // + // On linux, the pipe buffer size defaults to 8 kilobytes. + // TCP allows much larger buffers than pipe buffers. + let writer = Box::new(BufWriter::with_capacity( + 1000000, process .stdin .ok_or_else(|| anyhow!("Failed to get subprocess stdin"))?,