fix: syntax highlighting was broken in bundled app

This commit is contained in:
2026-07-21 21:05:24 +02:00
parent 8170076e9b
commit 8e78a5fc2b
4 changed files with 41 additions and 28 deletions

View File

@@ -1,9 +0,0 @@
fn main() {
// syntect and fastembed both reach onig_sys across separate Rust dylibs.
// Keep the vendored static archive on this dylib's final native link line.
if std::env::var("CARGO_CFG_TARGET_ENV").as_deref() == Ok("msvc") {
println!("cargo:rustc-link-arg=onig.lib");
} else {
println!("cargo:rustc-link-arg=-lonig");
}
}

View File

@@ -0,0 +1,26 @@
use std::collections::HashSet;
#[test]
fn linked_editor_highlights_markdown() {
// Retain the dylib that previously interposed bds-editor's regex symbols.
let _ = std::hint::black_box(
bds_server::run_headless
as fn(bds_server::boot::BootMode, bds_server::ServerConfig) -> anyhow::Result<()>,
);
let highlighter = bds_editor::highlighter();
assert_eq!(
highlighter.syntax_for_extension("md").name,
"Markdown with Macros"
);
let colors = highlighter
.highlight_lines(
"plain\n# Heading\n[link](https://example.com)\n`code`",
highlighter.syntax_for_extension("md"),
)
.into_iter()
.flatten()
.map(|(style, _)| style.foreground)
.collect::<HashSet<_>>();
assert!(colors.len() > 1, "linked editor should use syntax colors");
}