fix hblang highlighting to match current lang

This commit is contained in:
able 2024-05-12 08:28:51 -05:00
parent d836f2f145
commit fe4ab556f8
2 changed files with 116 additions and 101 deletions

View file

@ -19,7 +19,7 @@ impl Config<'static> {
let mut engine = Engine::new(); let mut engine = Engine::new();
let mut scope = Scope::new(); let mut scope = Scope::new();
let ast = engine let ast = engine
.compile_file(PathBuf::from_str("assets/config.rhai").unwrap()) .compile_file(PathBuf::from_str("/home/able/Projects/adit/assets/config.rhai").unwrap())
.unwrap(); .unwrap();
let result = engine.call_fn::<Dynamic>(&mut scope, &ast, "status_bar", ()); let result = engine.call_fn::<Dynamic>(&mut scope, &ast, "status_bar", ());

View file

@ -32,106 +32,121 @@ impl FileType {
&self.hl_opts &self.hl_opts
} }
pub fn from(file_name: &str) -> Self { pub fn from(file_name: &str) -> Self {
if file_name.ends_with(".rs") { let ext = file_name.split('.').last();
return Self { if ext.is_some() {
name: String::from("Rust"), let ext = ext.unwrap();
hl_opts: HighlightingOptions { match ext {
numbers: true, "rs" => {
strings: true, return Self {
characters: true, name: String::from("Rust"),
comments: true, hl_opts: HighlightingOptions {
multiline_comments: true, numbers: true,
primary_keywords: vec![ strings: true,
"as".to_string(), characters: true,
"break".to_string(), comments: true,
"const".to_string(), multiline_comments: true,
"continue".to_string(), primary_keywords: vec![
"crate".to_string(), "as".to_string(),
"else".to_string(), "break".to_string(),
"enum".to_string(), "const".to_string(),
"extern".to_string(), "continue".to_string(),
"false".to_string(), "crate".to_string(),
"fn".to_string(), "else".to_string(),
"for".to_string(), "enum".to_string(),
"if".to_string(), "extern".to_string(),
"impl".to_string(), "false".to_string(),
"in".to_string(), "fn".to_string(),
"let".to_string(), "for".to_string(),
"loop".to_string(), "if".to_string(),
"match".to_string(), "impl".to_string(),
"mod".to_string(), "in".to_string(),
"move".to_string(), "let".to_string(),
"mut".to_string(), "loop".to_string(),
"pub".to_string(), "match".to_string(),
"ref".to_string(), "mod".to_string(),
"return".to_string(), "move".to_string(),
"self".to_string(), "mut".to_string(),
"Self".to_string(), "pub".to_string(),
"static".to_string(), "ref".to_string(),
"struct".to_string(), "return".to_string(),
"super".to_string(), "self".to_string(),
"trait".to_string(), "Self".to_string(),
"true".to_string(), "static".to_string(),
"type".to_string(), "struct".to_string(),
"unsafe".to_string(), "super".to_string(),
"use".to_string(), "trait".to_string(),
"where".to_string(), "true".to_string(),
"while".to_string(), "type".to_string(),
"dyn".to_string(), "unsafe".to_string(),
"abstract".to_string(), "use".to_string(),
"become".to_string(), "where".to_string(),
"box".to_string(), "while".to_string(),
"do".to_string(), "dyn".to_string(),
"final".to_string(), "abstract".to_string(),
"macro".to_string(), "become".to_string(),
"override".to_string(), "box".to_string(),
"priv".to_string(), "do".to_string(),
"typeof".to_string(), "final".to_string(),
"unsized".to_string(), "macro".to_string(),
"virtual".to_string(), "override".to_string(),
"yield".to_string(), "priv".to_string(),
"async".to_string(), "typeof".to_string(),
"await".to_string(), "unsized".to_string(),
"try".to_string(), "virtual".to_string(),
], "yield".to_string(),
secondary_keywords: vec![ "async".to_string(),
"bool".to_string(), "await".to_string(),
"char".to_string(), "try".to_string(),
"i8".to_string(), ],
"i16".to_string(), secondary_keywords: vec![
"i32".to_string(), "bool".to_string(),
"i64".to_string(), "char".to_string(),
"isize".to_string(), "i8".to_string(),
"u8".to_string(), "i16".to_string(),
"u16".to_string(), "i32".to_string(),
"u32".to_string(), "i64".to_string(),
"u64".to_string(), "isize".to_string(),
"usize".to_string(), "u8".to_string(),
"f32".to_string(), "u16".to_string(),
"f64".to_string(), "u32".to_string(),
], "u64".to_string(),
}, "usize".to_string(),
}; "f32".to_string(),
} "f64".to_string(),
if file_name.ends_with(".hb") { ],
return Self { },
name: String::from("HBLang"), }
hl_opts: HighlightingOptions { }
numbers: true, "hb" => {
strings: true, return Self {
characters: true, name: String::from("HBLang"),
comments: true, hl_opts: HighlightingOptions {
multiline_comments: true, numbers: true,
primary_keywords: vec![ strings: true,
"if".to_string(), characters: true,
"else".to_string(), comments: true,
"return".to_string(), multiline_comments: true,
"loop".to_string(), primary_keywords: vec![
"break".to_string(), "if".to_string(),
], "else".to_string(),
secondary_keywords: vec![":=".to_string(), "int".to_string()], "return".to_string(),
}, "loop".to_string(),
}; "break".to_string(),
"struct".to_string(),
],
secondary_keywords: vec![
":=".to_string(),
"void".to_string(),
"never".to_string(),
"int".to_string(),
"bool".to_string(),
],
},
};
}
_ => return Self::default(),
}
} }
Self::default() Self::default()