Add ability to warn on missing theme values (#3705)
This PR adds the ability to warn in the `theme_importer` when a theme is missing values. Providing the `--warn-on-missing` flag to the `theme_importer` will print a warning for missing theme value when printing the theme. ```sh cargo run -p theme_importer -- --warn-on-missing ``` Release Notes: - N/A
This commit is contained in:
parent
734bbfa66f
commit
912f7e6c1a
4 changed files with 29 additions and 6 deletions
1
Cargo.lock
generated
1
Cargo.lock
generated
|
@ -9813,6 +9813,7 @@ name = "theme_importer"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
|
"clap 4.4.4",
|
||||||
"convert_case 0.6.0",
|
"convert_case 0.6.0",
|
||||||
"gpui2",
|
"gpui2",
|
||||||
"indexmap 1.9.3",
|
"indexmap 1.9.3",
|
||||||
|
|
|
@ -8,6 +8,7 @@ publish = false
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
anyhow.workspace = true
|
anyhow.workspace = true
|
||||||
|
clap = { version = "4.4", features = ["derive"] }
|
||||||
convert_case = "0.6.0"
|
convert_case = "0.6.0"
|
||||||
gpui = { package = "gpui2", path = "../gpui2" }
|
gpui = { package = "gpui2", path = "../gpui2" }
|
||||||
indexmap = { version = "1.6.2", features = ["serde"] }
|
indexmap = { version = "1.6.2", features = ["serde"] }
|
||||||
|
|
|
@ -10,6 +10,7 @@ use std::process::Command;
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
|
|
||||||
use anyhow::{anyhow, Context, Result};
|
use anyhow::{anyhow, Context, Result};
|
||||||
|
use clap::Parser;
|
||||||
use convert_case::{Case, Casing};
|
use convert_case::{Case, Casing};
|
||||||
use gpui::serde_json;
|
use gpui::serde_json;
|
||||||
use indexmap::IndexMap;
|
use indexmap::IndexMap;
|
||||||
|
@ -61,16 +62,34 @@ pub struct ThemeMetadata {
|
||||||
pub appearance: ThemeAppearanceJson,
|
pub appearance: ThemeAppearanceJson,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Parser)]
|
||||||
|
#[command(author, version, about, long_about = None)]
|
||||||
|
struct Args {
|
||||||
|
/// Whether to warn when values are missing from the theme.
|
||||||
|
#[arg(long)]
|
||||||
|
warn_on_missing: bool,
|
||||||
|
}
|
||||||
|
|
||||||
fn main() -> Result<()> {
|
fn main() -> Result<()> {
|
||||||
const SOURCE_PATH: &str = "assets/themes/src/vscode";
|
const SOURCE_PATH: &str = "assets/themes/src/vscode";
|
||||||
const OUT_PATH: &str = "crates/theme2/src/themes";
|
const OUT_PATH: &str = "crates/theme2/src/themes";
|
||||||
|
|
||||||
let log_config = simplelog::ConfigBuilder::new()
|
let args = Args::parse();
|
||||||
.set_level_color(log::Level::Trace, simplelog::Color::Cyan)
|
|
||||||
.set_level_color(log::Level::Info, simplelog::Color::Blue)
|
let log_config = {
|
||||||
.set_level_color(log::Level::Warn, simplelog::Color::Yellow)
|
let mut config = simplelog::ConfigBuilder::new();
|
||||||
.set_level_color(log::Level::Error, simplelog::Color::Red)
|
config
|
||||||
.build();
|
.set_level_color(log::Level::Trace, simplelog::Color::Cyan)
|
||||||
|
.set_level_color(log::Level::Info, simplelog::Color::Blue)
|
||||||
|
.set_level_color(log::Level::Warn, simplelog::Color::Yellow)
|
||||||
|
.set_level_color(log::Level::Error, simplelog::Color::Red);
|
||||||
|
|
||||||
|
if !args.warn_on_missing {
|
||||||
|
config.add_filter_ignore_str("theme_printer");
|
||||||
|
}
|
||||||
|
|
||||||
|
config.build()
|
||||||
|
};
|
||||||
|
|
||||||
TermLogger::init(LevelFilter::Trace, log_config, TerminalMode::Mixed)
|
TermLogger::init(LevelFilter::Trace, log_config, TerminalMode::Mixed)
|
||||||
.expect("could not initialize logger");
|
.expect("could not initialize logger");
|
||||||
|
|
|
@ -282,6 +282,8 @@ impl<'a> Debug for ThemeColorsRefinementPrinter<'a> {
|
||||||
HslaPrinter(color).fmt(f)?;
|
HslaPrinter(color).fmt(f)?;
|
||||||
f.write_str(")")?;
|
f.write_str(")")?;
|
||||||
f.write_str(",")?;
|
f.write_str(",")?;
|
||||||
|
} else {
|
||||||
|
log::warn!(target: "theme_printer", "No value for '{}' in theme", color_name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue