chore: update major dependencies and fix API breakages
This commit is contained in:
1 parent
05672cc884
commit
c8f8ff8997
7 files changed
+518
-387
No files matched your search
Generated
+492
-365
File diff suppressed because it is too large.
Load diff
@@ -9,11 +9,11 @@ serde_json = "1.0"
|
|||||||
rmp-serde = "1.1"
|
rmp-serde = "1.1"
|
||||||
rmpv = "1.0"
|
rmpv = "1.0"
|
||||||
tokio = { version = "1.37", features = ["full"] }
|
tokio = { version = "1.37", features = ["full"] }
|
||||||
schemars = "0.8"
|
schemars = "1.2.2"
|
||||||
tracing-appender = "0.2.5"
|
tracing-appender = "0.2.5"
|
||||||
tracing = "0.1.44"
|
tracing = "0.1.44"
|
||||||
tracing-subscriber = "0.3.23"
|
tracing-subscriber = "0.3.23"
|
||||||
dirs = "7.0.0"
|
dirs = "7.0.0"
|
||||||
rustls = "0.22.4"
|
rustls = "0.23.45"
|
||||||
rustls-pki-types = "1"
|
rustls-pki-types = "1"
|
||||||
nvim-core = { path = "../nvim-core" }
|
nvim-core = { path = "../nvim-core" }
|
||||||
+15
-11
@@ -111,7 +111,7 @@ use std::sync::LazyLock;
|
|||||||
use tokio::sync::{mpsc, oneshot};
|
use tokio::sync::{mpsc, oneshot};
|
||||||
|
|
||||||
pub struct NvimRequest {
|
pub struct NvimRequest {
|
||||||
pub msgid_str: String,
|
pub msgid: u64,
|
||||||
pub req: rmpv::Value,
|
pub req: rmpv::Value,
|
||||||
pub reply: oneshot::Sender<Result<rmpv::Value, String>>,
|
pub reply: oneshot::Sender<Result<rmpv::Value, String>>,
|
||||||
}
|
}
|
||||||
@@ -153,7 +153,7 @@ async fn get_nvim_connection() -> Result<mpsc::Sender<NvimRequest>, String> {
|
|||||||
let (mut read_half, mut write_half) = tokio::io::split(stream);
|
let (mut read_half, mut write_half) = tokio::io::split(stream);
|
||||||
let (tx, mut rx) = mpsc::channel::<NvimRequest>(32);
|
let (tx, mut rx) = mpsc::channel::<NvimRequest>(32);
|
||||||
type PendingRequestsMap =
|
type PendingRequestsMap =
|
||||||
Arc<std::sync::Mutex<HashMap<String, oneshot::Sender<Result<rmpv::Value, String>>>>>;
|
Arc<std::sync::Mutex<HashMap<u64, oneshot::Sender<Result<rmpv::Value, String>>>>>;
|
||||||
let pending_requests: PendingRequestsMap = Arc::new(std::sync::Mutex::new(HashMap::new()));
|
let pending_requests: PendingRequestsMap = Arc::new(std::sync::Mutex::new(HashMap::new()));
|
||||||
|
|
||||||
// Write task
|
// Write task
|
||||||
@@ -169,7 +169,7 @@ async fn get_nvim_connection() -> Result<mpsc::Sender<NvimRequest>, String> {
|
|||||||
pending_clone
|
pending_clone
|
||||||
.lock()
|
.lock()
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.insert(req.msgid_str.clone(), req.reply);
|
.insert(req.msgid, req.reply);
|
||||||
|
|
||||||
if write_half.write_all(&buf).await.is_err() {
|
if write_half.write_all(&buf).await.is_err() {
|
||||||
tracing::error!("Failed to write to Neovim socket");
|
tracing::error!("Failed to write to Neovim socket");
|
||||||
@@ -193,13 +193,15 @@ async fn get_nvim_connection() -> Result<mpsc::Sender<NvimRequest>, String> {
|
|||||||
|
|
||||||
if let rmpv::Value::Array(ref arr) = val {
|
if let rmpv::Value::Array(ref arr) = val {
|
||||||
if arr.len() >= 4 && arr[0] == rmpv::Value::Integer(1.into()) {
|
if arr.len() >= 4 && arr[0] == rmpv::Value::Integer(1.into()) {
|
||||||
let msgid = &arr[1];
|
let msgid = match &arr[1] {
|
||||||
let msgid_str = format!("{msgid:?}");
|
rmpv::Value::Integer(i) => i.as_u64().unwrap_or(0),
|
||||||
|
_ => 0,
|
||||||
|
};
|
||||||
|
|
||||||
if let Some(reply_sender) = pending_clone2
|
if let Some(reply_sender) = pending_clone2
|
||||||
.lock()
|
.lock()
|
||||||
.unwrap_or_else(|e| e.into_inner())
|
.unwrap_or_else(|e| e.into_inner())
|
||||||
.remove(&msgid_str)
|
.remove(&msgid)
|
||||||
{
|
{
|
||||||
let _ = reply_sender.send(Ok(val));
|
let _ = reply_sender.send(Ok(val));
|
||||||
}
|
}
|
||||||
@@ -279,20 +281,22 @@ async fn get_nvim_connection() -> Result<mpsc::Sender<NvimRequest>, String> {
|
|||||||
async fn call_nvim(req: rmpv::Value) -> Result<rmpv::Value, String> {
|
async fn call_nvim(req: rmpv::Value) -> Result<rmpv::Value, String> {
|
||||||
let msgid = if let rmpv::Value::Array(ref arr) = req {
|
let msgid = if let rmpv::Value::Array(ref arr) = req {
|
||||||
if arr.len() > 1 {
|
if arr.len() > 1 {
|
||||||
arr[1].clone()
|
match &arr[1] {
|
||||||
|
rmpv::Value::Integer(i) => i.as_u64().unwrap_or(0),
|
||||||
|
_ => 0,
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
rmpv::Value::Nil
|
0
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
rmpv::Value::Nil
|
0
|
||||||
};
|
};
|
||||||
|
|
||||||
let msgid_str = format!("{msgid:?}");
|
|
||||||
let tx = get_nvim_connection().await?;
|
let tx = get_nvim_connection().await?;
|
||||||
let (reply_tx, reply_rx) = oneshot::channel();
|
let (reply_tx, reply_rx) = oneshot::channel();
|
||||||
|
|
||||||
tx.send(NvimRequest {
|
tx.send(NvimRequest {
|
||||||
msgid_str,
|
msgid,
|
||||||
req,
|
req,
|
||||||
reply: reply_tx,
|
reply: reply_tx,
|
||||||
})
|
})
|
||||||
|
|||||||
+4
-4
@@ -9,13 +9,13 @@ axum = { version = "0.8", features = ["ws"] }
|
|||||||
bincode = "1.3.3"
|
bincode = "1.3.3"
|
||||||
clap = { version = "4.6.6", features = ["derive"] }
|
clap = { version = "4.6.6", features = ["derive"] }
|
||||||
dashmap = "6.2.1"
|
dashmap = "6.2.1"
|
||||||
dirs = "6.0.0"
|
dirs = "7.0.0"
|
||||||
futures-util = "0.3.34"
|
futures-util = "0.3.34"
|
||||||
glob = "0.3.4"
|
glob = "0.3.4"
|
||||||
git2 = { version = "0.19.0", default-features = false }
|
git2 = { version = "0.21.0", default-features = false }
|
||||||
notify = "6.1.1"
|
notify = "8.2.0"
|
||||||
redb = "4.2.0"
|
redb = "4.2.0"
|
||||||
reqwest = { version = "0.12", default-features = false, features = ["stream", "rustls-tls", "json"] }
|
reqwest = { version = "0.13", default-features = false, features = ["stream", "rustls", "json"] }
|
||||||
schemars = "1.2.2"
|
schemars = "1.2.2"
|
||||||
serde = { version = "1.0.229", features = ["derive"] }
|
serde = { version = "1.0.229", features = ["derive"] }
|
||||||
serde_json = "1.0.151"
|
serde_json = "1.0.151"
|
||||||
|
|||||||
+2
-2
@@ -6,11 +6,11 @@ edition = "2024"
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
#rustls-tls = "0.2"
|
#rustls-tls = "0.2"
|
||||||
clap = { version = "4.6.6", features = ["derive"] }
|
clap = { version = "4.6.6", features = ["derive"] }
|
||||||
reqwest = { version = "0.12", default-features = false, features = ["stream", "rustls-tls"] }
|
reqwest = { version = "0.13", default-features = false, features = ["stream", "rustls"] }
|
||||||
tokio = { version = "1.53.1", features = ["full"] }
|
tokio = { version = "1.53.1", features = ["full"] }
|
||||||
tokio-util = { version = "0.7.19", features = ["io"] }
|
tokio-util = { version = "0.7.19", features = ["io"] }
|
||||||
futures-util = "0.3.34"
|
futures-util = "0.3.34"
|
||||||
tokio-tungstenite = { version = "0.21.0" }
|
tokio-tungstenite = { version = "0.30.0" }
|
||||||
tracing-appender = "0.2.5"
|
tracing-appender = "0.2.5"
|
||||||
tracing = "0.1.44"
|
tracing = "0.1.44"
|
||||||
tracing-subscriber = "0.3.23"
|
tracing-subscriber = "0.3.23"
|
||||||
|
|||||||
+1
-1
@@ -102,7 +102,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
if msg.len() > 1000 { "..." } else { "" }
|
if msg.len() > 1000 { "..." } else { "" }
|
||||||
);
|
);
|
||||||
if write
|
if write
|
||||||
.send(tokio_tungstenite::tungstenite::Message::Text(msg))
|
.send(tokio_tungstenite::tungstenite::Message::Text(msg.into()))
|
||||||
.await
|
.await
|
||||||
.is_err()
|
.is_err()
|
||||||
{
|
{
|
||||||
|
|||||||
+2
-2
@@ -9,13 +9,13 @@ serde_json = "1.0"
|
|||||||
rmp-serde = "1.1"
|
rmp-serde = "1.1"
|
||||||
rmpv = "1.0"
|
rmpv = "1.0"
|
||||||
tokio = { version = "1.37", features = ["full"] }
|
tokio = { version = "1.37", features = ["full"] }
|
||||||
schemars = "0.8"
|
schemars = "1.2.2"
|
||||||
tracing-appender = "0.2.5"
|
tracing-appender = "0.2.5"
|
||||||
tracing = "0.1.44"
|
tracing = "0.1.44"
|
||||||
tracing-subscriber = "0.3.23"
|
tracing-subscriber = "0.3.23"
|
||||||
dirs = "7.0.0"
|
dirs = "7.0.0"
|
||||||
|
|
||||||
|
|
||||||
rustls = "0.22.4"
|
rustls = "0.23.45"
|
||||||
rustls-pki-types = "1"
|
rustls-pki-types = "1"
|
||||||
nvim-core = { path = "../nvim-core" }
|
nvim-core = { path = "../nvim-core" }
|
||||||
Reference in new issue
Block a user