Reparse unknown injection ranges in buffer when adding a new language

This commit is contained in:
Antonio Scandurra 2023-01-24 15:29:59 +01:00
parent f3509824e8
commit c48e3f3d05
4 changed files with 129 additions and 76 deletions

View file

@ -422,6 +422,7 @@ pub struct LanguageRegistry {
>,
subscription: RwLock<(watch::Sender<()>, watch::Receiver<()>)>,
theme: RwLock<Option<Arc<Theme>>>,
version: AtomicUsize,
}
impl LanguageRegistry {
@ -436,6 +437,7 @@ impl LanguageRegistry {
lsp_binary_paths: Default::default(),
subscription: RwLock::new(watch::channel()),
theme: Default::default(),
version: Default::default(),
}
}
@ -449,6 +451,7 @@ impl LanguageRegistry {
language.set_theme(&theme.editor.syntax);
}
self.languages.write().push(language);
self.version.fetch_add(1, SeqCst);
*self.subscription.write().0.borrow_mut() = ();
}
@ -456,6 +459,10 @@ impl LanguageRegistry {
self.subscription.read().1.clone()
}
pub fn version(&self) -> usize {
self.version.load(SeqCst)
}
pub fn set_theme(&self, theme: Arc<Theme>) {
*self.theme.write() = Some(theme.clone());
for language in self.languages.read().iter() {