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:
@@ -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 {
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user