Add overrides for all languages
Co-authored-by: Julia Risley <julia@zed.dev>
This commit is contained in:
parent
2967b46a17
commit
2aa7a9e95b
31 changed files with 269 additions and 13 deletions
|
@ -830,15 +830,24 @@ impl Language {
|
|||
let mut values = HashMap::default();
|
||||
for (ix, name) in query.capture_names().iter().enumerate() {
|
||||
if let Some(override_name) = name.strip_prefix("override.") {
|
||||
let value = self
|
||||
.config
|
||||
.overrides
|
||||
.remove(override_name)
|
||||
.ok_or_else(|| anyhow!("no such override {override_name}"))?;
|
||||
let value = self.config.overrides.remove(override_name).ok_or_else(|| {
|
||||
anyhow!(
|
||||
"language {:?} has override in query but not in config: {override_name:?}",
|
||||
self.config.name
|
||||
)
|
||||
})?;
|
||||
values.insert(ix as u32, value);
|
||||
}
|
||||
}
|
||||
|
||||
if !self.config.overrides.is_empty() {
|
||||
let keys = self.config.overrides.keys().collect::<Vec<_>>();
|
||||
Err(anyhow!(
|
||||
"language {:?} has overrides in config not in query: {keys:?}",
|
||||
self.config.name
|
||||
))?;
|
||||
}
|
||||
|
||||
self.grammar_mut().override_config = Some(OverrideConfig { query, values });
|
||||
Ok(self)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue