theme_importer: Support importing themes containing comments (#3298)

This PR updates the `theme_importer` with support for parsing theme
files containing comments.

Up until now we've been manually removing comments from the VS Code
theme files.

Release Notes:

- N/A
This commit is contained in:
Marshall Bowers 2023-11-09 19:22:15 -05:00 committed by GitHub
parent 6bc1cf0fae
commit cb8c534dac
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 1 deletions

View file

@ -11,6 +11,7 @@ anyhow.workspace = true
convert_case = "0.6.0"
gpui = { package = "gpui2", path = "../gpui2" }
indexmap = "1.6.2"
json_comments = "0.2.2"
log.workspace = true
rust-embed.workspace = true
serde.workspace = true

View file

@ -11,6 +11,7 @@ use std::str::FromStr;
use anyhow::{anyhow, Context, Result};
use convert_case::{Case, Casing};
use gpui::serde_json;
use json_comments::StripComments;
use log::LevelFilter;
use serde::Deserialize;
use simplelog::SimpleLogger;
@ -111,7 +112,8 @@ fn main() -> Result<()> {
}
};
let vscode_theme: VsCodeTheme = serde_json::from_reader(theme_file)
let theme_without_comments = StripComments::new(theme_file);
let vscode_theme: VsCodeTheme = serde_json::from_reader(theme_without_comments)
.context(format!("failed to parse theme {theme_file_path:?}"))?;
let converter = VsCodeThemeConverter::new(vscode_theme, theme_metadata);