Add test that JSON schema generation works + actions build from no input (#23049)
Release Notes: - N/A
This commit is contained in:
parent
85b727c1a2
commit
b633f62aa6
5 changed files with 81 additions and 16 deletions
|
@ -56,7 +56,6 @@ project.workspace = true
|
|||
regex.workspace = true
|
||||
rope.workspace = true
|
||||
rust-embed.workspace = true
|
||||
schemars.workspace = true
|
||||
serde.workspace = true
|
||||
serde_json.workspace = true
|
||||
settings.workspace = true
|
||||
|
|
|
@ -10,7 +10,6 @@ use language::{LanguageRegistry, LanguageToolchainStore, LspAdapter, LspAdapterD
|
|||
use lsp::{LanguageServerBinary, LanguageServerName};
|
||||
use node_runtime::NodeRuntime;
|
||||
use project::{lsp_store::language_server_settings, ContextProviderWithTasks};
|
||||
use schemars::gen::SchemaSettings;
|
||||
use serde_json::{json, Value};
|
||||
use settings::{KeymapFile, SettingsJsonSchemaParams, SettingsStore};
|
||||
use smol::{
|
||||
|
@ -76,6 +75,7 @@ impl JsonLspAdapter {
|
|||
}
|
||||
|
||||
fn get_workspace_config(language_names: Vec<String>, cx: &mut AppContext) -> Value {
|
||||
let keymap_schema = KeymapFile::generate_json_schema_for_registered_actions(cx);
|
||||
let font_names = &cx.text_system().all_font_names();
|
||||
let settings_schema = cx.global::<SettingsStore>().json_schema(
|
||||
&SettingsJsonSchemaParams {
|
||||
|
@ -115,7 +115,7 @@ impl JsonLspAdapter {
|
|||
},
|
||||
{
|
||||
"fileMatch": [schema_file_match(paths::keymap_file())],
|
||||
"schema": Self::generate_keymap_schema(cx),
|
||||
"schema": keymap_schema,
|
||||
},
|
||||
{
|
||||
"fileMatch": [
|
||||
|
@ -129,16 +129,6 @@ impl JsonLspAdapter {
|
|||
}
|
||||
})
|
||||
}
|
||||
|
||||
fn generate_keymap_schema(cx: &mut AppContext) -> Value {
|
||||
let mut generator = SchemaSettings::draft07()
|
||||
.with(|settings| settings.option_add_null_type = false)
|
||||
.into_generator();
|
||||
|
||||
let action_schemas = cx.action_schemas(&mut generator);
|
||||
let deprecations = cx.action_deprecations();
|
||||
KeymapFile::generate_json_schema(generator, action_schemas, deprecations)
|
||||
}
|
||||
}
|
||||
|
||||
#[async_trait(?Send)]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue