[Chore] upgrade nvim-oxi to v0.5.1 (#131)
parent
c2924bf6c9
commit
3a095492ba
|
@ -87,26 +87,6 @@ dependencies = [
|
||||||
"serde",
|
"serde",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "bindgen"
|
|
||||||
version = "0.68.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "726e4313eb6ec35d2730258ad4e15b547ee75d6afaa1361a922e78e59b7d8078"
|
|
||||||
dependencies = [
|
|
||||||
"bitflags 2.6.0",
|
|
||||||
"cexpr",
|
|
||||||
"clang-sys",
|
|
||||||
"lazy_static",
|
|
||||||
"lazycell",
|
|
||||||
"peeking_take_while",
|
|
||||||
"proc-macro2",
|
|
||||||
"quote",
|
|
||||||
"regex",
|
|
||||||
"rustc-hash",
|
|
||||||
"shlex",
|
|
||||||
"syn",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bitflags"
|
name = "bitflags"
|
||||||
version = "1.3.2"
|
version = "1.3.2"
|
||||||
|
@ -199,15 +179,6 @@ version = "1.1.6"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "2aba8f4e9906c7ce3c73463f62a7f0c65183ada1a2d47e397cc8810827f9694f"
|
checksum = "2aba8f4e9906c7ce3c73463f62a7f0c65183ada1a2d47e397cc8810827f9694f"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "cexpr"
|
|
||||||
version = "0.6.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
|
|
||||||
dependencies = [
|
|
||||||
"nom",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cfg-if"
|
name = "cfg-if"
|
||||||
version = "1.0.0"
|
version = "1.0.0"
|
||||||
|
@ -220,17 +191,6 @@ version = "0.1.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
|
checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "clang-sys"
|
|
||||||
version = "1.8.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4"
|
|
||||||
dependencies = [
|
|
||||||
"glob",
|
|
||||||
"libc",
|
|
||||||
"libloading",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "clipboard-win"
|
name = "clipboard-win"
|
||||||
version = "5.4.0"
|
version = "5.4.0"
|
||||||
|
@ -557,12 +517,6 @@ dependencies = [
|
||||||
"windows-targets 0.48.5",
|
"windows-targets 0.48.5",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "glob"
|
|
||||||
version = "0.3.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "hashbrown"
|
name = "hashbrown"
|
||||||
version = "0.14.5"
|
version = "0.14.5"
|
||||||
|
@ -632,18 +586,6 @@ dependencies = [
|
||||||
"wasm-bindgen",
|
"wasm-bindgen",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "lazy_static"
|
|
||||||
version = "1.5.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "lazycell"
|
|
||||||
version = "1.3.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "libc"
|
name = "libc"
|
||||||
version = "0.2.155"
|
version = "0.2.155"
|
||||||
|
@ -666,17 +608,6 @@ version = "0.2.8"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
|
checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "libuv-sys2"
|
|
||||||
version = "1.48.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "6125e1a220a5698a154ce76762d2ef8884baf9f77da7ceb8a3bd8c5ce27df343"
|
|
||||||
dependencies = [
|
|
||||||
"bindgen",
|
|
||||||
"cc",
|
|
||||||
"pkg-config",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "linked-hash-map"
|
name = "linked-hash-map"
|
||||||
version = "0.5.6"
|
version = "0.5.6"
|
||||||
|
@ -775,15 +706,71 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "nvim-oxi"
|
name = "nvim-oxi"
|
||||||
version = "0.3.0"
|
version = "0.5.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "d10f3bf0588ed64f764acdb0bef3883b87f1491ff24005a8887bd9fe9c829061"
|
checksum = "13587f8434641462a0674bc575fb1ca88d66827118470df3c2608e769fc8e3ee"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"oxi-api",
|
"nvim-oxi-api",
|
||||||
"oxi-libuv",
|
"nvim-oxi-libuv",
|
||||||
"oxi-luajit",
|
"nvim-oxi-luajit",
|
||||||
"oxi-macros",
|
"nvim-oxi-macros",
|
||||||
"oxi-types",
|
"nvim-oxi-types",
|
||||||
|
"thiserror",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "nvim-oxi-api"
|
||||||
|
version = "0.5.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "0926b8fac04e376a743a7519382ef21c9d6e3ef584338d439972b911e5d85554"
|
||||||
|
dependencies = [
|
||||||
|
"nvim-oxi-luajit",
|
||||||
|
"nvim-oxi-macros",
|
||||||
|
"nvim-oxi-types",
|
||||||
|
"serde",
|
||||||
|
"serde_repr",
|
||||||
|
"thiserror",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "nvim-oxi-libuv"
|
||||||
|
version = "0.5.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "23c92031113da2a83addafb6d50508f96941f017ee2249b1d27b08094355cefd"
|
||||||
|
dependencies = [
|
||||||
|
"nvim-oxi-luajit",
|
||||||
|
"thiserror",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "nvim-oxi-luajit"
|
||||||
|
version = "0.5.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d3d83bb0ca6908c82bad8b22379f7577d0d82aa050601c0dce15d7c691c2131a"
|
||||||
|
dependencies = [
|
||||||
|
"thiserror",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "nvim-oxi-macros"
|
||||||
|
version = "0.5.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "b0db91ed44967f43c9ac9f80ce629391f53787aac6212aac79966422940671f9"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "nvim-oxi-types"
|
||||||
|
version = "0.5.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "c2545fa96873e7bc0bd12e1e68582a89ca593fad872e996e479a8615ae986424"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
"nvim-oxi-luajit",
|
||||||
|
"serde",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -924,64 +911,6 @@ dependencies = [
|
||||||
"windows-sys 0.52.0",
|
"windows-sys 0.52.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "oxi-api"
|
|
||||||
version = "0.3.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "17baa7880f7e8e0b24e523c8278957f769682c1e059b99f875c3c20ff9ca23fb"
|
|
||||||
dependencies = [
|
|
||||||
"oxi-luajit",
|
|
||||||
"oxi-types",
|
|
||||||
"serde",
|
|
||||||
"serde_repr",
|
|
||||||
"thiserror",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "oxi-libuv"
|
|
||||||
version = "0.3.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "beccafca2a99579ed75c536f3579c1ae19537330bca908ce034519fda6e2c99d"
|
|
||||||
dependencies = [
|
|
||||||
"libuv-sys2",
|
|
||||||
"once_cell",
|
|
||||||
"oxi-luajit",
|
|
||||||
"thiserror",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "oxi-luajit"
|
|
||||||
version = "0.3.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "2d1c5f855fc99e1f9f287958d679fb636bf68a784255cbb0e403dbc01495393c"
|
|
||||||
dependencies = [
|
|
||||||
"once_cell",
|
|
||||||
"thiserror",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "oxi-macros"
|
|
||||||
version = "0.3.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "7fa77de5791207f41bab307dadb91e66a2bbbd19433e4243ef98c9d45e03a007"
|
|
||||||
dependencies = [
|
|
||||||
"proc-macro2",
|
|
||||||
"quote",
|
|
||||||
"syn",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "oxi-types"
|
|
||||||
version = "0.3.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "e5f4061c29de229c3ece5e8d22cd29a3e28c64977acda5caeb72cfe8eeb04659"
|
|
||||||
dependencies = [
|
|
||||||
"libc",
|
|
||||||
"oxi-luajit",
|
|
||||||
"serde",
|
|
||||||
"thiserror",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "parking_lot"
|
name = "parking_lot"
|
||||||
version = "0.12.3"
|
version = "0.12.3"
|
||||||
|
@ -1005,12 +934,6 @@ dependencies = [
|
||||||
"windows-targets 0.52.6",
|
"windows-targets 0.52.6",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "peeking_take_while"
|
|
||||||
version = "0.1.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "petgraph"
|
name = "petgraph"
|
||||||
version = "0.6.5"
|
version = "0.6.5"
|
||||||
|
@ -1287,12 +1210,6 @@ dependencies = [
|
||||||
"syn",
|
"syn",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "shlex"
|
|
||||||
version = "1.3.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "simd-adler32"
|
name = "simd-adler32"
|
||||||
version = "0.3.7"
|
version = "0.3.7"
|
||||||
|
|
|
@ -4,7 +4,7 @@ version = "0.1.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
nvim-oxi = { features = ["neovim-0-9", "libuv", "oxi-libuv"], version = "0.3" }
|
nvim-oxi = { features = ["neovim-0-9", "libuv"], version = "0.5.1" }
|
||||||
tiny-skia = "0.11.4"
|
tiny-skia = "0.11.4"
|
||||||
syntect = "5.2.0"
|
syntect = "5.2.0"
|
||||||
cosmic-text = "0.12.0"
|
cosmic-text = "0.12.0"
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
use nvim_oxi::lua;
|
|
||||||
use thiserror::Error;
|
use thiserror::Error;
|
||||||
|
|
||||||
pub type Result<T> = std::result::Result<T, RenderError>;
|
pub type Result<T> = std::result::Result<T, RenderError>;
|
||||||
|
@ -21,8 +20,8 @@ pub enum RenderError {
|
||||||
NoSuchFile(String),
|
NoSuchFile(String),
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<RenderError> for nvim_oxi::Error {
|
impl From<RenderError> for nvim_oxi::api::Error {
|
||||||
fn from(err: RenderError) -> Self {
|
fn from(err: RenderError) -> Self {
|
||||||
nvim_oxi::Error::Lua(lua::Error::RuntimeError(err.to_string()))
|
nvim_oxi::api::Error::Other(err.to_string())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,11 +3,11 @@ use crate::{config::TakeSnapshotParams, snapshot::take_snapshot};
|
||||||
use arboard::SetExtLinux;
|
use arboard::SetExtLinux;
|
||||||
use arboard::{Clipboard, ImageData};
|
use arboard::{Clipboard, ImageData};
|
||||||
|
|
||||||
use nvim_oxi::Result;
|
use nvim_oxi::api;
|
||||||
|
|
||||||
// The function will be called as FFI on Lua side
|
// The function will be called as FFI on Lua side
|
||||||
#[allow(dead_code)]
|
#[allow(dead_code)]
|
||||||
pub fn copy_into_clipboard(config: TakeSnapshotParams) -> Result<()> {
|
pub fn copy_into_clipboard(config: TakeSnapshotParams) -> Result<(), api::Error> {
|
||||||
let pixmap = take_snapshot(config.clone())?;
|
let pixmap = take_snapshot(config.clone())?;
|
||||||
let premultplied_colors = pixmap.pixels();
|
let premultplied_colors = pixmap.pixels();
|
||||||
let colors = premultplied_colors
|
let colors = premultplied_colors
|
||||||
|
|
|
@ -5,7 +5,7 @@ use crate::{
|
||||||
use arboard::Clipboard;
|
use arboard::Clipboard;
|
||||||
#[cfg(target_os = "linux")]
|
#[cfg(target_os = "linux")]
|
||||||
use arboard::SetExtLinux;
|
use arboard::SetExtLinux;
|
||||||
use nvim_oxi::Result;
|
use nvim_oxi::api;
|
||||||
use std::cmp::max;
|
use std::cmp::max;
|
||||||
|
|
||||||
const SPACE_BOTH_SIDE: usize = 2;
|
const SPACE_BOTH_SIDE: usize = 2;
|
||||||
|
@ -19,7 +19,7 @@ fn optional(component: String, is_view: bool) -> String {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[allow(dead_code)]
|
#[allow(dead_code)]
|
||||||
pub fn copy_ascii(params: TakeSnapshotParams) -> Result<()> {
|
pub fn copy_ascii(params: TakeSnapshotParams) -> Result<(), api::Error> {
|
||||||
let code = prepare_code(¶ms.code);
|
let code = prepare_code(¶ms.code);
|
||||||
let (width, height) = calc_wh(&code, 1., 1.);
|
let (width, height) = calc_wh(&code, 1., 1.);
|
||||||
let calc_line_number_width =
|
let calc_line_number_width =
|
||||||
|
@ -71,7 +71,10 @@ pub fn copy_ascii(params: TakeSnapshotParams) -> Result<()> {
|
||||||
});
|
});
|
||||||
|
|
||||||
#[cfg(not(target_os = "linux"))]
|
#[cfg(not(target_os = "linux"))]
|
||||||
Clipboard::new().unwrap().set_text(ascii_snapshot).unwrap();
|
Clipboard::new()
|
||||||
|
.unwrap()
|
||||||
|
.set_text(ascii_snapshot)
|
||||||
|
.map_err(|err| api::Error::Other(err.to_string()))?;
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,18 +11,19 @@ mod save;
|
||||||
mod snapshot;
|
mod snapshot;
|
||||||
mod text;
|
mod text;
|
||||||
|
|
||||||
|
use config::TakeSnapshotParams;
|
||||||
use copy::copy_into_clipboard;
|
use copy::copy_into_clipboard;
|
||||||
use copy_ascii::copy_ascii;
|
use copy_ascii::copy_ascii;
|
||||||
use nvim_oxi::{Dictionary, Function, Result};
|
use nvim_oxi::{api, Dictionary, Function};
|
||||||
use save::save_snapshot;
|
use save::save_snapshot;
|
||||||
|
|
||||||
#[nvim_oxi::module]
|
#[nvim_oxi::plugin]
|
||||||
fn generator() -> Result<Dictionary> {
|
fn generator() -> nvim_oxi::Result<Dictionary> {
|
||||||
|
let copy_into_clipboard: Function<TakeSnapshotParams, Result<(), api::Error>> =
|
||||||
|
Function::from_fn(copy_into_clipboard);
|
||||||
|
|
||||||
Ok(Dictionary::from_iter([
|
Ok(Dictionary::from_iter([
|
||||||
(
|
("copy_into_clipboard", copy_into_clipboard),
|
||||||
"copy_into_clipboard",
|
|
||||||
Function::from_fn(copy_into_clipboard),
|
|
||||||
),
|
|
||||||
("save_snapshot", Function::from_fn(save_snapshot)),
|
("save_snapshot", Function::from_fn(save_snapshot)),
|
||||||
("copy_ascii", Function::from_fn(copy_ascii)),
|
("copy_ascii", Function::from_fn(copy_ascii)),
|
||||||
]))
|
]))
|
||||||
|
|
|
@ -1,27 +1,27 @@
|
||||||
use crate::{config::TakeSnapshotParams, path::parse_save_path, snapshot::take_snapshot};
|
use crate::{config::TakeSnapshotParams, path::parse_save_path, snapshot::take_snapshot};
|
||||||
use nvim_oxi::{lua::Error::RuntimeError, Error, Result};
|
use nvim_oxi::api;
|
||||||
|
|
||||||
// The function will be called as FFI on Lua side
|
// The function will be called as FFI on Lua side
|
||||||
#[allow(dead_code)]
|
#[allow(dead_code)]
|
||||||
pub fn save_snapshot(config: TakeSnapshotParams) -> Result<()> {
|
pub fn save_snapshot(config: TakeSnapshotParams) -> Result<(), api::Error> {
|
||||||
match &config.save_path {
|
match &config.save_path {
|
||||||
Some(path) => {
|
Some(path) => {
|
||||||
if !path.ends_with(".png") {
|
if !path.ends_with(".png") {
|
||||||
return Err(Error::Lua(RuntimeError(
|
return Err(api::Error::Other(
|
||||||
"The save_path must ends with .png".to_string(),
|
"The save_path must ends with .png".to_string(),
|
||||||
)));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
let pixmap = take_snapshot(config.clone())?;
|
let pixmap = take_snapshot(config.clone())?;
|
||||||
let path = parse_save_path(path.to_string())
|
let path = parse_save_path(path.to_string())
|
||||||
.map_err(|err| Error::Lua(RuntimeError(err.to_string())))?;
|
.map_err(|err| api::Error::Other(err.to_string()))?;
|
||||||
|
|
||||||
pixmap
|
pixmap
|
||||||
.save_png(path)
|
.save_png(path)
|
||||||
.map_err(|err| Error::Lua(RuntimeError(err.to_string())))
|
.map_err(|err| api::Error::Other(err.to_string()))
|
||||||
}
|
}
|
||||||
None => Err(Error::Lua(RuntimeError(
|
None => Err(api::Error::Other(
|
||||||
"Cannot find 'save_path' in config".to_string(),
|
"Cannot find 'save_path' in config".to_string(),
|
||||||
))),
|
)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue