highlighter: Fix to support custom language register. (#1064)
This commit is contained in:
parent
ffa0a2eb3a
commit
0fbe32c7d7
1 changed files with 15 additions and 1 deletions
|
|
@ -473,6 +473,12 @@ impl LanguageRegistry {
|
|||
|
||||
/// Returns the language configuration for the given language name.
|
||||
pub fn language(&self, name: &str) -> Option<&LanguageConfig> {
|
||||
// Try to get by name first, there may have a custom language registered
|
||||
if let Some(language) = self.languages.get(name) {
|
||||
return Some(language);
|
||||
}
|
||||
|
||||
// Then try to get built-in language to support short language names, e.g. "js" for "javascript"
|
||||
let language = Language::from_str(name);
|
||||
self.languages.get(language.name())
|
||||
}
|
||||
|
|
@ -482,6 +488,8 @@ impl LanguageRegistry {
|
|||
mod tests {
|
||||
use gpui::rgb;
|
||||
|
||||
use crate::highlighter::LanguageConfig;
|
||||
|
||||
#[test]
|
||||
fn test_syntax_colors() {
|
||||
use super::{HighlightTheme, SyntaxColors};
|
||||
|
|
@ -498,8 +506,14 @@ mod tests {
|
|||
#[test]
|
||||
fn test_registry() {
|
||||
use super::LanguageRegistry;
|
||||
let registry = LanguageRegistry::new();
|
||||
let mut registry = LanguageRegistry::new();
|
||||
|
||||
registry.register(
|
||||
"foo",
|
||||
&LanguageConfig::new("foo", tree_sitter_bash::LANGUAGE.into(), vec![], "", "", ""),
|
||||
);
|
||||
|
||||
assert!(registry.language("foo").is_some());
|
||||
assert!(registry.language("rust").is_some());
|
||||
assert!(registry.language("rs").is_some());
|
||||
assert!(registry.language("javascript").is_some());
|
||||
|
|
|
|||
Loading…
Reference in a new issue