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 scope = Scope::new();
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();
let result = engine.call_fn::<Dynamic>(&mut scope, &ast, "status_bar", ());

View file

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