Skip to content

Commit 298ff04

Browse files
committed
Auto merge of rust-lang#17246 - davidbarsky:david/move-rust-project-generation-to-server, r=Veykril
feature: teach rust-analyzer to discover `linked_projects` This PR's been a long-time coming, but like the title says, it introduces server-side project discovery and removes the extension hooks I previously introduced. I don't think this PR is ready to land, but here are the things I'm feeling squishy about: - I don't think I like the idea of introducing the `cargo-metadata` command-but-for-everything-else in the `flycheck` module, but the progress reporting infrastructure was too convenient to pass up. Happy to move it elsewhere. Here are the things I _know_ I need to change: - For progress reporting, I'm extracting from a `serde_json::Value` that corresponds to `tracing_subsciber::fmt::Layer`'s JSON output. I'd like to make this a bit more structured/documented than the current nonsense I wrote. - The progress reporting currently hardcodes "Buck"; it should be deriving that from the previously mentioned more-structured-output. - This doesn't handle *reloading* when a corresponding buildfile is changed. It should be doing that. <details> <summary>Anyway, here's a video of rust-analyzer discovering a Buck target.</summary> https://github.com/rust-lang/rust-analyzer/assets/2067774/be6cd9b9-2c9a-402d-847f-05f860a91df1 </details>
2 parents eff1272 + 427132e commit 298ff04

File tree

22 files changed

+877
-169
lines changed

22 files changed

+877
-169
lines changed

src/tools/rust-analyzer/Cargo.lock

+64-63
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ version = 3
44

55
[[package]]
66
name = "addr2line"
7-
version = "0.21.0"
7+
version = "0.22.0"
88
source = "registry+https://github.com/rust-lang/crates.io-index"
9-
checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
9+
checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678"
1010
dependencies = [
1111
"gimli",
1212
]
@@ -28,9 +28,9 @@ dependencies = [
2828

2929
[[package]]
3030
name = "anyhow"
31-
version = "1.0.83"
31+
version = "1.0.86"
3232
source = "registry+https://github.com/rust-lang/crates.io-index"
33-
checksum = "25bdb32cbbdce2b519a9cd7df3a678443100e265d5e25ca763b7572a5104f5f3"
33+
checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
3434

3535
[[package]]
3636
name = "arbitrary"
@@ -52,16 +52,16 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
5252

5353
[[package]]
5454
name = "backtrace"
55-
version = "0.3.71"
55+
version = "0.3.72"
5656
source = "registry+https://github.com/rust-lang/crates.io-index"
57-
checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d"
57+
checksum = "17c6a35df3749d2e8bb1b7b21a976d82b15548788d2735b9d82f329268f71a11"
5858
dependencies = [
5959
"addr2line",
6060
"cc",
6161
"cfg-if",
6262
"libc",
6363
"miniz_oxide",
64-
"object 0.32.2",
64+
"object 0.35.0",
6565
"rustc-demangle",
6666
]
6767

@@ -104,9 +104,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
104104

105105
[[package]]
106106
name = "camino"
107-
version = "1.1.6"
107+
version = "1.1.7"
108108
source = "registry+https://github.com/rust-lang/crates.io-index"
109-
checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c"
109+
checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239"
110110
dependencies = [
111111
"serde",
112112
]
@@ -136,9 +136,9 @@ dependencies = [
136136

137137
[[package]]
138138
name = "cc"
139-
version = "1.0.97"
139+
version = "1.0.98"
140140
source = "registry+https://github.com/rust-lang/crates.io-index"
141-
checksum = "099a5357d84c4c61eb35fc8eafa9a79a902c2f76911e5747ced4e032edd8d9b4"
141+
checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f"
142142

143143
[[package]]
144144
name = "cfg"
@@ -232,18 +232,18 @@ checksum = "0d48d8f76bd9331f19fe2aaf3821a9f9fb32c3963e1e3d6ce82a8c09cef7444a"
232232

233233
[[package]]
234234
name = "crc32fast"
235-
version = "1.4.0"
235+
version = "1.4.2"
236236
source = "registry+https://github.com/rust-lang/crates.io-index"
237-
checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
237+
checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
238238
dependencies = [
239239
"cfg-if",
240240
]
241241

242242
[[package]]
243243
name = "crossbeam-channel"
244-
version = "0.5.12"
244+
version = "0.5.13"
245245
source = "registry+https://github.com/rust-lang/crates.io-index"
246-
checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95"
246+
checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2"
247247
dependencies = [
248248
"crossbeam-utils",
249249
]
@@ -269,9 +269,9 @@ dependencies = [
269269

270270
[[package]]
271271
name = "crossbeam-utils"
272-
version = "0.8.19"
272+
version = "0.8.20"
273273
source = "registry+https://github.com/rust-lang/crates.io-index"
274-
checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
274+
checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
275275

276276
[[package]]
277277
name = "ctrlc"
@@ -366,9 +366,9 @@ checksum = "9bda8e21c04aca2ae33ffc2fd8c23134f3cac46db123ba97bd9d3f3b8a4a85e1"
366366

367367
[[package]]
368368
name = "either"
369-
version = "1.11.0"
369+
version = "1.12.0"
370370
source = "registry+https://github.com/rust-lang/crates.io-index"
371-
checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2"
371+
checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b"
372372

373373
[[package]]
374374
name = "ena"
@@ -431,6 +431,7 @@ dependencies = [
431431
"crossbeam-channel",
432432
"paths",
433433
"process-wrap",
434+
"project-model",
434435
"rustc-hash",
435436
"serde",
436437
"serde_json",
@@ -476,9 +477,9 @@ dependencies = [
476477

477478
[[package]]
478479
name = "gimli"
479-
version = "0.28.1"
480+
version = "0.29.0"
480481
source = "registry+https://github.com/rust-lang/crates.io-index"
481-
checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
482+
checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd"
482483

483484
[[package]]
484485
name = "hashbrown"
@@ -916,9 +917,9 @@ dependencies = [
916917

917918
[[package]]
918919
name = "libmimalloc-sys"
919-
version = "0.1.37"
920+
version = "0.1.38"
920921
source = "registry+https://github.com/rust-lang/crates.io-index"
921-
checksum = "81eb4061c0582dedea1cbc7aff2240300dd6982e0239d1c99e65c1dbf4a30ba7"
922+
checksum = "0e7bb23d733dfcc8af652a78b7bf232f0e967710d044732185e561e47c0336b6"
922923
dependencies = [
923924
"cc",
924925
"libc",
@@ -1086,18 +1087,18 @@ dependencies = [
10861087

10871088
[[package]]
10881089
name = "mimalloc"
1089-
version = "0.1.41"
1090+
version = "0.1.42"
10901091
source = "registry+https://github.com/rust-lang/crates.io-index"
1091-
checksum = "9f41a2280ded0da56c8cf898babb86e8f10651a34adcfff190ae9a1159c6908d"
1092+
checksum = "e9186d86b79b52f4a77af65604b51225e8db1d6ee7e3f41aec1e40829c71a176"
10921093
dependencies = [
10931094
"libmimalloc-sys",
10941095
]
10951096

10961097
[[package]]
10971098
name = "miniz_oxide"
1098-
version = "0.7.2"
1099+
version = "0.7.3"
10991100
source = "registry+https://github.com/rust-lang/crates.io-index"
1100-
checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
1101+
checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae"
11011102
dependencies = [
11021103
"adler",
11031104
]
@@ -1162,9 +1163,9 @@ dependencies = [
11621163

11631164
[[package]]
11641165
name = "nu-ansi-term"
1165-
version = "0.49.0"
1166+
version = "0.50.0"
11661167
source = "registry+https://github.com/rust-lang/crates.io-index"
1167-
checksum = "c073d3c1930d0751774acf49e66653acecb416c3a54c6ec095a9b11caddb5a68"
1168+
checksum = "dd2800e1520bdc966782168a627aa5d1ad92e33b984bf7c7615d31280c83ff14"
11681169
dependencies = [
11691170
"windows-sys 0.48.0",
11701171
]
@@ -1187,18 +1188,18 @@ dependencies = [
11871188

11881189
[[package]]
11891190
name = "object"
1190-
version = "0.32.2"
1191+
version = "0.33.0"
11911192
source = "registry+https://github.com/rust-lang/crates.io-index"
1192-
checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
1193+
checksum = "d8dd6c0cdf9429bce006e1362bfce61fa1bfd8c898a643ed8d2b471934701d3d"
11931194
dependencies = [
11941195
"memchr",
11951196
]
11961197

11971198
[[package]]
11981199
name = "object"
1199-
version = "0.33.0"
1200+
version = "0.35.0"
12001201
source = "registry+https://github.com/rust-lang/crates.io-index"
1201-
checksum = "d8dd6c0cdf9429bce006e1362bfce61fa1bfd8c898a643ed8d2b471934701d3d"
1202+
checksum = "b8ec7ab813848ba4522158d5517a6093db1ded27575b070f4177b8d12b41db5e"
12021203
dependencies = [
12031204
"memchr",
12041205
]
@@ -1223,9 +1224,9 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
12231224

12241225
[[package]]
12251226
name = "parking_lot"
1226-
version = "0.12.2"
1227+
version = "0.12.3"
12271228
source = "registry+https://github.com/rust-lang/crates.io-index"
1228-
checksum = "7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb"
1229+
checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
12291230
dependencies = [
12301231
"lock_api",
12311232
"parking_lot_core",
@@ -1379,9 +1380,9 @@ dependencies = [
13791380

13801381
[[package]]
13811382
name = "proc-macro2"
1382-
version = "1.0.82"
1383+
version = "1.0.85"
13831384
source = "registry+https://github.com/rust-lang/crates.io-index"
1384-
checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b"
1385+
checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23"
13851386
dependencies = [
13861387
"unicode-ident",
13871388
]
@@ -1800,18 +1801,18 @@ dependencies = [
18001801

18011802
[[package]]
18021803
name = "serde"
1803-
version = "1.0.201"
1804+
version = "1.0.203"
18041805
source = "registry+https://github.com/rust-lang/crates.io-index"
1805-
checksum = "780f1cebed1629e4753a1a38a3c72d30b97ec044f0aef68cb26650a3c5cf363c"
1806+
checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094"
18061807
dependencies = [
18071808
"serde_derive",
18081809
]
18091810

18101811
[[package]]
18111812
name = "serde_derive"
1812-
version = "1.0.201"
1813+
version = "1.0.203"
18131814
source = "registry+https://github.com/rust-lang/crates.io-index"
1814-
checksum = "c5e405930b9796f1c00bee880d03fc7e0bb4b9a11afc776885ffe84320da2865"
1815+
checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba"
18151816
dependencies = [
18161817
"proc-macro2",
18171818
"quote",
@@ -1843,9 +1844,9 @@ dependencies = [
18431844

18441845
[[package]]
18451846
name = "serde_spanned"
1846-
version = "0.6.5"
1847+
version = "0.6.6"
18471848
source = "registry+https://github.com/rust-lang/crates.io-index"
1848-
checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
1849+
checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0"
18491850
dependencies = [
18501851
"serde",
18511852
]
@@ -1867,9 +1868,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
18671868

18681869
[[package]]
18691870
name = "smol_str"
1870-
version = "0.2.1"
1871+
version = "0.2.2"
18711872
source = "registry+https://github.com/rust-lang/crates.io-index"
1872-
checksum = "e6845563ada680337a52d43bb0b29f396f2d911616f6573012645b9e3d048a49"
1873+
checksum = "dd538fb6910ac1099850255cf94a94df6551fbdd602454387d0adb2d1ca6dead"
18731874
dependencies = [
18741875
"serde",
18751876
]
@@ -1922,9 +1923,9 @@ dependencies = [
19221923

19231924
[[package]]
19241925
name = "syn"
1925-
version = "2.0.63"
1926+
version = "2.0.66"
19261927
source = "registry+https://github.com/rust-lang/crates.io-index"
1927-
checksum = "bf5be731623ca1a1fb7d8be6f261a3be6d3e2337b8a1f97be944d020c8fcb704"
1928+
checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5"
19281929
dependencies = [
19291930
"proc-macro2",
19301931
"quote",
@@ -2009,18 +2010,18 @@ checksum = "f18aa187839b2bdb1ad2fa35ead8c4c2976b64e4363c386d45ac0f7ee85c9233"
20092010

20102011
[[package]]
20112012
name = "thiserror"
2012-
version = "1.0.60"
2013+
version = "1.0.61"
20132014
source = "registry+https://github.com/rust-lang/crates.io-index"
2014-
checksum = "579e9083ca58dd9dcf91a9923bb9054071b9ebbd800b342194c9feb0ee89fc18"
2015+
checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
20152016
dependencies = [
20162017
"thiserror-impl",
20172018
]
20182019

20192020
[[package]]
20202021
name = "thiserror-impl"
2021-
version = "1.0.60"
2022+
version = "1.0.61"
20222023
source = "registry+https://github.com/rust-lang/crates.io-index"
2023-
checksum = "e2470041c06ec3ac1ab38d0356a6119054dedaea53e12fbefc0de730a1c08524"
2024+
checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
20242025
dependencies = [
20252026
"proc-macro2",
20262027
"quote",
@@ -2104,9 +2105,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
21042105

21052106
[[package]]
21062107
name = "toml"
2107-
version = "0.8.12"
2108+
version = "0.8.14"
21082109
source = "registry+https://github.com/rust-lang/crates.io-index"
2109-
checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3"
2110+
checksum = "6f49eb2ab21d2f26bd6db7bf383edc527a7ebaee412d17af4d40fdccd442f335"
21102111
dependencies = [
21112112
"serde",
21122113
"serde_spanned",
@@ -2116,18 +2117,18 @@ dependencies = [
21162117

21172118
[[package]]
21182119
name = "toml_datetime"
2119-
version = "0.6.5"
2120+
version = "0.6.6"
21202121
source = "registry+https://github.com/rust-lang/crates.io-index"
2121-
checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
2122+
checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf"
21222123
dependencies = [
21232124
"serde",
21242125
]
21252126

21262127
[[package]]
21272128
name = "toml_edit"
2128-
version = "0.22.12"
2129+
version = "0.22.14"
21292130
source = "registry+https://github.com/rust-lang/crates.io-index"
2130-
checksum = "d3328d4f68a705b2a4498da1d580585d39a6510f98318a2cec3018a7ec61ddef"
2131+
checksum = "f21c7aaf97f1bd9ca9d4f9e73b0a6c74bd5afef56f2bc931943a6e1c37e04e38"
21312132
dependencies = [
21322133
"indexmap",
21332134
"serde",
@@ -2201,9 +2202,9 @@ dependencies = [
22012202

22022203
[[package]]
22032204
name = "tracing-tree"
2204-
version = "0.3.0"
2205+
version = "0.3.1"
22052206
source = "registry+https://github.com/rust-lang/crates.io-index"
2206-
checksum = "65139ecd2c3f6484c3b99bc01c77afe21e95473630747c7aca525e78b0666675"
2207+
checksum = "b56c62d2c80033cb36fae448730a2f2ef99410fe3ecbffc916681a32f6807dbe"
22072208
dependencies = [
22082209
"nu-ansi-term",
22092210
"tracing-core",
@@ -2213,9 +2214,9 @@ dependencies = [
22132214

22142215
[[package]]
22152216
name = "triomphe"
2216-
version = "0.1.11"
2217+
version = "0.1.12"
22172218
source = "registry+https://github.com/rust-lang/crates.io-index"
2218-
checksum = "859eb650cfee7434994602c3a68b25d77ad9e68c8a6cd491616ef86661382eb3"
2219+
checksum = "1b2cb4fbb9995eeb36ac86fadf24031ccd58f99d6b4b2d7b911db70bddb80d90"
22192220
dependencies = [
22202221
"serde",
22212222
"stable_deref_trait",
@@ -2555,9 +2556,9 @@ checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
25552556

25562557
[[package]]
25572558
name = "winnow"
2558-
version = "0.6.8"
2559+
version = "0.6.11"
25592560
source = "registry+https://github.com/rust-lang/crates.io-index"
2560-
checksum = "c3c52e9c97a68071b23e836c9380edae937f17b9c4667bd021973efc689f618d"
2561+
checksum = "56c52728401e1dc672a56e81e593e912aa54c78f40246869f78359a2bf24d29d"
25612562
dependencies = [
25622563
"memchr",
25632564
]

src/tools/rust-analyzer/crates/flycheck/Cargo.toml

+1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ process-wrap.workspace = true
2424
paths.workspace = true
2525
stdx.workspace = true
2626
toolchain.workspace = true
27+
project-model.workspace = true
2728

2829
[lints]
2930
workspace = true

0 commit comments

Comments
 (0)