ariadne icon indicating copy to clipboard operation
ariadne copied to clipboard

issues when displaying unicode

Open nevakrien opened this issue 1 year ago • 1 comments

so for version 4 and above when I print pretrty much any error that contains something like this 🏳️‍⚧️ anywhere in the source it would just cut it. version 3 has weird formating things on the colors but otherwise works

specifcly I ran this

// Function to create a report for UnclosedString fn handle_unclosed_string<'a>(span: LocatedSpan<&'a str>, ch: char, source: &'a str) -> Report<'a, Range> { let (line, line_range, _) = get_line_info(source, span.location_offset()); let byte_offset = span.location_offset(); let span_len = span.fragment().len();

Report::build(ReportKind::Error, (), byte_offset)
    .with_config(ariadne::Config::default().with_char_set(CharSet::Unicode))
    .with_message("Unclosed string error")
    .with_label(
        Label::new(byte_offset..byte_offset + span_len)
            .with_message(format!("Expected closing '\\{}'", ch))
            .with_color(Color::Red),
    )
    .with_label(
        Label::new(line_range)
            .with_message(line)
            .with_color(Color::White),
    )
    .finish()

}

and it would work fine on most texts but fail on something like ", 丐, 丑 \n\nmore::stuff\n\n" unclosed string" by printing just Error: Unclosed string error

nevakrien avatar Aug 27 '24 20:08 nevakrien

By default, Ariadne uses character offsets for spans. This can be configured though, the docs for Config will have more information.

zesterer avatar Aug 31 '24 11:08 zesterer