2个不稳定版本

0.2.0 2020年8月8日
0.1.0 2020年8月3日

#358 in 文本编辑器

24 每月下载量
kak-broot 中使用

MIT 许可证

10KB
227 代码行

kak-ui

一个高级Rust包装器,围绕kakoune的JSON-RPC用户界面


lib.rs:

提供对kakoune的JSON-RPC UI的高级包装。只要由serde支持,这个crate对您如何与kakoune通信或如何选择反序列化/序列化JSON没有任何意见。

这里要查看的主要类型是 IncomingRequestOutgoingRequest

示例

基本用法

 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