Remove old Theme definition (#3195)

This PR removes the old `Theme` definition in favor of the new
`ThemeVariant`s.

The new `SyntaxStyles` have been reverted to the old `SyntaxTheme` that
operates by storing the syntax styles as a vector of
`gpui2::HighlightStyle`s.

This is necessary for the intended usage by `language2`, where we find
the longest key in the theme's syntax styles that matches the capture
name:

https://github.com/zed-industries/zed/blob/18431051d9d750d9e66284a71f7a55a1e31c1374/crates/language2/src/highlight_map.rs#L15-L41
This commit is contained in:
Marshall Bowers
2023-10-31 23:05:50 -04:00
committed by GitHub
parent 18431051d9
commit 36a73d657a
54 changed files with 173 additions and 6832 deletions
+5 -5
View File
@@ -42,7 +42,7 @@ use std::{
},
};
use syntax_map::SyntaxSnapshot;
use theme2::{SyntaxTheme, Theme};
use theme2::{SyntaxTheme, ThemeVariant};
use tree_sitter::{self, Query};
use unicase::UniCase;
use util::{http::HttpClient, paths::PathExt};
@@ -642,7 +642,7 @@ struct LanguageRegistryState {
next_available_language_id: AvailableLanguageId,
loading_languages: HashMap<AvailableLanguageId, Vec<oneshot::Sender<Result<Arc<Language>>>>>,
subscription: (watch::Sender<()>, watch::Receiver<()>),
theme: Option<Arc<Theme>>,
theme: Option<Arc<ThemeVariant>>,
version: usize,
reload_count: usize,
}
@@ -743,11 +743,11 @@ impl LanguageRegistry {
self.state.read().reload_count
}
pub fn set_theme(&self, theme: Arc<Theme>) {
pub fn set_theme(&self, theme: Arc<ThemeVariant>) {
let mut state = self.state.write();
state.theme = Some(theme.clone());
for language in &state.languages {
language.set_theme(&theme.syntax);
language.set_theme(&theme.syntax());
}
}
@@ -1048,7 +1048,7 @@ impl LanguageRegistryState {
fn add(&mut self, language: Arc<Language>) {
if let Some(theme) = self.theme.as_ref() {
language.set_theme(&theme.syntax);
language.set_theme(&theme.syntax());
}
self.languages.push(language);
self.version += 1;