2个不稳定版本
0.2.0 | 2020年8月8日 |
---|---|
0.1.0 | 2020年8月3日 |
#358 in 文本编辑器
24 每月下载量
在 kak-broot 中使用
10KB
227 代码行
kak-ui
一个高级Rust包装器,围绕kakoune的JSON-RPC用户界面。
lib.rs
:
提供对kakoune的JSON-RPC UI的高级包装。只要由serde支持,这个crate对您如何与kakoune通信或如何选择反序列化/序列化JSON没有任何意见。
这里要查看的主要类型是 IncomingRequest
和 OutgoingRequest
。
示例
基本用法
use std::io::{BufRead, BufReader};
use std::process::{Command, Child, Stdio};
use kak_ui::{IncomingRequest, OutgoingRequest};
let kak_child_process = Command::new("kak")
.args(&["-ui", "json"])
.stdout(Stdio::piped())
.stdin(Stdio::piped())
.spawn()
.unwrap();
let incoming_request: IncomingRequest = serde_json::from_str(
&BufReader::new(kak_child_process.stdout.unwrap())
.lines()
.next()
.unwrap()
.unwrap(),
)
.unwrap();
let outgoing_request = OutgoingRequest::Keys(vec!["<esc>:q<ret>".to_string()]);
serde_json::to_writer(kak_child_process.stdin.unwrap(), &outgoing_request).unwrap();
依赖关系
~0.4–1MB
~23K SLoC