mirror of
				https://github.com/rust-lang/rust-analyzer.git
				synced 2025-11-03 21:25:25 +00:00 
			
		
		
		
	Merge pull request #18728 from Veykril/push-ozqlrzmqklwt
internal: Split `serde` derive feature into `serde_derive` usage
This commit is contained in:
		
						commit
						f3f8f4c6ad
					
				
					 19 changed files with 58 additions and 56 deletions
				
			
		
							
								
								
									
										57
									
								
								Cargo.lock
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										57
									
								
								Cargo.lock
									
										
									
										generated
									
									
									
								
							| 
						 | 
					@ -1008,18 +1008,6 @@ version = "0.4.22"
 | 
				
			||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
 | 
					checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					 | 
				
			||||||
name = "lsp-server"
 | 
					 | 
				
			||||||
version = "0.7.7"
 | 
					 | 
				
			||||||
dependencies = [
 | 
					 | 
				
			||||||
 "crossbeam-channel",
 | 
					 | 
				
			||||||
 "ctrlc",
 | 
					 | 
				
			||||||
 "log",
 | 
					 | 
				
			||||||
 "lsp-types",
 | 
					 | 
				
			||||||
 "serde",
 | 
					 | 
				
			||||||
 "serde_json",
 | 
					 | 
				
			||||||
]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "lsp-server"
 | 
					name = "lsp-server"
 | 
				
			||||||
version = "0.7.7"
 | 
					version = "0.7.7"
 | 
				
			||||||
| 
						 | 
					@ -1032,6 +1020,19 @@ dependencies = [
 | 
				
			||||||
 "serde_json",
 | 
					 "serde_json",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "lsp-server"
 | 
				
			||||||
 | 
					version = "0.7.8"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "crossbeam-channel",
 | 
				
			||||||
 | 
					 "ctrlc",
 | 
				
			||||||
 | 
					 "log",
 | 
				
			||||||
 | 
					 "lsp-types",
 | 
				
			||||||
 | 
					 "serde",
 | 
				
			||||||
 | 
					 "serde_derive",
 | 
				
			||||||
 | 
					 "serde_json",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "lsp-types"
 | 
					name = "lsp-types"
 | 
				
			||||||
version = "0.95.0"
 | 
					version = "0.95.0"
 | 
				
			||||||
| 
						 | 
					@ -1289,7 +1290,6 @@ name = "paths"
 | 
				
			||||||
version = "0.0.0"
 | 
					version = "0.0.0"
 | 
				
			||||||
dependencies = [
 | 
					dependencies = [
 | 
				
			||||||
 "camino",
 | 
					 "camino",
 | 
				
			||||||
 "serde",
 | 
					 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
| 
						 | 
					@ -1357,6 +1357,7 @@ dependencies = [
 | 
				
			||||||
 "paths",
 | 
					 "paths",
 | 
				
			||||||
 "rustc-hash 2.0.0",
 | 
					 "rustc-hash 2.0.0",
 | 
				
			||||||
 "serde",
 | 
					 "serde",
 | 
				
			||||||
 | 
					 "serde_derive",
 | 
				
			||||||
 "serde_json",
 | 
					 "serde_json",
 | 
				
			||||||
 "span",
 | 
					 "span",
 | 
				
			||||||
 "stdx",
 | 
					 "stdx",
 | 
				
			||||||
| 
						 | 
					@ -1446,6 +1447,7 @@ dependencies = [
 | 
				
			||||||
 "rustc-hash 2.0.0",
 | 
					 "rustc-hash 2.0.0",
 | 
				
			||||||
 "semver",
 | 
					 "semver",
 | 
				
			||||||
 "serde",
 | 
					 "serde",
 | 
				
			||||||
 | 
					 "serde_derive",
 | 
				
			||||||
 "serde_json",
 | 
					 "serde_json",
 | 
				
			||||||
 "span",
 | 
					 "span",
 | 
				
			||||||
 "stdx",
 | 
					 "stdx",
 | 
				
			||||||
| 
						 | 
					@ -1674,7 +1676,7 @@ dependencies = [
 | 
				
			||||||
 "intern",
 | 
					 "intern",
 | 
				
			||||||
 "itertools",
 | 
					 "itertools",
 | 
				
			||||||
 "load-cargo",
 | 
					 "load-cargo",
 | 
				
			||||||
 "lsp-server 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
					 "lsp-server 0.7.7",
 | 
				
			||||||
 "lsp-types",
 | 
					 "lsp-types",
 | 
				
			||||||
 "memchr",
 | 
					 "memchr",
 | 
				
			||||||
 "mimalloc",
 | 
					 "mimalloc",
 | 
				
			||||||
| 
						 | 
					@ -1693,6 +1695,7 @@ dependencies = [
 | 
				
			||||||
 "scip",
 | 
					 "scip",
 | 
				
			||||||
 "semver",
 | 
					 "semver",
 | 
				
			||||||
 "serde",
 | 
					 "serde",
 | 
				
			||||||
 | 
					 "serde_derive",
 | 
				
			||||||
 "serde_json",
 | 
					 "serde_json",
 | 
				
			||||||
 "stdx",
 | 
					 "stdx",
 | 
				
			||||||
 "syntax",
 | 
					 "syntax",
 | 
				
			||||||
| 
						 | 
					@ -1820,18 +1823,18 @@ dependencies = [
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "serde"
 | 
					name = "serde"
 | 
				
			||||||
version = "1.0.206"
 | 
					version = "1.0.216"
 | 
				
			||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
checksum = "5b3e4cd94123dd520a128bcd11e34d9e9e423e7e3e50425cb1b4b1e3549d0284"
 | 
					checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e"
 | 
				
			||||||
dependencies = [
 | 
					dependencies = [
 | 
				
			||||||
 "serde_derive",
 | 
					 "serde_derive",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "serde_derive"
 | 
					name = "serde_derive"
 | 
				
			||||||
version = "1.0.206"
 | 
					version = "1.0.216"
 | 
				
			||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
checksum = "fabfb6138d2383ea8208cf98ccf69cdfb1aff4088460681d84189aa259762f97"
 | 
					checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e"
 | 
				
			||||||
dependencies = [
 | 
					dependencies = [
 | 
				
			||||||
 "proc-macro2",
 | 
					 "proc-macro2",
 | 
				
			||||||
 "quote",
 | 
					 "quote",
 | 
				
			||||||
| 
						 | 
					@ -1922,12 +1925,6 @@ version = "0.3.2"
 | 
				
			||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
checksum = "3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a"
 | 
					checksum = "3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					 | 
				
			||||||
name = "stable_deref_trait"
 | 
					 | 
				
			||||||
version = "1.2.0"
 | 
					 | 
				
			||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					 | 
				
			||||||
checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "stdx"
 | 
					name = "stdx"
 | 
				
			||||||
version = "0.0.0"
 | 
					version = "0.0.0"
 | 
				
			||||||
| 
						 | 
					@ -1944,9 +1941,9 @@ dependencies = [
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "syn"
 | 
					name = "syn"
 | 
				
			||||||
version = "2.0.74"
 | 
					version = "2.0.87"
 | 
				
			||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
checksum = "1fceb41e3d546d0bd83421d3409b1460cc7444cd389341a4c880fe7a042cb3d7"
 | 
					checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d"
 | 
				
			||||||
dependencies = [
 | 
					dependencies = [
 | 
				
			||||||
 "proc-macro2",
 | 
					 "proc-macro2",
 | 
				
			||||||
 "quote",
 | 
					 "quote",
 | 
				
			||||||
| 
						 | 
					@ -2262,13 +2259,9 @@ dependencies = [
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "triomphe"
 | 
					name = "triomphe"
 | 
				
			||||||
version = "0.1.13"
 | 
					version = "0.1.14"
 | 
				
			||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
checksum = "e6631e42e10b40c0690bf92f404ebcfe6e1fdb480391d15f17cc8e96eeed5369"
 | 
					checksum = "ef8f7726da4807b58ea5c96fdc122f80702030edc33b35aff9190a51148ccc85"
 | 
				
			||||||
dependencies = [
 | 
					 | 
				
			||||||
 "serde",
 | 
					 | 
				
			||||||
 "stable_deref_trait",
 | 
					 | 
				
			||||||
]
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "tt"
 | 
					name = "tt"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -138,7 +138,8 @@ pulldown-cmark = { version = "0.9.0", default-features = false }
 | 
				
			||||||
rayon = "1.8.0"
 | 
					rayon = "1.8.0"
 | 
				
			||||||
rustc-hash = "2.0.0"
 | 
					rustc-hash = "2.0.0"
 | 
				
			||||||
semver = "1.0.14"
 | 
					semver = "1.0.14"
 | 
				
			||||||
serde = { version = "1.0.192", features = ["derive"] }
 | 
					serde = { version = "1.0.192" }
 | 
				
			||||||
 | 
					serde_derive = { version = "1.0.192" }
 | 
				
			||||||
serde_json = "1.0.108"
 | 
					serde_json = "1.0.108"
 | 
				
			||||||
smallvec = { version = "1.10.0", features = [
 | 
					smallvec = { version = "1.10.0", features = [
 | 
				
			||||||
  "const_new",
 | 
					  "const_new",
 | 
				
			||||||
| 
						 | 
					@ -157,7 +158,7 @@ tracing-subscriber = { version = "0.3.18", default-features = false, features =
 | 
				
			||||||
  "time",
 | 
					  "time",
 | 
				
			||||||
  "tracing-log",
 | 
					  "tracing-log",
 | 
				
			||||||
] }
 | 
					] }
 | 
				
			||||||
triomphe = { version = "0.1.10", default-features = false, features = ["std"] }
 | 
					triomphe = { version = "0.1.14", default-features = false, features = ["std"] }
 | 
				
			||||||
url = "2.3.1"
 | 
					url = "2.3.1"
 | 
				
			||||||
xshell = "0.2.5"
 | 
					xshell = "0.2.5"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -14,10 +14,9 @@ doctest = false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[dependencies]
 | 
					[dependencies]
 | 
				
			||||||
camino.workspace = true
 | 
					camino.workspace = true
 | 
				
			||||||
serde = { workspace = true, optional = true }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[features]
 | 
					[features]
 | 
				
			||||||
serde1 = ["camino/serde1", "dep:serde"]
 | 
					serde1 = ["camino/serde1"]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[lints]
 | 
					[lints]
 | 
				
			||||||
workspace = true
 | 
					workspace = true
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -14,6 +14,7 @@ doctest = false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[dependencies]
 | 
					[dependencies]
 | 
				
			||||||
serde.workspace = true
 | 
					serde.workspace = true
 | 
				
			||||||
 | 
					serde_derive.workspace = true
 | 
				
			||||||
serde_json = { workspace = true, features = ["unbounded_depth"] }
 | 
					serde_json = { workspace = true, features = ["unbounded_depth"] }
 | 
				
			||||||
tracing.workspace = true
 | 
					tracing.workspace = true
 | 
				
			||||||
rustc-hash.workspace = true
 | 
					rustc-hash.workspace = true
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,7 +4,8 @@ pub(crate) mod flat;
 | 
				
			||||||
use std::io::{self, BufRead, Write};
 | 
					use std::io::{self, BufRead, Write};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use paths::Utf8PathBuf;
 | 
					use paths::Utf8PathBuf;
 | 
				
			||||||
use serde::{de::DeserializeOwned, Deserialize, Serialize};
 | 
					use serde::de::DeserializeOwned;
 | 
				
			||||||
 | 
					use serde_derive::{Deserialize, Serialize};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use crate::ProcMacroKind;
 | 
					use crate::ProcMacroKind;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -123,7 +124,7 @@ impl ExpnGlobals {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pub trait Message: Serialize + DeserializeOwned {
 | 
					pub trait Message: serde::Serialize + DeserializeOwned {
 | 
				
			||||||
    fn read<R: BufRead>(
 | 
					    fn read<R: BufRead>(
 | 
				
			||||||
        from_proto: ProtocolRead<R>,
 | 
					        from_proto: ProtocolRead<R>,
 | 
				
			||||||
        inp: &mut R,
 | 
					        inp: &mut R,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -39,7 +39,7 @@ use std::collections::VecDeque;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use intern::Symbol;
 | 
					use intern::Symbol;
 | 
				
			||||||
use rustc_hash::FxHashMap;
 | 
					use rustc_hash::FxHashMap;
 | 
				
			||||||
use serde::{Deserialize, Serialize};
 | 
					use serde_derive::{Deserialize, Serialize};
 | 
				
			||||||
use span::{EditionedFileId, ErasedFileAstId, Span, SpanAnchor, SyntaxContextId, TextRange};
 | 
					use span::{EditionedFileId, ErasedFileAstId, Span, SpanAnchor, SyntaxContextId, TextRange};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use crate::msg::EXTENDED_LEAF_DATA;
 | 
					use crate::msg::EXTENDED_LEAF_DATA;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -19,6 +19,7 @@ rustc-hash.workspace = true
 | 
				
			||||||
semver.workspace = true
 | 
					semver.workspace = true
 | 
				
			||||||
serde_json.workspace = true
 | 
					serde_json.workspace = true
 | 
				
			||||||
serde.workspace = true
 | 
					serde.workspace = true
 | 
				
			||||||
 | 
					serde_derive.workspace = true
 | 
				
			||||||
tracing.workspace = true
 | 
					tracing.workspace = true
 | 
				
			||||||
triomphe.workspace = true
 | 
					triomphe.workspace = true
 | 
				
			||||||
la-arena.workspace = true
 | 
					la-arena.workspace = true
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15,7 +15,7 @@ use itertools::Itertools;
 | 
				
			||||||
use la_arena::ArenaMap;
 | 
					use la_arena::ArenaMap;
 | 
				
			||||||
use paths::{AbsPath, AbsPathBuf, Utf8PathBuf};
 | 
					use paths::{AbsPath, AbsPathBuf, Utf8PathBuf};
 | 
				
			||||||
use rustc_hash::{FxHashMap, FxHashSet};
 | 
					use rustc_hash::{FxHashMap, FxHashSet};
 | 
				
			||||||
use serde::Deserialize;
 | 
					use serde::Deserialize as _;
 | 
				
			||||||
use toolchain::Tool;
 | 
					use toolchain::Tool;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use crate::{
 | 
					use crate::{
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8,7 +8,7 @@ use cargo_metadata::{CargoOpt, MetadataCommand};
 | 
				
			||||||
use la_arena::{Arena, Idx};
 | 
					use la_arena::{Arena, Idx};
 | 
				
			||||||
use paths::{AbsPath, AbsPathBuf, Utf8PathBuf};
 | 
					use paths::{AbsPath, AbsPathBuf, Utf8PathBuf};
 | 
				
			||||||
use rustc_hash::{FxHashMap, FxHashSet};
 | 
					use rustc_hash::{FxHashMap, FxHashSet};
 | 
				
			||||||
use serde::Deserialize;
 | 
					use serde_derive::Deserialize;
 | 
				
			||||||
use serde_json::from_value;
 | 
					use serde_json::from_value;
 | 
				
			||||||
use span::Edition;
 | 
					use span::Edition;
 | 
				
			||||||
use toolchain::Tool;
 | 
					use toolchain::Tool;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -20,7 +20,7 @@ parking_lot = "0.12.1"
 | 
				
			||||||
rustc-hash = "2.0.0"
 | 
					rustc-hash = "2.0.0"
 | 
				
			||||||
smallvec = "1.0.0"
 | 
					smallvec = "1.0.0"
 | 
				
			||||||
oorandom = "11"
 | 
					oorandom = "11"
 | 
				
			||||||
triomphe = "0.1.11"
 | 
					triomphe.workspace = true
 | 
				
			||||||
itertools.workspace = true
 | 
					itertools.workspace = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ra-salsa-macros = { version = "0.0.0", path = "ra-salsa-macros", package = "salsa-macros" }
 | 
					ra-salsa-macros = { version = "0.0.0", path = "ra-salsa-macros", package = "salsa-macros" }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -36,6 +36,7 @@ rayon.workspace = true
 | 
				
			||||||
rustc-hash.workspace = true
 | 
					rustc-hash.workspace = true
 | 
				
			||||||
serde_json = { workspace = true, features = ["preserve_order"] }
 | 
					serde_json = { workspace = true, features = ["preserve_order"] }
 | 
				
			||||||
serde.workspace = true
 | 
					serde.workspace = true
 | 
				
			||||||
 | 
					serde_derive.workspace = true
 | 
				
			||||||
tenthash = "0.4.0"
 | 
					tenthash = "0.4.0"
 | 
				
			||||||
num_cpus = "1.15.0"
 | 
					num_cpus = "1.15.0"
 | 
				
			||||||
mimalloc = { version = "0.1.30", default-features = false, optional = true }
 | 
					mimalloc = { version = "0.1.30", default-features = false, optional = true }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,7 +6,8 @@ use std::{fmt, io, process::Command, time::Duration};
 | 
				
			||||||
use crossbeam_channel::{select_biased, unbounded, Receiver, Sender};
 | 
					use crossbeam_channel::{select_biased, unbounded, Receiver, Sender};
 | 
				
			||||||
use paths::{AbsPath, AbsPathBuf, Utf8PathBuf};
 | 
					use paths::{AbsPath, AbsPathBuf, Utf8PathBuf};
 | 
				
			||||||
use rustc_hash::FxHashMap;
 | 
					use rustc_hash::FxHashMap;
 | 
				
			||||||
use serde::Deserialize;
 | 
					use serde::Deserialize as _;
 | 
				
			||||||
 | 
					use serde_derive::Deserialize;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pub(crate) use cargo_metadata::diagnostic::{
 | 
					pub(crate) use cargo_metadata::diagnostic::{
 | 
				
			||||||
    Applicability, Diagnostic, DiagnosticCode, DiagnosticLevel, DiagnosticSpan,
 | 
					    Applicability, Diagnostic, DiagnosticCode, DiagnosticLevel, DiagnosticSpan,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,7 +5,8 @@ use std::process::Command;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use crossbeam_channel::Sender;
 | 
					use crossbeam_channel::Sender;
 | 
				
			||||||
use paths::AbsPath;
 | 
					use paths::AbsPath;
 | 
				
			||||||
use serde::Deserialize;
 | 
					use serde::Deserialize as _;
 | 
				
			||||||
 | 
					use serde_derive::Deserialize;
 | 
				
			||||||
use toolchain::Tool;
 | 
					use toolchain::Tool;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use crate::{
 | 
					use crate::{
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -54,7 +54,7 @@ where
 | 
				
			||||||
    fn on_event(&self, _event: &Event<'_>, _ctx: Context<'_, S>) {}
 | 
					    fn on_event(&self, _event: &Event<'_>, _ctx: Context<'_, S>) {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fn on_close(&self, id: Id, ctx: Context<'_, S>) {
 | 
					    fn on_close(&self, id: Id, ctx: Context<'_, S>) {
 | 
				
			||||||
        #[derive(serde::Serialize)]
 | 
					        #[derive(serde_derive::Serialize)]
 | 
				
			||||||
        struct JsonDataInner {
 | 
					        struct JsonDataInner {
 | 
				
			||||||
            name: &'static str,
 | 
					            name: &'static str,
 | 
				
			||||||
            elapsed_ms: u128,
 | 
					            elapsed_ms: u128,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -262,8 +262,9 @@ pub struct MacroFileId {
 | 
				
			||||||
/// `MacroCallId` identifies a particular macro invocation, like
 | 
					/// `MacroCallId` identifies a particular macro invocation, like
 | 
				
			||||||
/// `println!("Hello, {}", world)`.
 | 
					/// `println!("Hello, {}", world)`.
 | 
				
			||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
 | 
					#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
 | 
				
			||||||
pub struct MacroCallId(ra_salsa::InternId);
 | 
					pub struct MacroCallId(InternId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#[cfg(feature = "ra-salsa")]
 | 
				
			||||||
impl ra_salsa::InternKey for MacroCallId {
 | 
					impl ra_salsa::InternKey for MacroCallId {
 | 
				
			||||||
    fn from_intern_id(v: ra_salsa::InternId) -> Self {
 | 
					    fn from_intern_id(v: ra_salsa::InternId) -> Self {
 | 
				
			||||||
        MacroCallId(v)
 | 
					        MacroCallId(v)
 | 
				
			||||||
| 
						 | 
					@ -362,6 +363,7 @@ mod intern_id_proxy {
 | 
				
			||||||
    use std::fmt;
 | 
					    use std::fmt;
 | 
				
			||||||
    use std::num::NonZeroU32;
 | 
					    use std::num::NonZeroU32;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
 | 
				
			||||||
    pub(super) struct InternId {
 | 
					    pub(super) struct InternId {
 | 
				
			||||||
        value: NonZeroU32,
 | 
					        value: NonZeroU32,
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
[package]
 | 
					[package]
 | 
				
			||||||
name = "lsp-server"
 | 
					name = "lsp-server"
 | 
				
			||||||
version = "0.7.7"
 | 
					version = "0.7.8"
 | 
				
			||||||
description = "Generic LSP server scaffold."
 | 
					description = "Generic LSP server scaffold."
 | 
				
			||||||
license = "MIT OR Apache-2.0"
 | 
					license = "MIT OR Apache-2.0"
 | 
				
			||||||
repository = "https://github.com/rust-lang/rust-analyzer/tree/master/lib/lsp-server"
 | 
					repository = "https://github.com/rust-lang/rust-analyzer/tree/master/lib/lsp-server"
 | 
				
			||||||
| 
						 | 
					@ -9,7 +9,8 @@ edition = "2021"
 | 
				
			||||||
[dependencies]
 | 
					[dependencies]
 | 
				
			||||||
log = "0.4.17"
 | 
					log = "0.4.17"
 | 
				
			||||||
serde_json = "1.0.108"
 | 
					serde_json = "1.0.108"
 | 
				
			||||||
serde = { version = "1.0.192", features = ["derive"] }
 | 
					serde = { version = "1.0.216" }
 | 
				
			||||||
 | 
					serde_derive = { version = "1.0.216" }
 | 
				
			||||||
crossbeam-channel.workspace = true
 | 
					crossbeam-channel.workspace = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[dev-dependencies]
 | 
					[dev-dependencies]
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,7 +3,8 @@ use std::{
 | 
				
			||||||
    io::{self, BufRead, Write},
 | 
					    io::{self, BufRead, Write},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use serde::{de::DeserializeOwned, Deserialize, Serialize};
 | 
					use serde::de::DeserializeOwned;
 | 
				
			||||||
 | 
					use serde_derive::{Deserialize, Serialize};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use crate::error::ExtractError;
 | 
					use crate::error::ExtractError;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -196,7 +197,7 @@ impl Message {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
impl Response {
 | 
					impl Response {
 | 
				
			||||||
    pub fn new_ok<R: Serialize>(id: RequestId, result: R) -> Response {
 | 
					    pub fn new_ok<R: serde::Serialize>(id: RequestId, result: R) -> Response {
 | 
				
			||||||
        Response { id, result: Some(serde_json::to_value(result).unwrap()), error: None }
 | 
					        Response { id, result: Some(serde_json::to_value(result).unwrap()), error: None }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    pub fn new_err(id: RequestId, code: i32, message: String) -> Response {
 | 
					    pub fn new_err(id: RequestId, code: i32, message: String) -> Response {
 | 
				
			||||||
| 
						 | 
					@ -206,7 +207,7 @@ impl Response {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
impl Request {
 | 
					impl Request {
 | 
				
			||||||
    pub fn new<P: Serialize>(id: RequestId, method: String, params: P) -> Request {
 | 
					    pub fn new<P: serde::Serialize>(id: RequestId, method: String, params: P) -> Request {
 | 
				
			||||||
        Request { id, method, params: serde_json::to_value(params).unwrap() }
 | 
					        Request { id, method, params: serde_json::to_value(params).unwrap() }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    pub fn extract<P: DeserializeOwned>(
 | 
					    pub fn extract<P: DeserializeOwned>(
 | 
				
			||||||
| 
						 | 
					@ -231,7 +232,7 @@ impl Request {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
impl Notification {
 | 
					impl Notification {
 | 
				
			||||||
    pub fn new(method: String, params: impl Serialize) -> Notification {
 | 
					    pub fn new(method: String, params: impl serde::Serialize) -> Notification {
 | 
				
			||||||
        Notification { method, params: serde_json::to_value(params).unwrap() }
 | 
					        Notification { method, params: serde_json::to_value(params).unwrap() }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    pub fn extract<P: DeserializeOwned>(
 | 
					    pub fn extract<P: DeserializeOwned>(
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,5 @@
 | 
				
			||||||
use std::collections::HashMap;
 | 
					use std::collections::HashMap;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use serde::Serialize;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
use crate::{ErrorCode, Request, RequestId, Response, ResponseError};
 | 
					use crate::{ErrorCode, Request, RequestId, Response, ResponseError};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/// Manages the set of pending requests, both incoming and outgoing.
 | 
					/// Manages the set of pending requests, both incoming and outgoing.
 | 
				
			||||||
| 
						 | 
					@ -56,7 +54,7 @@ impl<I> Incoming<I> {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
impl<O> Outgoing<O> {
 | 
					impl<O> Outgoing<O> {
 | 
				
			||||||
    pub fn register<P: Serialize>(&mut self, method: String, params: P, data: O) -> Request {
 | 
					    pub fn register<P: serde::Serialize>(&mut self, method: String, params: P, data: O) -> Request {
 | 
				
			||||||
        let id = RequestId::from(self.next_id);
 | 
					        let id = RequestId::from(self.next_id);
 | 
				
			||||||
        self.pending.insert(id.clone(), data);
 | 
					        self.pending.insert(id.clone(), data);
 | 
				
			||||||
        self.next_id += 1;
 | 
					        self.next_id += 1;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -16,7 +16,8 @@ xflags = "0.3.0"
 | 
				
			||||||
time = { version = "0.3", default-features = false }
 | 
					time = { version = "0.3", default-features = false }
 | 
				
			||||||
zip = { version = "0.6", default-features = false, features = ["deflate", "time"] }
 | 
					zip = { version = "0.6", default-features = false, features = ["deflate", "time"] }
 | 
				
			||||||
stdx.workspace = true
 | 
					stdx.workspace = true
 | 
				
			||||||
proc-macro2 = "1.0.47"
 | 
					# https://github.com/dtolnay/proc-macro2/issues/475
 | 
				
			||||||
 | 
					proc-macro2 = "=1.0.86"
 | 
				
			||||||
quote = "1.0.20"
 | 
					quote = "1.0.20"
 | 
				
			||||||
ungrammar = "1.16.1"
 | 
					ungrammar = "1.16.1"
 | 
				
			||||||
either.workspace = true
 | 
					either.workspace = true
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue