Skip to content

Commit 4a8b86f

Browse files
committed
minimize breaking changes
1 parent 7b3d7b2 commit 4a8b86f

14 files changed

Lines changed: 373 additions & 202 deletions

File tree

Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@ macro = ["dep:dioxus-code-macro", "dioxus-code-macro/lang-rust"]
4747
runtime = [
4848
"arborium/lang-rust",
4949
"dep:arborium-tree-sitter",
50+
]
51+
detection = [
52+
"runtime",
5053
"dep:betlang",
5154
]
5255
all-languages = [

README.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,25 +55,27 @@ For editor-style use cases where the source isn't known at compile time:
5555

5656
```toml
5757
[dependencies]
58-
dioxus-code = { version = "0.1", features = ["runtime"] }
58+
dioxus-code = { version = "0.1", features = ["runtime", "detection"] }
5959
```
6060

6161
```rust
62+
# #[cfg(feature = "detection")]
63+
# {
6264
# use dioxus::prelude::*;
63-
use dioxus_code::{Code, CodeOptions, Language, SourceCode, Theme};
65+
use dioxus_code::{Code, Language, SourceCode, Theme};
6466
# let user_input = String::new();
6567
# let _ =
6668
rsx! {
6769
Code {
68-
src: SourceCode::new(user_input)
69-
.with_options(CodeOptions::builder().with_language(Language::Rust)),
70+
src: SourceCode::builder(user_input).with_language(Language::Auto),
7071
theme: Theme::GITHUB_LIGHT,
7172
}
7273
}
7374
# ;
75+
# }
7476
```
7577

76-
Language can be set explicitly with the same [`CodeOptions`] builder used by [`code!`], or auto-detected from the source. The default `runtime` feature includes Rust; pass `lang-python`, `lang-toml`, or `all-languages` for the rest.
78+
`Language::Auto` is available only with the `detection` feature. Without detection, pass a concrete language such as `Language::Rust`. The default `runtime` feature includes Rust; pass `lang-python`, `lang-toml`, or `all-languages` for the rest.
7779

7880
## Editor
7981

build.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,25 @@ fn main() {
104104
));
105105
}
106106

107+
generated.push_str(
108+
r#" /// Every syntax theme, in declaration order.
109+
///
110+
/// ```rust
111+
/// use dioxus_code::Theme;
112+
/// assert!(Theme::ALL.contains(&Theme::TOKYO_NIGHT));
113+
/// ```
114+
pub const ALL: &'static [Theme] = &[
115+
"#,
116+
);
117+
for theme in &themes {
118+
generated.push_str(&format!(" Self::{},\n", theme.const_name));
119+
}
120+
generated.push_str(
121+
r#" ];
122+
123+
"#,
124+
);
125+
107126
generated.push_str(
108127
r#"}
109128
"#,

code-editor/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ targets = ["x86_64-unknown-linux-gnu", "wasm32-unknown-unknown"]
1717

1818
[dependencies]
1919
dioxus = { version = "0.7.0", default-features = false, features = ["lib"] }
20-
dioxus-code = { workspace = true, features = ["lang-toml", "lang-python"] }
20+
dioxus-code = { workspace = true, features = ["detection", "lang-toml", "lang-python"] }
2121

2222
[target.'cfg(target_arch = "wasm32")'.dependencies]
2323
wasm-bindgen = "0.2"

code-editor/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ pub fn CodeEditor(props: CodeEditorProps) -> Element {
128128
}
129129
buffer.highlighted()
130130
}
131-
None => SourceCode::new(props.value.clone())
131+
None => SourceCode::builder(props.value.clone())
132132
.with_language(props.language)
133133
.into(),
134134
}

docsite/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ publish = false
1111

1212
[dependencies]
1313
dioxus = { version = "0.7.0", features = ["router"] }
14-
dioxus-code = { workspace = true, features = ["all-languages"] }
14+
dioxus-code = { workspace = true, features = ["all-languages", "detection"] }
1515
dioxus-code-editor = { workspace = true }
1616
dioxus-primitives = { git = "https://github.com/DioxusLabs/components", version = "0.0.1", default-features = false, features = ["router"] }
1717

docsite/snippets/runtime.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ fn App() -> Element {
1111

1212
rsx! {
1313
Code {
14-
src: SourceCode::new(source()).with_language(Language::Rust),
14+
src: SourceCode::builder(source()).with_language(Language::Rust),
1515
theme: CodeTheme::system(Theme::GITHUB_LIGHT, Theme::GITHUB_DARK),
1616
}
1717
}

docsite/src/main.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -544,7 +544,7 @@ fn Hero(theme: CodeTheme, theme_label: String) -> Element {
544544
"."
545545
}
546546
p { class: "hero-lede",
547-
"A drop-in component with two source modescompile-time macro and runtime detection. No JS, no flash of unstyled code."
547+
"A drop-in component with two source modes: compile-time macro and runtime highlighting with explicit language selection."
548548
}
549549
div { class: "hero-terminal-block",
550550
div { class: "hero-terminal-bar",
@@ -577,7 +577,7 @@ fn Hero(theme: CodeTheme, theme_label: String) -> Element {
577577
span { "{theme_label}" }
578578
}
579579
div { class: "card-code-body",
580-
Code { src: SourceCode::new(HERO_COUNTER).with_language(Language::Rust), theme }
580+
Code { src: SourceCode::builder(HERO_COUNTER).with_language(Language::Rust), theme }
581581
}
582582
}
583583
}
@@ -663,7 +663,7 @@ fn FeatureRowReceipt() -> Element {
663663
span { class: "receipt-aside-num", "02" }
664664
div {
665665
h3 { class: "receipt-aside-title", "SourceCode" }
666-
p { class: "receipt-aside-text", "Pull it in when input is dynamic. Tree-sitter grammars detect language automatically." }
666+
p { class: "receipt-aside-text", "Pull it in when input is dynamic. Pass the language you want to highlight." }
667667
}
668668
}
669669
div { class: "receipt-aside-row",
@@ -785,7 +785,7 @@ fn Docs(scheme: Scheme) -> Element {
785785
}
786786
div { class: "card-code-body",
787787
Code {
788-
src: SourceCode::new(step.code).with_language(step.language),
788+
src: SourceCode::builder(step.code).with_language(step.language),
789789
theme,
790790
}
791791
}

examples/basic/src/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ fn App() -> Element {
1515
theme: Theme::RUSTDOC_AYU,
1616
}
1717
Code {
18-
src: SourceCode::new("fn main() {\n println!(\"runtime\");\n}")
18+
src: SourceCode::builder("fn main() {\n println!(\"runtime\");\n}")
1919
.with_language(Language::Rust),
2020
theme: Theme::GITHUB_LIGHT,
2121
}

examples/editor/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ publish = false
1111

1212
[dependencies]
1313
dioxus = { version = "0.7.0" }
14-
dioxus-code = { workspace = true, features = ["all-languages"] }
14+
dioxus-code = { workspace = true, features = ["all-languages", "detection"] }
1515
dioxus-code-editor = { workspace = true }
1616

1717
[features]

0 commit comments

Comments
 (0)