feat: use actual default options and outputs from meta plugins
Co-authored-by: aider (openai/andrew/openrouter/deepseek/deepseek-chat-v3.1) <aider@aider.chat>
This commit is contained in:
@@ -59,7 +59,21 @@ struct MetaPluginConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn mode_generate_config(_cmd: &mut Command, _settings: &crate::config::Settings) -> Result<()> {
|
pub fn mode_generate_config(_cmd: &mut Command, _settings: &crate::config::Settings) -> Result<()> {
|
||||||
// Create a default configuration with empty options and outputs for meta plugins
|
// Create instances of each meta plugin to get their default options and outputs
|
||||||
|
let mut text_plugin = crate::meta_plugin::text::TextMetaPlugin::new(None, None);
|
||||||
|
let mut cwd_plugin = crate::meta_plugin::cwd::CwdMetaPlugin::new(None, None);
|
||||||
|
let mut digest_plugin = crate::meta_plugin::digest::DigestMetaPlugin::new(None, None);
|
||||||
|
let mut hostname_plugin = crate::meta_plugin::hostname::HostnameMetaPlugin::new(None, None);
|
||||||
|
let mut magic_file_plugin = crate::meta_plugin::magic::MagicFileMetaPlugin::new(None, None);
|
||||||
|
|
||||||
|
// Initialize plugins to set up their default options and outputs
|
||||||
|
text_plugin.initialize();
|
||||||
|
cwd_plugin.initialize();
|
||||||
|
digest_plugin.initialize();
|
||||||
|
hostname_plugin.initialize();
|
||||||
|
magic_file_plugin.initialize();
|
||||||
|
|
||||||
|
// Create a default configuration
|
||||||
let default_config = DefaultConfig {
|
let default_config = DefaultConfig {
|
||||||
dir: Some("~/.local/share/keep".to_string()),
|
dir: Some("~/.local/share/keep".to_string()),
|
||||||
list_format: vec![
|
list_format: vec![
|
||||||
@@ -115,28 +129,28 @@ pub fn mode_generate_config(_cmd: &mut Command, _settings: &crate::config::Setti
|
|||||||
meta_plugins: Some(vec![
|
meta_plugins: Some(vec![
|
||||||
MetaPluginConfig {
|
MetaPluginConfig {
|
||||||
name: "text".to_string(),
|
name: "text".to_string(),
|
||||||
options: std::collections::HashMap::new(),
|
options: text_plugin.options().clone(),
|
||||||
outputs: std::collections::HashMap::new(),
|
outputs: convert_outputs_to_string_map(text_plugin.outputs()),
|
||||||
},
|
},
|
||||||
MetaPluginConfig {
|
MetaPluginConfig {
|
||||||
name: "cwd".to_string(),
|
name: "cwd".to_string(),
|
||||||
options: std::collections::HashMap::new(),
|
options: cwd_plugin.options().clone(),
|
||||||
outputs: std::collections::HashMap::new(),
|
outputs: convert_outputs_to_string_map(cwd_plugin.outputs()),
|
||||||
},
|
},
|
||||||
MetaPluginConfig {
|
MetaPluginConfig {
|
||||||
name: "digest".to_string(),
|
name: "digest".to_string(),
|
||||||
options: std::collections::HashMap::new(),
|
options: digest_plugin.options().clone(),
|
||||||
outputs: std::collections::HashMap::new(),
|
outputs: convert_outputs_to_string_map(digest_plugin.outputs()),
|
||||||
},
|
},
|
||||||
MetaPluginConfig {
|
MetaPluginConfig {
|
||||||
name: "hostname".to_string(),
|
name: "hostname".to_string(),
|
||||||
options: std::collections::HashMap::new(),
|
options: hostname_plugin.options().clone(),
|
||||||
outputs: std::collections::HashMap::new(),
|
outputs: convert_outputs_to_string_map(hostname_plugin.outputs()),
|
||||||
},
|
},
|
||||||
MetaPluginConfig {
|
MetaPluginConfig {
|
||||||
name: "magic_file".to_string(),
|
name: "magic_file".to_string(),
|
||||||
options: std::collections::HashMap::new(),
|
options: magic_file_plugin.options().clone(),
|
||||||
outputs: std::collections::HashMap::new(),
|
outputs: convert_outputs_to_string_map(magic_file_plugin.outputs()),
|
||||||
},
|
},
|
||||||
]),
|
]),
|
||||||
};
|
};
|
||||||
@@ -147,3 +161,19 @@ pub fn mode_generate_config(_cmd: &mut Command, _settings: &crate::config::Setti
|
|||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Helper function to convert outputs from serde_yaml::Value to String
|
||||||
|
fn convert_outputs_to_string_map(
|
||||||
|
outputs: &std::collections::HashMap<String, serde_yaml::Value>,
|
||||||
|
) -> std::collections::HashMap<String, String> {
|
||||||
|
let mut result = std::collections::HashMap::new();
|
||||||
|
for (key, value) in outputs {
|
||||||
|
if let Some(str_value) = value.as_str() {
|
||||||
|
result.insert(key.clone(), str_value.to_string());
|
||||||
|
} else {
|
||||||
|
// Convert non-string values to their YAML string representation
|
||||||
|
result.insert(key.clone(), serde_yaml::to_string(value).unwrap_or_default());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
result
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user