Autoclose brackets before a language-specific set of characters

Fixes #588
This commit is contained in:
Max Brunsfeld 2022-03-14 15:17:40 -07:00
parent 7bdb91f4ec
commit 325e6c31ae
5 changed files with 16 additions and 6 deletions

View file

@ -49,6 +49,7 @@ lazy_static! {
name: "Plain Text".into(),
path_suffixes: Default::default(),
brackets: Default::default(),
autoclose_before: Default::default(),
line_comment: None,
language_server: None,
},
@ -109,6 +110,8 @@ pub struct LanguageConfig {
pub name: Arc<str>,
pub path_suffixes: Vec<String>,
pub brackets: Vec<BracketPair>,
#[serde(default)]
pub autoclose_before: String,
pub line_comment: Option<String>,
pub language_server: Option<LanguageServerConfig>,
}
@ -119,6 +122,7 @@ impl Default for LanguageConfig {
name: "".into(),
path_suffixes: Default::default(),
brackets: Default::default(),
autoclose_before: Default::default(),
line_comment: Default::default(),
language_server: Default::default(),
}
@ -529,6 +533,10 @@ impl Language {
&self.config.brackets
}
pub fn should_autoclose_before(&self, c: char) -> bool {
c.is_whitespace() || self.config.autoclose_before.contains(c)
}
pub fn set_theme(&self, theme: &SyntaxTheme) {
if let Some(grammar) = self.grammar.as_ref() {
*grammar.highlight_map.lock() =