From 1889f2fddddcce21790828c46a396e12c416919a Mon Sep 17 00:00:00 2001 From: pml68 Date: Thu, 27 Feb 2025 00:01:38 +0100 Subject: docs: add README --- README.md | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 README.md (limited to 'README.md') diff --git a/README.md b/README.md new file mode 100644 index 0000000..d09cfcc --- /dev/null +++ b/README.md @@ -0,0 +1,57 @@ +# iced_custom_highlighter + +A custom syntax highlighter for iced. + +It uses the colors from your app's Theme, based on a styling method (like `default_style`) + +# Example + +```rust +use iced::widget::{Column, pick_list, text_editor}; +use iced::{Element, Theme}; +use iced_custom_highlighter::{Highlight, Highlighter, Settings}; + +#[derive(Default)] +struct State { + content: text_editor::Content, + theme: Theme, +} + +#[derive(Debug, Clone)] +enum Message { + Edit(text_editor::Action), + ChangeTheme(Theme), +} + +fn view(state: &State) -> Element<'_, Message> { +Column::new() + .push( + text_editor(&state.content) + .placeholder("Type something here...") + .rehighlight_on_redraw(true) + .highlight_with::( + Settings::new(vec![], Highlight::default_style, "rs"), + Highlight::to_format, + ) + .on_action(Message::Edit), + ) + .push(pick_list( + Theme::ALL, + Some(state.theme), + Message::ChangeTheme, + )) + .into() +} + +fn update(state: &mut State, message: Message) { + match message { + Message::Edit(action) => { + state.content.perform(action); + } + + Message::ChangeTheme(theme) => { + state.theme = theme; + } + } +} +``` -- cgit v1.2.3