Allow trailing commas in builtin JSONC schemas (#43854)

The JSON language server looks for a top-level `allowTrailingCommas`
flag to decide whether it should warn for trailing commas. Since the
JSONC parser for these builtin files can handles trailing commas, adding
this flag to the schema also prevents a warning for those commas.

I don't think there's an issue that is only for this specific issue, but
it relates to *many* existing / older issues:
- #18509
- #17487
- #40970
- #18509
- #21303

Release Notes:

- Suppress warning for trailing commas in builtin JSON files
(`settings.json`, `keymap.json`, etc.)
This commit is contained in:
Ian Chamberlain
2025-12-04 15:37:32 -05:00
committed by GitHub
parent 43f977c6b9
commit cd8679e81a
6 changed files with 28 additions and 4 deletions
+4 -1
View File
@@ -15,6 +15,7 @@ use util::ResultExt as _;
use util::{
asset_str,
markdown::{MarkdownEscaped, MarkdownInlineCode, MarkdownString},
schemars::AllowTrailingCommas,
};
use crate::SettingsAssets;
@@ -451,7 +452,9 @@ impl KeymapFile {
/// Creates a JSON schema generator, suitable for generating json schemas
/// for actions
pub fn action_schema_generator() -> schemars::SchemaGenerator {
schemars::generate::SchemaSettings::draft2019_09().into_generator()
schemars::generate::SchemaSettings::draft2019_09()
.with_transform(AllowTrailingCommas)
.into_generator()
}
pub fn generate_json_schema_for_registered_actions(cx: &mut App) -> Value {
+2 -1
View File
@@ -25,7 +25,7 @@ use std::{
use util::{
ResultExt as _,
rel_path::RelPath,
schemars::{DefaultDenyUnknownFields, replace_subschema},
schemars::{AllowTrailingCommas, DefaultDenyUnknownFields, replace_subschema},
};
pub type EditorconfigProperties = ec4rs::Properties;
@@ -1010,6 +1010,7 @@ impl SettingsStore {
pub fn json_schema(&self, params: &SettingsJsonSchemaParams) -> Value {
let mut generator = schemars::generate::SchemaSettings::draft2019_09()
.with_transform(DefaultDenyUnknownFields)
.with_transform(AllowTrailingCommas)
.into_generator();
UserSettingsContent::json_schema(&mut generator);