From a2eb0bb3cabdef6ea79904e64d5f022ec4e089bd Mon Sep 17 00:00:00 2001 From: David Peter Date: Sun, 18 Feb 2024 20:29:42 +0100 Subject: [PATCH] Move HtmlFormatter to core --- Cargo.lock | 17 +++++++++++++++++ numbat-wasm/Cargo.lock | 2 ++ numbat-wasm/Cargo.toml | 3 +-- numbat-wasm/src/jquery_terminal_formatter.rs | 2 +- numbat-wasm/src/lib.rs | 14 ++++++-------- numbat/Cargo.toml | 3 +++ {numbat-wasm => numbat}/src/buffered_writer.rs | 0 {numbat-wasm => numbat}/src/html_formatter.rs | 2 +- numbat/src/lib.rs | 4 ++++ 9 files changed, 35 insertions(+), 12 deletions(-) rename {numbat-wasm => numbat}/src/buffered_writer.rs (100%) rename {numbat-wasm => numbat}/src/html_formatter.rs (98%) diff --git a/Cargo.lock b/Cargo.lock index dfdebce24..e8dfb2756 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -618,6 +618,15 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "html-escape" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d1ad449764d627e22bfd7cd5e8868264fc9236e07c752972b4080cd351cb476" +dependencies = [ + "utf8-width", +] + [[package]] name = "http" version = "1.0.0" @@ -865,6 +874,7 @@ dependencies = [ "criterion", "glob", "heck", + "html-escape", "iana-time-zone", "insta", "itertools 0.12.0", @@ -878,6 +888,7 @@ dependencies = [ "pretty_dtoa", "rust-embed", "strsim 0.11.0", + "termcolor", "thiserror", "unicode-ident", "unicode-width", @@ -1591,6 +1602,12 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "utf8-width" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3" + [[package]] name = "utf8parse" version = "0.2.1" diff --git a/numbat-wasm/Cargo.lock b/numbat-wasm/Cargo.lock index 8dfe6eeea..cebe92a3a 100644 --- a/numbat-wasm/Cargo.lock +++ b/numbat-wasm/Cargo.lock @@ -373,6 +373,7 @@ dependencies = [ "chrono-tz", "codespan-reporting", "heck", + "html-escape", "iana-time-zone", "itertools", "libc", @@ -384,6 +385,7 @@ dependencies = [ "pretty_dtoa", "rust-embed", "strsim", + "termcolor", "thiserror", "unicode-ident", "unicode-width", diff --git a/numbat-wasm/Cargo.toml b/numbat-wasm/Cargo.toml index 3e329ee3b..b8c00c3cc 100644 --- a/numbat-wasm/Cargo.toml +++ b/numbat-wasm/Cargo.toml @@ -18,8 +18,7 @@ wasm-bindgen = "0.2.90" # all the `std::fmt` and `std::panicking` infrastructure, so isn't great for # code size when deploying. console_error_panic_hook = { version = "0.1.6", optional = true } - -numbat = { path = "../numbat", default-features = false } +numbat = { path = "../numbat", default-features = false, features = ["html-formatter"] } html-escape = "0.2.13" termcolor = "1.4.1" codespan-reporting = "0.11.1" diff --git a/numbat-wasm/src/jquery_terminal_formatter.rs b/numbat-wasm/src/jquery_terminal_formatter.rs index cbc805fea..2b60aae44 100644 --- a/numbat-wasm/src/jquery_terminal_formatter.rs +++ b/numbat-wasm/src/jquery_terminal_formatter.rs @@ -1,4 +1,4 @@ -use crate::buffered_writer::BufferedWriter; +use numbat::buffered_writer::BufferedWriter; use numbat::markup::{FormatType, FormattedString, Formatter}; use termcolor::{Color, WriteColor}; diff --git a/numbat-wasm/src/lib.rs b/numbat-wasm/src/lib.rs index 74e366cf0..d0937b768 100644 --- a/numbat-wasm/src/lib.rs +++ b/numbat-wasm/src/lib.rs @@ -1,24 +1,22 @@ -mod buffered_writer; -mod html_formatter; mod jquery_terminal_formatter; mod utils; -use numbat::diagnostic::ErrorDiagnostic; -use numbat::module_importer::BuiltinModuleImporter; use std::sync::{Arc, Mutex}; use wasm_bindgen::prelude::*; -use crate::buffered_writer::BufferedWriter; -use html_formatter::{HtmlFormatter, HtmlWriter}; -use jquery_terminal_formatter::{JqueryTerminalFormatter, JqueryTerminalWriter}; - +use numbat::buffered_writer::BufferedWriter; +use numbat::diagnostic::ErrorDiagnostic; use numbat::help::help_markup; +use numbat::html_formatter::{HtmlFormatter, HtmlWriter}; use numbat::markup::Formatter; +use numbat::module_importer::BuiltinModuleImporter; use numbat::pretty_print::PrettyPrint; use numbat::resolver::CodeSource; use numbat::{markup as m, NameResolutionError, NumbatError}; use numbat::{Context, InterpreterSettings}; +use jquery_terminal_formatter::{JqueryTerminalFormatter, JqueryTerminalWriter}; + #[wasm_bindgen] pub fn setup_panic_hook() { utils::set_panic_hook(); diff --git a/numbat/Cargo.toml b/numbat/Cargo.toml index 28ad33a7f..7f1cb7512 100644 --- a/numbat/Cargo.toml +++ b/numbat/Cargo.toml @@ -32,10 +32,13 @@ walkdir = "2" chrono = "0.4.31" chrono-tz = "0.8.5" iana-time-zone = "0.1" +termcolor = { version = "1.4.1", optional = true } +html-escape = { version = "0.2.13", optional = true } [features] default = ["fetch-exchangerates"] fetch-exchangerates = ["numbat-exchange-rates/fetch-exchangerates"] +html-formatter = ["termcolor", "html-escape"] [dev-dependencies] approx = "0.5" diff --git a/numbat-wasm/src/buffered_writer.rs b/numbat/src/buffered_writer.rs similarity index 100% rename from numbat-wasm/src/buffered_writer.rs rename to numbat/src/buffered_writer.rs diff --git a/numbat-wasm/src/html_formatter.rs b/numbat/src/html_formatter.rs similarity index 98% rename from numbat-wasm/src/html_formatter.rs rename to numbat/src/html_formatter.rs index 580edd9f4..f08aa190b 100644 --- a/numbat-wasm/src/html_formatter.rs +++ b/numbat/src/html_formatter.rs @@ -1,5 +1,5 @@ use crate::buffered_writer::BufferedWriter; -use numbat::markup::{FormatType, FormattedString, Formatter}; +use crate::markup::{FormatType, FormattedString, Formatter}; use termcolor::{Color, WriteColor}; diff --git a/numbat/src/lib.rs b/numbat/src/lib.rs index bb02413bb..06d4b889c 100644 --- a/numbat/src/lib.rs +++ b/numbat/src/lib.rs @@ -1,5 +1,7 @@ mod arithmetic; mod ast; +#[cfg(feature = "html-formatter")] +pub mod buffered_writer; mod bytecode_interpreter; mod column_formatter; mod currency; @@ -10,6 +12,8 @@ mod dimension; mod ffi; mod gamma; pub mod help; +#[cfg(feature = "html-formatter")] +pub mod html_formatter; mod interpreter; pub mod keywords; pub mod markup;