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:

18431051d9/crates/language2/src/highlight_map.rs (L15-L41)
This commit is contained in:
Marshall Bowers 2023-11-01 04:05:50 +01:00 committed by GitHub
parent 18431051d9
commit 36a73d657a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
54 changed files with 173 additions and 6832 deletions

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;