#![cfg_attr(
feature = "document-features",
cfg_attr(doc, doc = ::document_features::document_features!())
)]
#![warn(clippy::pedantic, missing_docs)]
#[cfg(feature = "core")]
pub mod errors;
#[cfg(feature = "core")]
pub mod logging;
#[cfg(any(feature = "ast", feature = "build"))]
pub mod ast;
#[cfg(any(feature = "ast", feature = "build"))]
pub mod code_utils;
#[cfg(feature = "build")]
pub mod builder;
#[cfg(feature = "build")]
pub mod cmd_args;
#[cfg(feature = "build")]
pub mod manifest;
#[cfg(feature = "config")]
pub use thag_common::config;
#[cfg(feature = "tui")]
pub mod file_dialog;
#[cfg(feature = "tui")]
pub mod keys;
#[cfg(feature = "tui")]
pub mod stdin;
#[cfg(feature = "tui")]
pub mod tui_editor;
#[cfg(feature = "repl")]
pub mod repl;
#[cfg(feature = "tools")]
pub mod tool_errors;
#[cfg(feature = "core")]
pub use {
errors::{ThagError, ThagResult},
log, thag_common::{
debug_log, debug_timings, escape_path_for_windows, get_home_dir, get_home_dir_string,
get_verbosity, init_verbosity, lazy_static_var, re, set_global_verbosity, set_verbosity,
set_verbosity_from_env, static_lazy, thousands, vprtln, ColorSupport, TermBgLuma,
Verbosity, OUTPUT_MANAGER, V,
},
thag_styling::{
display_theme_details, display_theme_roles, find_closest_color, paint_for_role, sprtln,
svprtln, AnsiStyleExt, Color, ColorInfo, ColorInitStrategy, ColorValue, HowInitialized,
PaletteConfig, Role, Style, Styleable, Styled, StyledPrint, StyledString, Styler, Theme,
},
};
#[cfg(feature = "tools")]
pub use thag_styling::themed_inquire_config;
pub use thag_common::{auto_help, help_system};
pub use thag_proc_macros::{file_navigator, repeat_dash};
#[cfg(any(feature = "ast", feature = "build"))]
pub use {
ast::{find_crates, find_metadata, Ast, CratesFinder, MetadataFinder},
code_utils::to_ast,
};
#[cfg(feature = "build")]
pub use {
builder::{display_timings, execute, gen_build_run, process_expr, BuildState, ScriptState},
cmd_args::{get_args, get_proc_flags, set_verbosity, validate_args, Cli, ProcFlags},
code_utils::modified_since_compiled,
logging::configure_log,
manifest::extract,
ratatui::crossterm,
};
#[cfg(feature = "color_detect")]
pub use termbg;
#[cfg(feature = "color_detect")]
pub use thag_common::terminal;
#[cfg(all(feature = "color_detect", feature = "tools"))]
pub use thag_styling::inquire_theming;
#[cfg(feature = "config")]
pub use config::{
load, maybe_config, Config, Context, Dependencies, FeatureOverride, Logging, Misc, ProcMacros,
Styling,
};
#[cfg(feature = "tui")]
pub use {
keys::KeyCombination,
tui_editor::{CrosstermEventReader, EventReader, KeyDisplayLine, MockEventReader},
};
use std::path::PathBuf;
use std::{env, sync::LazyLock};
pub const BUILT_IN_CRATES: [&str; 7] = [
"std",
"core",
"alloc",
"collections",
"fmt",
"crate",
"self",
];
pub const DYNAMIC_SUBDIR: &str = "rs_dyn";
pub const SHARED_TARGET_SUBDIR: &str = "thag_rs_shared_target";
pub const EXECUTABLE_CACHE_SUBDIR: &str = "thag_rs_bins";
pub const FLOWER_BOX_LEN: usize = 70;
pub const PACKAGE_NAME: &str = env!("CARGO_PKG_NAME");
pub const REPL_SCRIPT_NAME: &str = "repl_script.rs";
pub const REPL_SUBDIR: &str = "rs_repl";
pub const RS_SUFFIX: &str = ".rs";
pub const TEMP_DIR_NAME: &str = "temp";
pub const TEMP_SCRIPT_NAME: &str = "temp.rs";
pub const TOML_NAME: &str = "Cargo.toml";
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
pub static TMPDIR: LazyLock<PathBuf> = LazyLock::new(env::temp_dir);
#[doc(hidden)] #[cfg(feature = "tui")]
pub mod __private {
pub use ratatui::crossterm;
pub use strict::OneToThree;
pub use thag_proc_macros::key;
pub use crate::KeyCombination;
use ratatui::crossterm::event::KeyModifiers;
pub const MODS: KeyModifiers = KeyModifiers::NONE;
pub const MODS_CTRL: KeyModifiers = KeyModifiers::CONTROL;
pub const MODS_ALT: KeyModifiers = KeyModifiers::ALT;
pub const MODS_SHIFT: KeyModifiers = KeyModifiers::SHIFT;
pub const MODS_CTRL_ALT: KeyModifiers = KeyModifiers::CONTROL.union(KeyModifiers::ALT);
pub const MODS_ALT_SHIFT: KeyModifiers = KeyModifiers::ALT.union(KeyModifiers::SHIFT);
pub const MODS_CTRL_SHIFT: KeyModifiers = KeyModifiers::CONTROL.union(KeyModifiers::SHIFT);
pub const MODS_CTRL_ALT_SHIFT: KeyModifiers = KeyModifiers::CONTROL
.union(KeyModifiers::ALT)
.union(KeyModifiers::SHIFT);
}