mirror of
https://github.com/latex-lsp/texlab.git
synced 2025-08-04 10:49:55 +00:00
Replace flume dependency
This commit is contained in:
parent
eebfda7bf0
commit
306838c791
3 changed files with 9 additions and 90 deletions
66
Cargo.lock
generated
66
Cargo.lock
generated
|
@ -578,19 +578,6 @@ dependencies = [
|
|||
"miniz_oxide",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "flume"
|
||||
version = "0.10.14"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577"
|
||||
dependencies = [
|
||||
"futures-core",
|
||||
"futures-sink",
|
||||
"nanorand",
|
||||
"pin-project",
|
||||
"spin",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "fnv"
|
||||
version = "1.0.7"
|
||||
|
@ -615,18 +602,6 @@ dependencies = [
|
|||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "futures-core"
|
||||
version = "0.3.28"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
|
||||
|
||||
[[package]]
|
||||
name = "futures-sink"
|
||||
version = "0.3.28"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
|
||||
|
||||
[[package]]
|
||||
name = "fuzzy-matcher"
|
||||
version = "0.3.7"
|
||||
|
@ -653,10 +628,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"js-sys",
|
||||
"libc",
|
||||
"wasi",
|
||||
"wasm-bindgen",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -1020,15 +993,6 @@ dependencies = [
|
|||
"windows-sys 0.45.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "nanorand"
|
||||
version = "0.7.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3"
|
||||
dependencies = [
|
||||
"getrandom",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "notify"
|
||||
version = "5.1.0"
|
||||
|
@ -1217,26 +1181,6 @@ dependencies = [
|
|||
"siphasher",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pin-project"
|
||||
version = "1.0.12"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc"
|
||||
dependencies = [
|
||||
"pin-project-internal",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pin-project-internal"
|
||||
version = "1.0.12"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 1.0.109",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "plotters"
|
||||
version = "0.3.4"
|
||||
|
@ -1519,15 +1463,6 @@ dependencies = [
|
|||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "spin"
|
||||
version = "0.9.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
|
||||
dependencies = [
|
||||
"lock_api",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "strsim"
|
||||
version = "0.10.0"
|
||||
|
@ -1595,7 +1530,6 @@ dependencies = [
|
|||
"encoding_rs_io",
|
||||
"fern",
|
||||
"flate2",
|
||||
"flume",
|
||||
"fuzzy-matcher",
|
||||
"human_name",
|
||||
"insta",
|
||||
|
|
|
@ -43,7 +43,6 @@ encoding_rs = "0.8.32"
|
|||
encoding_rs_io = "0.1.7"
|
||||
fern = "0.6.2"
|
||||
flate2 = "1.0.25"
|
||||
flume = "0.10.14"
|
||||
fuzzy-matcher = { version = "0.3.7", features = ["compact"] }
|
||||
human_name = { version = "2.0.1", default-features = false }
|
||||
itertools = "0.10.5"
|
||||
|
|
|
@ -113,30 +113,16 @@ impl Command {
|
|||
}
|
||||
};
|
||||
|
||||
let (line_sender, line_receiver) = flume::unbounded();
|
||||
let (exit_sender, exit_receiver) = flume::unbounded();
|
||||
track_output(process.stderr.take().unwrap(), line_sender.clone());
|
||||
track_output(process.stdout.take().unwrap(), line_sender);
|
||||
let (sender, receiver) = crossbeam_channel::unbounded();
|
||||
track_output(process.stderr.take().unwrap(), sender.clone());
|
||||
track_output(process.stdout.take().unwrap(), sender.clone());
|
||||
let client = self.client.clone();
|
||||
let handle = std::thread::spawn(move || {
|
||||
let typ = lsp_types::MessageType::LOG;
|
||||
|
||||
loop {
|
||||
let done = flume::Selector::new()
|
||||
.recv(&line_receiver, |line| match line {
|
||||
Ok(message) => {
|
||||
let params = LogMessageParams { message, typ };
|
||||
let _ = client.send_notification::<LogMessage>(params);
|
||||
false
|
||||
}
|
||||
Err(_) => true,
|
||||
})
|
||||
.recv(&exit_receiver, |_| true)
|
||||
.wait();
|
||||
|
||||
if done {
|
||||
break;
|
||||
}
|
||||
while let Ok(Some(message)) = receiver.recv() {
|
||||
let params = LogMessageParams { message, typ };
|
||||
let _ = client.send_notification::<LogMessage>(params);
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -148,7 +134,7 @@ impl Command {
|
|||
}
|
||||
});
|
||||
|
||||
let _ = exit_sender.send(());
|
||||
let _ = sender.send(None);
|
||||
handle.join().unwrap();
|
||||
|
||||
drop(reporter);
|
||||
|
@ -158,7 +144,7 @@ impl Command {
|
|||
|
||||
fn track_output(
|
||||
output: impl Read + Send + 'static,
|
||||
sender: flume::Sender<String>,
|
||||
sender: crossbeam_channel::Sender<Option<String>>,
|
||||
) -> JoinHandle<()> {
|
||||
let reader = BufReader::new(
|
||||
DecodeReaderBytesBuilder::new()
|
||||
|
@ -172,7 +158,7 @@ fn track_output(
|
|||
let _ = reader
|
||||
.lines()
|
||||
.flatten()
|
||||
.try_for_each(|line| sender.send(line));
|
||||
.try_for_each(|line| sender.send(Some(line)));
|
||||
})
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue