mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-11-10 15:14:32 +00:00
Remove serde flag from indexmap dependency
This commit is contained in:
parent
956c8521a9
commit
b60b27bd22
5 changed files with 31 additions and 24 deletions
2
Cargo.lock
generated
2
Cargo.lock
generated
|
@ -809,7 +809,6 @@ checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
|
|||
dependencies = [
|
||||
"equivalent",
|
||||
"hashbrown",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -1683,7 +1682,6 @@ dependencies = [
|
|||
"ide",
|
||||
"ide-db",
|
||||
"ide-ssr",
|
||||
"indexmap",
|
||||
"itertools",
|
||||
"load-cargo",
|
||||
"lsp-server 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
|
|
@ -47,7 +47,6 @@ always-assert = "0.2.0"
|
|||
walkdir = "2.3.2"
|
||||
semver.workspace = true
|
||||
memchr = "2.7.1"
|
||||
indexmap = { workspace = true, features = ["serde"] }
|
||||
|
||||
cfg.workspace = true
|
||||
flycheck.workspace = true
|
||||
|
|
|
@ -18,7 +18,6 @@ use ide_db::{
|
|||
imports::insert_use::{ImportGranularity, InsertUseConfig, PrefixKind},
|
||||
SnippetCap,
|
||||
};
|
||||
use indexmap::IndexMap;
|
||||
use itertools::Itertools;
|
||||
use lsp_types::{ClientCapabilities, MarkupKind};
|
||||
use paths::{Utf8Path, Utf8PathBuf};
|
||||
|
@ -382,8 +381,7 @@ config_data! {
|
|||
/// Enables completions of private items and fields that are defined in the current workspace even if they are not visible at the current position.
|
||||
completion_privateEditable_enable: bool = false,
|
||||
/// Custom completion snippets.
|
||||
// NOTE: we use IndexMap for deterministic serialization ordering
|
||||
completion_snippets_custom: IndexMap<String, SnippetDef> = serde_json::from_str(r#"{
|
||||
completion_snippets_custom: FxHashMap<String, SnippetDef> = serde_json::from_str(r#"{
|
||||
"Arc::new": {
|
||||
"postfix": "arc",
|
||||
"body": "Arc::new(${receiver})",
|
||||
|
@ -1243,7 +1241,19 @@ impl Config {
|
|||
}
|
||||
|
||||
pub fn json_schema() -> serde_json::Value {
|
||||
FullConfigInput::json_schema()
|
||||
let mut s = FullConfigInput::json_schema();
|
||||
|
||||
fn sort_objects_by_field(json: &mut serde_json::Value) {
|
||||
if let serde_json::Value::Object(object) = json {
|
||||
let old = std::mem::take(object);
|
||||
old.into_iter().sorted_by(|(k, _), (k2, _)| k.cmp(k2)).for_each(|(k, mut v)| {
|
||||
sort_objects_by_field(&mut v);
|
||||
object.insert(k, v);
|
||||
});
|
||||
}
|
||||
}
|
||||
sort_objects_by_field(&mut s);
|
||||
s
|
||||
}
|
||||
|
||||
pub fn root_path(&self) -> &AbsPathBuf {
|
||||
|
@ -2640,9 +2650,8 @@ macro_rules! _config_data {
|
|||
|
||||
/// All fields `Option<T>`, `None` representing fields not set in a particular JSON/TOML blob.
|
||||
#[allow(non_snake_case)]
|
||||
#[derive(Clone, Serialize, Default)]
|
||||
#[derive(Clone, Default)]
|
||||
struct $input { $(
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
$field: Option<$ty>,
|
||||
)* }
|
||||
|
||||
|
@ -2725,7 +2734,7 @@ struct DefaultConfigData {
|
|||
/// All of the config levels, all fields `Option<T>`, to describe fields that are actually set by
|
||||
/// some rust-analyzer.toml file or JSON blob. An empty rust-analyzer.toml corresponds to
|
||||
/// all fields being None.
|
||||
#[derive(Debug, Clone, Default, Serialize)]
|
||||
#[derive(Debug, Clone, Default)]
|
||||
struct FullConfigInput {
|
||||
global: GlobalConfigInput,
|
||||
local: LocalConfigInput,
|
||||
|
@ -2770,7 +2779,7 @@ impl FullConfigInput {
|
|||
/// All of the config levels, all fields `Option<T>`, to describe fields that are actually set by
|
||||
/// some rust-analyzer.toml file or JSON blob. An empty rust-analyzer.toml corresponds to
|
||||
/// all fields being None.
|
||||
#[derive(Debug, Clone, Default, Serialize)]
|
||||
#[derive(Debug, Clone, Default)]
|
||||
struct GlobalLocalConfigInput {
|
||||
global: GlobalConfigInput,
|
||||
local: LocalConfigInput,
|
||||
|
@ -2932,7 +2941,7 @@ fn field_props(field: &str, ty: &str, doc: &[&str], default: &str) -> serde_json
|
|||
"FxHashMap<Box<str>, Box<[Box<str>]>>" => set! {
|
||||
"type": "object",
|
||||
},
|
||||
"IndexMap<String, SnippetDef>" => set! {
|
||||
"FxHashMap<String, SnippetDef>" => set! {
|
||||
"type": "object",
|
||||
},
|
||||
"FxHashMap<String, String>" => set! {
|
||||
|
@ -3347,6 +3356,7 @@ mod tests {
|
|||
#[test]
|
||||
fn generate_package_json_config() {
|
||||
let s = Config::json_schema();
|
||||
|
||||
let schema = format!("{s:#}");
|
||||
let mut schema = schema
|
||||
.trim_start_matches('[')
|
||||
|
|
|
@ -350,12 +350,6 @@ Default:
|
|||
"description": "Put the expression into a pinned `Box`",
|
||||
"scope": "expr"
|
||||
},
|
||||
"Ok": {
|
||||
"postfix": "ok",
|
||||
"body": "Ok(${receiver})",
|
||||
"description": "Wrap the expression in a `Result::Ok`",
|
||||
"scope": "expr"
|
||||
},
|
||||
"Err": {
|
||||
"postfix": "err",
|
||||
"body": "Err(${receiver})",
|
||||
|
@ -367,6 +361,12 @@ Default:
|
|||
"body": "Some(${receiver})",
|
||||
"description": "Wrap the expression in an `Option::Some`",
|
||||
"scope": "expr"
|
||||
},
|
||||
"Ok": {
|
||||
"postfix": "ok",
|
||||
"body": "Ok(${receiver})",
|
||||
"description": "Wrap the expression in a `Result::Ok`",
|
||||
"scope": "expr"
|
||||
}
|
||||
}
|
||||
----
|
||||
|
|
|
@ -1187,12 +1187,6 @@
|
|||
"description": "Put the expression into a pinned `Box`",
|
||||
"scope": "expr"
|
||||
},
|
||||
"Ok": {
|
||||
"postfix": "ok",
|
||||
"body": "Ok(${receiver})",
|
||||
"description": "Wrap the expression in a `Result::Ok`",
|
||||
"scope": "expr"
|
||||
},
|
||||
"Err": {
|
||||
"postfix": "err",
|
||||
"body": "Err(${receiver})",
|
||||
|
@ -1204,6 +1198,12 @@
|
|||
"body": "Some(${receiver})",
|
||||
"description": "Wrap the expression in an `Option::Some`",
|
||||
"scope": "expr"
|
||||
},
|
||||
"Ok": {
|
||||
"postfix": "ok",
|
||||
"body": "Ok(${receiver})",
|
||||
"description": "Wrap the expression in a `Result::Ok`",
|
||||
"scope": "expr"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
|
|
Loading…
Reference in a new issue