mirror of
https://github.com/alexpasmantier/television.git
synced 2025-06-06 03:25:23 +00:00
refactor(debug): improve configuration debug logging
This commit is contained in:
parent
82e3f890c8
commit
ddadf3937d
@ -2,12 +2,12 @@ use crate::action::Action;
|
||||
use crate::event::{convert_raw_event_to_key, Key};
|
||||
use crossterm::event::{KeyCode, KeyEvent, KeyModifiers};
|
||||
use rustc_hash::FxHashMap;
|
||||
use serde::{Deserialize, Deserializer};
|
||||
use serde::{Deserialize, Deserializer, Serialize};
|
||||
use std::fmt::Display;
|
||||
use std::hash::Hash;
|
||||
use std::ops::{Deref, DerefMut};
|
||||
|
||||
#[derive(Clone, Debug, Deserialize, PartialEq, Hash)]
|
||||
#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Hash)]
|
||||
pub enum Binding {
|
||||
SingleKey(Key),
|
||||
MultipleKeys(Vec<Key>),
|
||||
@ -28,7 +28,7 @@ impl Display for Binding {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Default, PartialEq)]
|
||||
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
|
||||
pub struct KeyBindings(pub FxHashMap<Action, Binding>);
|
||||
|
||||
impl<I> From<I> for KeyBindings
|
||||
|
@ -10,7 +10,7 @@ use directories::ProjectDirs;
|
||||
pub use keybindings::merge_keybindings;
|
||||
pub use keybindings::{parse_key, Binding, KeyBindings};
|
||||
use previewers::PreviewersConfig;
|
||||
use serde::Deserialize;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use shell_integration::ShellIntegrationConfig;
|
||||
pub use themes::Theme;
|
||||
use tracing::{debug, warn};
|
||||
@ -25,7 +25,7 @@ mod ui;
|
||||
const DEFAULT_CONFIG: &str = include_str!("../../.config/config.toml");
|
||||
|
||||
#[allow(dead_code, clippy::module_name_repetitions)]
|
||||
#[derive(Clone, Debug, Deserialize, Default, PartialEq)]
|
||||
#[derive(Clone, Debug, Deserialize, Default, PartialEq, Serialize)]
|
||||
#[serde(deny_unknown_fields)]
|
||||
pub struct AppConfig {
|
||||
#[serde(default = "get_data_dir")]
|
||||
@ -48,7 +48,7 @@ impl Hash for AppConfig {
|
||||
}
|
||||
|
||||
#[allow(dead_code)]
|
||||
#[derive(Clone, Debug, Deserialize, Default, PartialEq, Hash)]
|
||||
#[derive(Clone, Debug, Serialize, Deserialize, Default, PartialEq, Hash)]
|
||||
#[serde(deny_unknown_fields)]
|
||||
pub struct Config {
|
||||
/// General application configuration
|
||||
@ -128,7 +128,10 @@ impl Config {
|
||||
let final_cfg =
|
||||
Self::merge_user_with_default(default_config, user_cfg);
|
||||
|
||||
debug!("Config: {:?}", final_cfg);
|
||||
debug!(
|
||||
"Configuration: \n{}",
|
||||
toml::to_string(&final_cfg).unwrap()
|
||||
);
|
||||
Ok(final_cfg)
|
||||
} else {
|
||||
// otherwise, create the default configuration file
|
||||
@ -209,10 +212,8 @@ pub fn get_data_dir() -> PathBuf {
|
||||
});
|
||||
|
||||
let directory = if let Some(s) = data_folder {
|
||||
debug!("Using data directory: {:?}", s);
|
||||
s
|
||||
} else if let Some(proj_dirs) = project_directory() {
|
||||
debug!("Falling back to default data dir");
|
||||
proj_dirs.data_local_dir().to_path_buf()
|
||||
} else {
|
||||
PathBuf::from("../../../../..").join(".data")
|
||||
@ -233,20 +234,17 @@ pub fn get_config_dir() -> PathBuf {
|
||||
.filter(|p| p.is_absolute())
|
||||
});
|
||||
let directory = if let Some(s) = config_dir {
|
||||
debug!("Config directory: {:?}", s);
|
||||
s
|
||||
} else if cfg!(unix) {
|
||||
// default to ~/.config/television for unix systems
|
||||
if let Some(base_dirs) = directories::BaseDirs::new() {
|
||||
let cfg_dir =
|
||||
base_dirs.home_dir().join(".config").join("television");
|
||||
debug!("Config directory: {:?}", cfg_dir);
|
||||
cfg_dir
|
||||
} else {
|
||||
PathBuf::from("../../../../..").join(".config")
|
||||
}
|
||||
} else if let Some(proj_dirs) = project_directory() {
|
||||
debug!("Falling back to default config dir");
|
||||
proj_dirs.config_local_dir().to_path_buf()
|
||||
} else {
|
||||
PathBuf::from("../../../../..").join("../../../../../.config")
|
||||
|
@ -1,7 +1,7 @@
|
||||
use crate::preview::{previewers, PreviewerConfig};
|
||||
use serde::Deserialize;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Clone, Debug, Deserialize, Default, PartialEq, Hash)]
|
||||
#[derive(Clone, Debug, Deserialize, Serialize, Default, PartialEq, Hash)]
|
||||
pub struct PreviewersConfig {
|
||||
#[serde(default)]
|
||||
pub basic: BasicPreviewerConfig,
|
||||
@ -17,10 +17,10 @@ impl From<PreviewersConfig> for PreviewerConfig {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Deserialize, Default, PartialEq, Hash)]
|
||||
#[derive(Clone, Debug, Deserialize, Serialize, Default, PartialEq, Hash)]
|
||||
pub struct BasicPreviewerConfig {}
|
||||
|
||||
#[derive(Clone, Debug, Deserialize, PartialEq, Hash)]
|
||||
#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Hash)]
|
||||
#[serde(default)]
|
||||
pub struct FilePreviewerConfig {
|
||||
//pub max_file_size: u64,
|
||||
@ -36,5 +36,5 @@ impl Default for FilePreviewerConfig {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Deserialize, Default, PartialEq, Hash)]
|
||||
#[derive(Clone, Debug, Deserialize, Serialize, Default, PartialEq, Hash)]
|
||||
pub struct EnvVarPreviewerConfig {}
|
||||
|
@ -4,9 +4,9 @@ use crate::config::parse_key;
|
||||
use crate::event::Key;
|
||||
use crate::utils::hashmaps;
|
||||
use rustc_hash::FxHashMap;
|
||||
use serde::Deserialize;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Clone, Debug, Deserialize, Default, PartialEq)]
|
||||
#[derive(Clone, Debug, Deserialize, Serialize, Default, PartialEq)]
|
||||
#[serde(default)]
|
||||
pub struct ShellIntegrationConfig {
|
||||
/// DEPRECATED: This is a legacy configuration option that is no longer used.
|
||||
|
@ -1,4 +1,4 @@
|
||||
use serde::Deserialize;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::screen::layout::{InputPosition, PreviewTitlePosition};
|
||||
|
||||
@ -6,7 +6,7 @@ use super::themes::DEFAULT_THEME;
|
||||
|
||||
const DEFAULT_UI_SCALE: u16 = 100;
|
||||
|
||||
#[derive(Clone, Debug, Deserialize, PartialEq, Hash)]
|
||||
#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Hash)]
|
||||
#[serde(default)]
|
||||
pub struct UiConfig {
|
||||
pub use_nerd_font_icons: bool,
|
||||
|
@ -15,7 +15,7 @@ use crossterm::event::{
|
||||
};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use tokio::{signal, sync::mpsc};
|
||||
use tracing::{debug, warn};
|
||||
use tracing::{debug, trace, warn};
|
||||
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
pub enum Event<I> {
|
||||
@ -247,7 +247,7 @@ fn flush_resize_events(first_resize: (u16, u16)) -> ((u16, u16), (u16, u16)) {
|
||||
}
|
||||
|
||||
pub fn convert_raw_event_to_key(event: KeyEvent) -> Key {
|
||||
debug!("Raw event: {:?}", event);
|
||||
trace!("Raw event: {:?}", event);
|
||||
if event.kind == KeyEventKind::Release {
|
||||
return Key::Null;
|
||||
}
|
||||
|
@ -2,7 +2,7 @@ use std::fmt::Display;
|
||||
|
||||
use ratatui::layout;
|
||||
use ratatui::layout::{Constraint, Direction, Rect};
|
||||
use serde::Deserialize;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::config::UiConfig;
|
||||
|
||||
@ -46,7 +46,9 @@ impl HelpBarLayout {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Copy, Deserialize, Default, PartialEq, Hash)]
|
||||
#[derive(
|
||||
Debug, Clone, Copy, Deserialize, Serialize, Default, PartialEq, Hash,
|
||||
)]
|
||||
pub enum InputPosition {
|
||||
#[serde(rename = "top")]
|
||||
#[default]
|
||||
@ -64,7 +66,9 @@ impl Display for InputPosition {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Copy, Deserialize, Default, PartialEq, Hash)]
|
||||
#[derive(
|
||||
Debug, Clone, Copy, Deserialize, Serialize, Default, PartialEq, Hash,
|
||||
)]
|
||||
pub enum PreviewTitlePosition {
|
||||
#[serde(rename = "top")]
|
||||
#[default]
|
||||
|
Loading…
x
Reference in New Issue
Block a user