summaryrefslogtreecommitdiff
path: root/src/widgets/luaeditor/theme.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets/luaeditor/theme.rs')
-rw-r--r--src/widgets/luaeditor/theme.rs43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/widgets/luaeditor/theme.rs b/src/widgets/luaeditor/theme.rs
new file mode 100644
index 0000000..2af8534
--- /dev/null
+++ b/src/widgets/luaeditor/theme.rs
@@ -0,0 +1,43 @@
+use ratatui::{style::{Color, Stylize}, text::Span};
+use tree_sitter_highlight::Highlight;
+
+
+static HIGHLIGHT_THEME: [Color; 29] = [
+ Color::White, // attribute
+ Color::White, // boolean
+ Color::DarkGray, // comment
+ Color::LightYellow, // conditional
+ Color::White, // constant
+ Color::White, // constant.builtin
+ Color::White, // constructor
+ Color::White, // field
+ Color::White, // function
+ Color::White, // function.builtin
+ Color::White, // function.call
+ Color::Yellow, // keyword
+ Color::LightYellow, // keyword.function
+ Color::White, // keyword.operator
+ Color::LightYellow, // keyword.return
+ Color::White, // label
+ Color::White, // method
+ Color::White, // method.call
+ Color::Blue, // number
+ Color::Gray, // operator
+ Color::White, // parameter
+ Color::White, // preproc
+ Color::Gray, // punctuation.bracket
+ Color::Gray, // punctuation.delimiter
+ Color::LightYellow, // repeat
+ Color::LightGreen, // string
+ Color::Yellow, // string.escape
+ Color::Gray, // variable
+ Color::White, // variable.builtin
+];
+
+pub fn theme_highlight_group(hl: Option<Highlight>, span: Span) -> Span {
+ if let Some(hl) = hl {
+ span.fg(HIGHLIGHT_THEME[hl.0])
+ } else {
+ span
+ }
+}