mirror of
https://github.com/TECHNOFAB11/tmux-copyrat.git
synced 2025-12-12 08:00:08 +01:00
refactor: OutputDestination -> config/tmux_bridge.rs
This commit is contained in:
parent
a26a4a56d8
commit
d4fb6c417b
8 changed files with 42 additions and 43 deletions
|
|
@ -1,7 +1,6 @@
|
|||
use copyrat::{
|
||||
comm::{tmux, OutputDestination},
|
||||
config::tmux_bridge::Config,
|
||||
error,
|
||||
config::tmux_bridge::{Config, OutputDestination},
|
||||
error, tmux,
|
||||
ui::Selection,
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +0,0 @@
|
|||
mod output_destination;
|
||||
pub mod tmux;
|
||||
|
||||
pub use output_destination::OutputDestination;
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
use std::fmt;
|
||||
|
||||
/// Describes the type of buffer the selected should be copied to: either a
|
||||
/// tmux buffer or the system clipboard.
|
||||
#[derive(Clone)]
|
||||
pub enum OutputDestination {
|
||||
/// The selection will be copied to the tmux buffer.
|
||||
Tmux,
|
||||
/// The selection will be copied to the system clipboard.
|
||||
Clipboard,
|
||||
}
|
||||
|
||||
impl OutputDestination {
|
||||
/// Toggle between the variants of `OutputDestination`.
|
||||
pub fn toggle(&mut self) {
|
||||
match *self {
|
||||
Self::Tmux => *self = Self::Clipboard,
|
||||
Self::Clipboard => *self = Self::Tmux,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl fmt::Display for OutputDestination {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
match self {
|
||||
Self::Tmux => write!(f, "tmux buffer"),
|
||||
Self::Clipboard => write!(f, "clipboard"),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,13 +1,13 @@
|
|||
use clap::Clap;
|
||||
use std::collections::HashMap;
|
||||
use std::fmt;
|
||||
use std::str::FromStr;
|
||||
|
||||
use super::basic;
|
||||
use crate::{
|
||||
comm::tmux,
|
||||
error,
|
||||
textbuf::{alphabet, regexes},
|
||||
ui,
|
||||
tmux, ui,
|
||||
};
|
||||
|
||||
/// Main configuration, parsed from command line.
|
||||
|
|
@ -135,3 +135,32 @@ impl FromStr for CaptureRegion {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Describes the type of buffer the selected should be copied to: either a
|
||||
/// tmux buffer or the system clipboard.
|
||||
#[derive(Clone)]
|
||||
pub enum OutputDestination {
|
||||
/// The selection will be copied to the tmux buffer.
|
||||
Tmux,
|
||||
/// The selection will be copied to the system clipboard.
|
||||
Clipboard,
|
||||
}
|
||||
|
||||
impl OutputDestination {
|
||||
/// Toggle between the variants of `OutputDestination`.
|
||||
pub fn toggle(&mut self) {
|
||||
match *self {
|
||||
Self::Tmux => *self = Self::Clipboard,
|
||||
Self::Clipboard => *self = Self::Tmux,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl fmt::Display for OutputDestination {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
match self {
|
||||
Self::Tmux => write!(f, "tmux buffer"),
|
||||
Self::Clipboard => write!(f, "clipboard"),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
pub mod comm;
|
||||
pub mod config;
|
||||
pub mod error;
|
||||
pub mod textbuf;
|
||||
pub mod tmux;
|
||||
pub mod ui;
|
||||
|
||||
/// Run copyrat on an input string `buffer`, configured by `Opt`.
|
||||
|
|
@ -32,7 +32,7 @@ pub fn run(buffer: String, opt: &config::basic::Config) -> Option<ui::Selection>
|
|||
},
|
||||
};
|
||||
|
||||
let default_output_destination = comm::OutputDestination::Tmux;
|
||||
let default_output_destination = config::tmux_bridge::OutputDestination::Tmux;
|
||||
|
||||
let selection: Option<ui::Selection> = {
|
||||
let mut ui = ui::ViewController::new(
|
||||
|
|
|
|||
|
|
@ -1,3 +1,8 @@
|
|||
//! This module provides types and functions to use Tmux.
|
||||
//!
|
||||
//! The main use cases are running Tmux commands & parsing Tmux panes
|
||||
//! information.
|
||||
|
||||
use regex::Regex;
|
||||
use std::collections::HashMap;
|
||||
use std::fmt;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
use crate::comm::OutputDestination;
|
||||
use crate::config::tmux_bridge::OutputDestination;
|
||||
|
||||
/// Represents the text selected by the user, along with if it was uppercased
|
||||
/// and the output destination (Tmux buffer or Clipboard).
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ use termion::{self, color, cursor, event, style};
|
|||
use super::colors::UiColors;
|
||||
use super::Selection;
|
||||
use super::{HintAlignment, HintStyle};
|
||||
use crate::{comm::OutputDestination, textbuf};
|
||||
use crate::{config::tmux_bridge::OutputDestination, textbuf};
|
||||
|
||||
pub struct ViewController<'a> {
|
||||
model: &'a mut textbuf::Model<'a>,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue