This PR changes v0.0.7 of the extension API to v0.1.0. We had a false-start in releasing v0.0.7, which has since been yanked, so we need a new version number. We'll publish v0.1.0 to crates.io once the Preview build is out tomorrow. We're incrementing the minor version so that we have some leeway in putting out patch releases of the crate within a given extension API release. Release Notes: - N/A
33 lines
1.2 KiB
Rust
33 lines
1.2 KiB
Rust
#[path = "../wit/since_v0.1.0/settings.rs"]
|
|
mod types;
|
|
|
|
use crate::{wit, Result, SettingsLocation, Worktree};
|
|
use serde_json;
|
|
pub use types::*;
|
|
|
|
impl LanguageSettings {
|
|
/// Returns the [`LanguageSettings`] for the given language.
|
|
pub fn for_worktree(language: Option<&str>, worktree: &Worktree) -> Result<Self> {
|
|
let location = SettingsLocation {
|
|
worktree_id: worktree.id(),
|
|
path: worktree.root_path(),
|
|
};
|
|
let settings_json = wit::get_settings(Some(&location), "language", language)?;
|
|
let settings: Self = serde_json::from_str(&settings_json).map_err(|err| err.to_string())?;
|
|
Ok(settings)
|
|
}
|
|
}
|
|
|
|
impl LspSettings {
|
|
/// Returns the [`LspSettings`] for the given language server.
|
|
pub fn for_worktree(language_server_name: &str, worktree: &Worktree) -> Result<Self> {
|
|
let location = SettingsLocation {
|
|
worktree_id: worktree.id(),
|
|
path: worktree.root_path(),
|
|
};
|
|
let settings_json = wit::get_settings(Some(&location), "lsp", Some(language_server_name))?;
|
|
let settings: Self = serde_json::from_str(&settings_json).map_err(|err| err.to_string())?;
|
|
Ok(settings)
|
|
}
|
|
}
|