shell_client 0.1.0

Rust进程调试工具,封装了与Unix域套接字通信、命令行自动补全、以及内置命令处理等功能。Client 可以连接到一个进程,发送自定义命令,并处理来自该进程的输出。实现了命令行读取、命令解析、进程查找、自动补全、命令执行等功能,并提供了一个循环来不断读取用户输入并执行相应的命令
Documentation
//! 路径完成器
use crate::completer::Completer;

use linefeed::{complete::Completion, DefaultTerminal, Prompter};

pub struct PathCompleter {
    pub inner: linefeed::complete::PathCompleter,
}

impl Completer for PathCompleter {
    fn filter(w: &str, b: &str) -> bool {
        w.trim() != b.trim()
    }
    fn new() -> Box<dyn Completer> {
        Box::new(PathCompleter {
            inner: linefeed::complete::PathCompleter,
        })
    }
}

impl linefeed::complete::Completer<DefaultTerminal> for PathCompleter {
    fn complete(
        &self,
        word: &str,
        prompter: &Prompter<DefaultTerminal>,
        start: usize,
        end: usize,
    ) -> Option<Vec<Completion>> {
        self.inner.complete(word, prompter, start, end)
    }
}