Unnamed repository; edit this file 'description' to name the repository.
hmmm2
| -rw-r--r-- | Cargo.lock | 807 | ||||
| -rw-r--r-- | crates/base-db/src/lib.rs | 22 | ||||
| -rw-r--r-- | crates/ide/src/file_structure.rs | 18 | ||||
| -rw-r--r-- | crates/ide/src/lib.rs | 1 | ||||
| -rw-r--r-- | crates/ide/src/typing.rs | 25 | ||||
| -rw-r--r-- | crates/rust-analyzer/Cargo.toml | 13 | ||||
| -rw-r--r-- | crates/rust-analyzer/src/bin/mod.rs (renamed from crates/rust-analyzer/src/bin/main.rs) | 77 | ||||
| -rw-r--r-- | crates/rust-analyzer/src/diagnostics/flycheck_to_proto.rs | 3 | ||||
| -rw-r--r-- | crates/rust-analyzer/src/handlers/dispatch.rs | 3 | ||||
| -rw-r--r-- | crates/rust-analyzer/src/handlers/request.rs | 12 | ||||
| -rw-r--r-- | crates/rust-analyzer/src/lib.rs | 2 | ||||
| -rw-r--r-- | crates/rust-analyzer/src/lsp/ext.rs | 15 | ||||
| -rw-r--r-- | crates/rust-analyzer/src/lsp/to_proto.rs | 28 | ||||
| -rw-r--r-- | crates/rust-analyzer/src/main_loop.rs | 6 | ||||
| -rw-r--r-- | lib/lsp-server/Cargo.toml | 6 | ||||
| -rw-r--r-- | lib/lsp-server/src/error.rs | 8 | ||||
| -rw-r--r-- | lib/lsp-server/src/lib.rs | 12 | ||||
| -rw-r--r-- | lib/lsp-server/src/msg.rs | 25 | ||||
| -rw-r--r-- | lib/lsp-server/src/socket.rs | 5 | ||||
| -rw-r--r-- | lib/lsp-server/src/stdio.rs | 46 | ||||
| -rw-r--r-- | lib/smol_str/src/lib.rs | 4 |
21 files changed, 1000 insertions, 138 deletions
diff --git a/Cargo.lock b/Cargo.lock index 75e531e5bf..67cfcbdcaa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -83,7 +83,13 @@ dependencies = [ "miniz_oxide", "object", "rustc-demangle", +<<<<<<< HEAD "windows-link", +||||||| parent of 527dfbec94 (hmmm2) + "windows-targets 0.52.6", +======= + "windows-link 0.2.1", +>>>>>>> 527dfbec94 (hmmm2) ] [[package]] @@ -131,8 +137,19 @@ checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" [[package]] name = "bitflags" version = "2.12.1" +||||||| parent of 527dfbec94 (hmmm2) +version = "2.9.4" +======= +version = "2.11.0" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "84d7ced0ae9557296835c32bf1b1e02b44c746701f898460fb000d7eaa84f00a" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" +======= +checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" +>>>>>>> 527dfbec94 (hmmm2) [[package]] name = "block2" @@ -145,9 +162,21 @@ dependencies = [ [[package]] name = "borsh" +<<<<<<< HEAD version = "1.6.1" +||||||| parent of 527dfbec94 (hmmm2) +version = "1.5.7" +======= +version = "1.6.0" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "cfd1e3f8955a5d7de9fab72fc8373fade9fb8a703968cb200ae3dc6cf08e185a" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "ad8646f98db542e39fc66e68a20b2144f6a732636df7c2354e74645faaa433ce" +======= +checksum = "d1da5ab77c1437701eeff7c88d968729e7766172279eab0676857b3d63af7a6f" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "bytes", "cfg_aliases", @@ -161,8 +190,15 @@ checksum = "36f64beae40a84da1b4b26ff2761a5b895c12adc41dc25aaee1c4f2bbfe97a6e" [[package]] name = "bumpalo" +<<<<<<< HEAD version = "3.20.3" +||||||| parent of 527dfbec94 (hmmm2) +version = "3.19.0" +======= +version = "3.20.2" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" [[package]] @@ -182,9 +218,21 @@ dependencies = [ [[package]] name = "cargo-platform" +<<<<<<< HEAD version = "0.3.3" +||||||| parent of 527dfbec94 (hmmm2) +version = "0.3.1" +======= +version = "0.3.2" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "dd0061da739915fae12ea00e16397555ed4371a6bb285431aab930f61b0aa4ba" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "122ec45a44b270afd1402f351b782c676b173e3c3fb28d86ff7ebfb4d86a4ee4" +======= +checksum = "87a0c0e6148f11f01f32650a2ea02d532b2ad4e81d8bd41e6e565b5adc5e6082" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "serde", "serde_core", @@ -212,9 +260,21 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" +<<<<<<< HEAD version = "1.2.63" +||||||| parent of 527dfbec94 (hmmm2) +version = "1.2.38" +======= +version = "1.2.56" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "556e016178bb5662a08681bbe0f00f8e17631781a4dfc8c45e466e4b185ec27f" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "80f41ae168f955c12fb8960b057d70d0ca153fb83182b57d86380443527be7e9" +======= +checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "find-msvc-tools", "shlex", @@ -277,18 +337,42 @@ dependencies = [ [[package]] name = "clap" +<<<<<<< HEAD version = "4.6.1" +||||||| parent of 527dfbec94 (hmmm2) +version = "4.5.48" +======= +version = "4.5.60" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "e2134bb3ea021b78629caa971416385309e0131b351b25e01dc16fb54e1b5fae" +======= +checksum = "2797f34da339ce31042b27d23607e051786132987f595b02ba4f6a6dffb7030a" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" +<<<<<<< HEAD version = "4.6.0" +||||||| parent of 527dfbec94 (hmmm2) +version = "4.5.48" +======= +version = "4.5.60" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "c2ba64afa3c0a6df7fa517765e31314e983f51dda798ffba27b988194fb65dc9" +======= +checksum = "24a241312cea5059b13574bb9b3861cabf758b879c15190b37b6d6fd63ab6876" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "anstyle", "clap_lex", @@ -296,9 +380,21 @@ dependencies = [ [[package]] name = "clap_lex" +<<<<<<< HEAD version = "1.1.0" +||||||| parent of 527dfbec94 (hmmm2) +version = "0.7.5" +======= +version = "1.0.0" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" +======= +checksum = "3a822ea5bc7590f9d40f1ba12c0dc3c2760f3482c6984db1573ad11031420831" +>>>>>>> 527dfbec94 (hmmm2) [[package]] name = "cobs" @@ -419,7 +515,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0b1fab2ae45819af2d0731d60f2afe17227ebb1a1538a236da84c93e9a60162" dependencies = [ "dispatch2", +<<<<<<< HEAD + "nix", +||||||| parent of 527dfbec94 (hmmm2) + "dispatch", "nix", + "windows-sys 0.61.0", +======= + "nix 0.31.1", +>>>>>>> 527dfbec94 (hmmm2) "windows-sys 0.61.2", ] @@ -507,8 +611,16 @@ dependencies = [ [[package]] name = "dispatch2" +<<<<<<< HEAD version = "0.3.1" +||||||| parent of 527dfbec94 (hmmm2) +name = "dispatch" +version = "0.2.0" +======= +version = "0.3.0" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" dependencies = [ "bitflags", @@ -674,9 +786,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ab85b9b05e3978cc9a9cf8fea7f01b494e1a09ed3037e16ba39edc7a29eb61a" [[package]] +<<<<<<< HEAD name = "futures-core" version = "0.3.32" +||||||| parent of 527dfbec94 (hmmm2) +name = "getrandom" +version = "0.2.16" +======= +name = "getrandom" +version = "0.2.17" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" [[package]] @@ -712,6 +833,10 @@ dependencies = [ name = "getrandom" version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +======= +>>>>>>> 527dfbec94 (hmmm2) checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" dependencies = [ "cfg-if", @@ -733,13 +858,30 @@ dependencies = [ [[package]] name = "getrandom" +<<<<<<< HEAD version = "0.4.2" +||||||| parent of 527dfbec94 (hmmm2) +name = "gimli" +version = "0.31.1" +======= +version = "0.4.1" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" dependencies = [ "cfg-if", "libc", "r-efi 6.0.0", +||||||| parent of 527dfbec94 (hmmm2) +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" +======= +checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec" +dependencies = [ + "cfg-if", + "libc", + "r-efi", +>>>>>>> 527dfbec94 (hmmm2) "wasip2", "wasip3", ] @@ -803,6 +945,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] +<<<<<<< HEAD +||||||| parent of 527dfbec94 (hmmm2) +======= +name = "helix-lsp-types" +version = "0.95.1" +source = "git+https://git.bendn.org/helix#6a9523aefc18ffebbb42854df94ad4e9bfc6133c" +dependencies = [ + "bitflags 2.11.0", + "serde", + "serde_json", + "url", +] + +[[package]] +>>>>>>> 527dfbec94 (hmmm2) name = "hermit-abi" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -955,9 +1112,21 @@ dependencies = [ [[package]] name = "icu_collections" +<<<<<<< HEAD version = "2.2.0" +||||||| parent of 527dfbec94 (hmmm2) +version = "2.0.0" +======= +version = "2.1.1" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +======= +checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "displaydoc", "potential_utf", @@ -969,9 +1138,21 @@ dependencies = [ [[package]] name = "icu_locale_core" +<<<<<<< HEAD version = "2.2.0" +||||||| parent of 527dfbec94 (hmmm2) +version = "2.0.0" +======= +version = "2.1.1" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" +======= +checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "displaydoc", "litemap", @@ -982,9 +1163,21 @@ dependencies = [ [[package]] name = "icu_normalizer" +<<<<<<< HEAD version = "2.2.0" +||||||| parent of 527dfbec94 (hmmm2) +version = "2.0.0" +======= +version = "2.1.1" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" +======= +checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "icu_collections", "icu_normalizer_data", @@ -996,15 +1189,39 @@ dependencies = [ [[package]] name = "icu_normalizer_data" +<<<<<<< HEAD version = "2.2.0" +||||||| parent of 527dfbec94 (hmmm2) +version = "2.0.0" +======= +version = "2.1.1" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" +======= +checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" +>>>>>>> 527dfbec94 (hmmm2) [[package]] name = "icu_properties" +<<<<<<< HEAD version = "2.2.0" +||||||| parent of 527dfbec94 (hmmm2) +version = "2.0.1" +======= +version = "2.1.2" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" +======= +checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "icu_collections", "icu_locale_core", @@ -1016,15 +1233,39 @@ dependencies = [ [[package]] name = "icu_properties_data" +<<<<<<< HEAD version = "2.2.0" +||||||| parent of 527dfbec94 (hmmm2) +version = "2.0.1" +======= +version = "2.1.2" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" +======= +checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" +>>>>>>> 527dfbec94 (hmmm2) [[package]] name = "icu_provider" +<<<<<<< HEAD version = "2.2.0" +||||||| parent of 527dfbec94 (hmmm2) +version = "2.0.0" +======= +version = "2.1.1" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" +======= +checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "displaydoc", "icu_locale_core", @@ -1208,12 +1449,30 @@ dependencies = [ [[package]] name = "indexmap" +<<<<<<< HEAD version = "2.14.0" +||||||| parent of 527dfbec94 (hmmm2) +version = "2.11.4" +======= +version = "2.13.0" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" +======= +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "equivalent", +<<<<<<< HEAD "hashbrown 0.17.1", +||||||| parent of 527dfbec94 (hmmm2) + "hashbrown 0.16.0", +======= + "hashbrown 0.16.1", +>>>>>>> 527dfbec94 (hmmm2) "serde", "serde_core", ] @@ -1288,9 +1547,21 @@ dependencies = [ [[package]] name = "itoa" +<<<<<<< HEAD version = "1.0.18" +||||||| parent of 527dfbec94 (hmmm2) +version = "1.0.15" +======= +version = "1.0.17" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +======= +checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" +>>>>>>> 527dfbec94 (hmmm2) [[package]] name = "jod-thread" @@ -1300,9 +1571,21 @@ checksum = "a037eddb7d28de1d0fc42411f501b53b75838d313908078d6698d064f3029b24" [[package]] name = "js-sys" +<<<<<<< HEAD version = "0.3.99" +||||||| parent of 527dfbec94 (hmmm2) +version = "0.3.82" +======= +version = "0.3.89" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "142bc4740e452c1e57ade0cbc129f139c9093e354346f0872ef985f4f5cf5f11" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" +======= +checksum = "f4eacb0641a310445a4c513f2a5e23e19952e269c6a38887254d5f837a305506" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "cfg-if", "futures-util", @@ -1354,6 +1637,7 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] name = "libc" +<<<<<<< HEAD version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" @@ -1369,10 +1653,28 @@ dependencies = [ [[package]] name = "libredox" +<<<<<<< HEAD version = "0.1.17" +||||||| parent of 527dfbec94 (hmmm2) +version = "0.1.10" +======= +version = "0.1.12" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "f02ab6bace2054fb888a3c16f990117b579d14a3088e472d63c6011fa185c9d3" -dependencies = [ +||||||| parent of 527dfbec94 (hmmm2) +checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" +======= +checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" +>>>>>>> 527dfbec94 (hmmm2) +dependencies = [ +<<<<<<< HEAD +||||||| parent of 527dfbec94 (hmmm2) + "bitflags 2.9.4", +======= + "bitflags 2.11.0", +>>>>>>> 527dfbec94 (hmmm2) "libc", ] @@ -1403,9 +1705,21 @@ checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" [[package]] name = "litemap" +<<<<<<< HEAD version = "0.8.2" +||||||| parent of 527dfbec94 (hmmm2) +version = "0.8.0" +======= +version = "0.8.1" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" +======= +checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" +>>>>>>> 527dfbec94 (hmmm2) [[package]] name = "load-cargo" @@ -1437,9 +1751,21 @@ dependencies = [ [[package]] name = "log" +<<<<<<< HEAD version = "0.4.31" +||||||| parent of 527dfbec94 (hmmm2) +version = "0.4.28" +======= +version = "0.4.29" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "113b30b4cd05f7c06868fdb2854f66a7b9fece9a48425351cd532e810d74024f" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" +======= +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" +>>>>>>> 527dfbec94 (hmmm2) [[package]] name = "lsp-server" @@ -1504,8 +1830,15 @@ dependencies = [ [[package]] name = "memchr" +<<<<<<< HEAD version = "2.8.1" +||||||| parent of 527dfbec94 (hmmm2) +version = "2.7.6" +======= +version = "2.8.0" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "6b947ae49db0d222b1dbc6b113ce7248a3fc3a6ca21b696717bfc000ba4484d8" [[package]] @@ -1544,9 +1877,21 @@ checksum = "c505b3e17ed6b70a7ed2e67fbb2c560ee327353556120d6e72f5232b6880d536" [[package]] name = "mio" +<<<<<<< HEAD version = "1.2.1" +||||||| parent of 527dfbec94 (hmmm2) +version = "1.1.0" +======= +version = "1.1.1" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "02bd0af71c67b473010cbbc60715ee815645a4dc942899111f494b4b737d6fda" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" +======= +checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "libc", "log", @@ -1653,9 +1998,16 @@ dependencies = [ [[package]] name = "objc2" +<<<<<<< HEAD version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f" +||||||| parent of 527dfbec94 (hmmm2) +======= +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "objc2-encode", ] @@ -1713,7 +2065,13 @@ dependencies = [ "libc", "redox_syscall", "smallvec", +<<<<<<< HEAD "windows-link", +||||||| parent of 527dfbec94 (hmmm2) + "windows-targets 0.52.6", +======= + "windows-link 0.2.1", +>>>>>>> 527dfbec94 (hmmm2) ] [[package]] @@ -1833,9 +2191,21 @@ dependencies = [ [[package]] name = "potential_utf" +<<<<<<< HEAD version = "0.1.5" +||||||| parent of 527dfbec94 (hmmm2) +version = "0.1.3" +======= +version = "0.1.4" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" +======= +checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "zerovec", ] @@ -1937,7 +2307,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e842efad9119158434d193c6682e2ebee4b44d6ad801d7b349623b3f57cdf55" dependencies = [ "indexmap", - "nix", + "nix 0.30.1", "tracing", "windows", ] @@ -1981,9 +2351,21 @@ dependencies = [ [[package]] name = "proptest" +<<<<<<< HEAD version = "1.11.0" +||||||| parent of 527dfbec94 (hmmm2) +version = "1.9.0" +======= +version = "1.10.0" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "4b45fcc2344c680f5025fe57779faef368840d0bd1f42f216291f0dc4ace4744" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "bee689443a2bd0a16ab0348b52ee43e3b2d1b1f931c8aa5c9f8de4c86fbe8c40" +======= +checksum = "37566cb3fdacef14c0737f9546df7cfeadbfbc9fef10991038bf5015d0c80532" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "bit-set", "bit-vec", @@ -2058,9 +2440,21 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quote" +<<<<<<< HEAD version = "1.0.45" +||||||| parent of 527dfbec94 (hmmm2) +version = "1.0.40" +======= +version = "1.0.44" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +======= +checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "proc-macro2", ] @@ -2307,9 +2701,21 @@ dependencies = [ [[package]] name = "regex-syntax" +<<<<<<< HEAD version = "0.8.10" +||||||| parent of 527dfbec94 (hmmm2) +version = "0.8.8" +======= +version = "0.8.9" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" +======= +checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c" +>>>>>>> 527dfbec94 (hmmm2) [[package]] name = "rowan" @@ -2433,9 +2839,21 @@ dependencies = [ [[package]] name = "rustix" +<<<<<<< HEAD version = "1.1.4" +||||||| parent of 527dfbec94 (hmmm2) +version = "1.1.2" +======= +version = "1.1.3" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" +======= +checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "bitflags", "errno", @@ -2582,13 +3000,26 @@ dependencies = [ "serde", "serde_core", "zmij", +<<<<<<< HEAD ] [[package]] name = "serde_spanned" +<<<<<<< HEAD version = "1.1.1" +||||||| parent of 527dfbec94 (hmmm2) +version = "1.0.3" +======= +version = "1.0.4" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "e24345aa0fe688594e73770a5f6d1b216508b4f93484c0026d521acd30134392" +======= +checksum = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "serde_core", ] @@ -2630,6 +3061,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" [[package]] +name = "simd-adler32" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" + +[[package]] name = "smallvec" version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -2637,6 +3074,30 @@ checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "smol_str" +<<<<<<< HEAD +||||||| parent of 527dfbec94 (hmmm2) +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9676b89cd56310a87b93dec47b11af744f34d5fc9f367b829474eec0a891350d" +dependencies = [ + "borsh", + "serde", +] + +[[package]] +name = "smol_str" +======= +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f7a918bd2a9951d18ee6e48f076843e8e73a9a5d22cf05bcd4b7a81bdd04e17" +dependencies = [ + "borsh", + "serde_core", +] + +[[package]] +name = "smol_str" +>>>>>>> 527dfbec94 (hmmm2) version = "0.3.6" dependencies = [ "arbitrary", @@ -2736,7 +3197,13 @@ dependencies = [ "rustc-literal-escaper", "rustc_apfloat", "smallvec", +<<<<<<< HEAD "smol_str 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", +||||||| parent of 527dfbec94 (hmmm2) + "smol_str 0.3.2", +======= + "smol_str 0.3.5", +>>>>>>> 527dfbec94 (hmmm2) "stdx", "test-utils", "tracing", @@ -2766,12 +3233,30 @@ checksum = "016ef9739649996fcc983b9c588fe3d557cf216d4d98503ce1b057ab5a66d689" [[package]] name = "tempfile" +<<<<<<< HEAD version = "3.27.0" +||||||| parent of 527dfbec94 (hmmm2) +version = "3.23.0" +======= +version = "3.25.0" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" +======= +checksum = "0136791f7c95b1f6dd99f9cc786b91bb81c3800b639b3478e561ddb7be95e5f1" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "fastrand", +<<<<<<< HEAD "getrandom 0.4.2", +||||||| parent of 527dfbec94 (hmmm2) + "getrandom 0.3.4", +======= + "getrandom 0.4.1", +>>>>>>> 527dfbec94 (hmmm2) "once_cell", "rustix", "windows-sys 0.61.2", @@ -2953,9 +3438,21 @@ dependencies = [ [[package]] name = "tinystr" +<<<<<<< HEAD version = "0.8.3" +||||||| parent of 527dfbec94 (hmmm2) +version = "0.8.1" +======= +version = "0.8.2" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" +======= +checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "displaydoc", "zerovec", @@ -2973,9 +3470,21 @@ dependencies = [ [[package]] name = "toml" +<<<<<<< HEAD version = "1.1.2+spec-1.1.0" +||||||| parent of 527dfbec94 (hmmm2) +version = "0.9.8" +======= +version = "0.9.12+spec-1.1.0" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "81f3d15e84cbcd896376e6730314d59fb5a87f31e4b038454184435cd57defee" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8" +======= +checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "indexmap", "serde_core", @@ -2988,27 +3497,63 @@ dependencies = [ [[package]] name = "toml_datetime" +<<<<<<< HEAD version = "1.1.1+spec-1.1.0" +||||||| parent of 527dfbec94 (hmmm2) +version = "0.7.3" +======= +version = "0.7.5+spec-1.1.0" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" +======= +checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "serde_core", ] [[package]] name = "toml_parser" +<<<<<<< HEAD version = "1.1.2+spec-1.1.0" +||||||| parent of 527dfbec94 (hmmm2) +version = "1.0.4" +======= +version = "1.0.9+spec-1.1.0" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" +======= +checksum = "702d4415e08923e7e1ef96cd5727c0dfed80b4d2fa25db9647fe5eb6f7c5a4c4" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "winnow 1.0.3", ] [[package]] name = "toml_writer" +<<<<<<< HEAD version = "1.1.1+spec-1.1.0" +||||||| parent of 527dfbec94 (hmmm2) +version = "1.0.4" +======= +version = "1.0.6+spec-1.1.0" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2" +======= +checksum = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607" +>>>>>>> 527dfbec94 (hmmm2) [[package]] name = "toolchain" @@ -3062,9 +3607,21 @@ dependencies = [ [[package]] name = "tracing-subscriber" +<<<<<<< HEAD version = "0.3.23" +||||||| parent of 527dfbec94 (hmmm2) +version = "0.3.20" +======= +version = "0.3.22" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" +======= +checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "sharded-slab", "thread_local", @@ -3246,9 +3803,30 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasip2" +<<<<<<< HEAD version = "1.0.3+wasi-0.2.9" +||||||| parent of 527dfbec94 (hmmm2) +version = "1.0.1+wasi-0.2.4" +======= +version = "1.0.2+wasi-0.2.9" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +======= +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "wit-bindgen 0.57.1", ] @@ -3264,9 +3842,21 @@ dependencies = [ [[package]] name = "wasm-bindgen" +<<<<<<< HEAD version = "0.2.122" +||||||| parent of 527dfbec94 (hmmm2) +version = "0.2.105" +======= +version = "0.2.112" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "3ed04576f974d2b2fba0f38c51dbc5518011e38c36bf1143164be765528fd409" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60" +======= +checksum = "05d7d0fce354c88b7982aec4400b3e7fcf723c32737cef571bd165f7613557ee" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "cfg-if", "once_cell", @@ -3277,9 +3867,21 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" +<<<<<<< HEAD version = "0.2.122" +||||||| parent of 527dfbec94 (hmmm2) +version = "0.2.105" +======= +version = "0.2.112" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "916151b09da36bd82f6615cbf3a419e2f0ba23a03c6160e8e92eb6bd4aa1dec6" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2" +======= +checksum = "55839b71ba921e4f75b674cb16f843f4b1f3b26ddfcb3454de1cf65cc021ec0f" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3287,9 +3889,21 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" +<<<<<<< HEAD version = "0.2.122" +||||||| parent of 527dfbec94 (hmmm2) +version = "0.2.105" +======= +version = "0.2.112" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "299047362ccbfce148b67ab7e73349f77748e00c8296f9542adfad2ad82c5c5e" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" +======= +checksum = "caf2e969c2d60ff52e7e98b7392ff1588bffdd1ccd4769eba27222fd3d621571" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "bumpalo", "proc-macro2", @@ -3300,9 +3914,21 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" +<<<<<<< HEAD version = "0.2.122" +||||||| parent of 527dfbec94 (hmmm2) +version = "0.2.105" +======= +version = "0.2.112" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "9a929b2c61f11ba3e9bc35b50c1f25cb38e0e892c0c231ae2b8cf78d5dad4437" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" +======= +checksum = "0861f0dcdf46ea819407495634953cdcc8a8c7215ab799a7a7ce366be71c7b30" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "unicode-ident", ] @@ -3346,6 +3972,21 @@ name = "web-sys" version = "0.3.99" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d621441cfc37b84979402712047321980c178f299193a3589d05b99e8763436" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "3a1f95c0d03a47f4ae1f7a64643a6bb97465d9b740f0fa8f90ea33915c99a9a1" +======= + "bitflags 2.11.0", + "hashbrown 0.15.5", + "indexmap", + "semver", +] + +[[package]] +name = "web-sys" +version = "0.3.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10053fbf9a374174094915bbce141e87a6bf32ecd9a002980db4b638405e8962" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "js-sys", "wasm-bindgen", @@ -3431,6 +4072,23 @@ dependencies = [ name = "windows-link" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD +||||||| parent of 527dfbec94 (hmmm2) +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" + +[[package]] +name = "windows-link" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" +======= +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +>>>>>>> 527dfbec94 (hmmm2) checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" [[package]] @@ -3476,7 +4134,13 @@ version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" dependencies = [ +<<<<<<< HEAD "windows-link", +||||||| parent of 527dfbec94 (hmmm2) + "windows-link 0.2.0", +======= + "windows-link 0.2.1", +>>>>>>> 527dfbec94 (hmmm2) ] [[package]] @@ -3485,7 +4149,37 @@ version = "0.53.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" dependencies = [ +<<<<<<< HEAD "windows-link", +||||||| parent of 527dfbec94 (hmmm2) + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" +dependencies = [ + "windows-link 0.1.3", + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", +======= + "windows-link 0.2.1", +>>>>>>> 527dfbec94 (hmmm2) "windows_aarch64_gnullvm", "windows_aarch64_msvc", "windows_i686_gnu", @@ -3555,8 +4249,15 @@ checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] name = "winnow" +<<<<<<< HEAD version = "0.7.15" +||||||| parent of 527dfbec94 (hmmm2) +version = "0.7.13" +======= +version = "0.7.14" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" [[package]] @@ -3564,6 +4265,11 @@ name = "winnow" version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0592e1c9d151f854e6fd382574c3a0855250e1d9b2f99d9281c6e6391af352f1" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" +======= +checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" +>>>>>>> 527dfbec94 (hmmm2) [[package]] name = "wit-bindgen" @@ -3575,6 +4281,7 @@ dependencies = [ ] [[package]] +<<<<<<< HEAD name = "wit-bindgen" version = "0.57.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -3667,9 +4374,21 @@ checksum = "23f6174b2566cc4a74f95e1367ec343e7fa80c93cc8087f5c4a3d6a1088b2118" [[package]] name = "writeable" +<<<<<<< HEAD version = "0.6.3" +||||||| parent of 527dfbec94 (hmmm2) +version = "0.6.1" +======= +version = "0.6.2" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" +======= +checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" +>>>>>>> 527dfbec94 (hmmm2) [[package]] name = "xflags" @@ -3723,9 +4442,21 @@ dependencies = [ [[package]] name = "yoke" +<<<<<<< HEAD version = "0.8.3" +||||||| parent of 527dfbec94 (hmmm2) +version = "0.8.0" +======= +version = "0.8.1" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "709fe23a0424b6a435d82152b1bd3fdfb0833487d5fa90d05d42762a9891fef5" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" +======= +checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "stable_deref_trait", "yoke-derive", @@ -3734,9 +4465,21 @@ dependencies = [ [[package]] name = "yoke-derive" +<<<<<<< HEAD version = "0.8.2" +||||||| parent of 527dfbec94 (hmmm2) +version = "0.8.0" +======= +version = "0.8.1" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" +======= +checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "proc-macro2", "quote", @@ -3746,18 +4489,42 @@ dependencies = [ [[package]] name = "zerocopy" +<<<<<<< HEAD version = "0.8.50" +||||||| parent of 527dfbec94 (hmmm2) +version = "0.8.27" +======= +version = "0.8.39" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "3b065d4f0e55f82fae73202e189638116a87c55ab6b8e6c2721e13dd9d854ad1" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" +======= +checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" +<<<<<<< HEAD version = "0.8.50" +||||||| parent of 527dfbec94 (hmmm2) +version = "0.8.27" +======= +version = "0.8.39" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "0b631b19d36a892ab55420c92dbc83ccd79274f25be714855d3074aa71cab639" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" +======= +checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "proc-macro2", "quote", @@ -3787,9 +4554,21 @@ dependencies = [ [[package]] name = "zerotrie" +<<<<<<< HEAD version = "0.2.4" +||||||| parent of 527dfbec94 (hmmm2) +version = "0.2.2" +======= +version = "0.2.3" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +======= +checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "displaydoc", "yoke", @@ -3798,9 +4577,21 @@ dependencies = [ [[package]] name = "zerovec" +<<<<<<< HEAD version = "0.11.6" +||||||| parent of 527dfbec94 (hmmm2) +version = "0.11.4" +======= +version = "0.11.5" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" +======= +checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "yoke", "zerofrom", @@ -3809,9 +4600,21 @@ dependencies = [ [[package]] name = "zerovec-derive" +<<<<<<< HEAD version = "0.11.3" +||||||| parent of 527dfbec94 (hmmm2) +version = "0.11.1" +======= +version = "0.11.2" +>>>>>>> 527dfbec94 (hmmm2) source = "registry+https://github.com/rust-lang/crates.io-index" +<<<<<<< HEAD checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" +||||||| parent of 527dfbec94 (hmmm2) +checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" +======= +checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" +>>>>>>> 527dfbec94 (hmmm2) dependencies = [ "proc-macro2", "quote", diff --git a/crates/base-db/src/lib.rs b/crates/base-db/src/lib.rs index a681ac72b7..db2f7a5647 100644 --- a/crates/base-db/src/lib.rs +++ b/crates/base-db/src/lib.rs @@ -422,17 +422,19 @@ impl DbPanicContext { let default_hook = panic::take_hook(); panic::set_hook(Box::new(move |panic_info| { default_hook(panic_info); - if let Some(backtrace) = salsa::Backtrace::capture() { - eprintln!("{backtrace:#}"); - } - DbPanicContext::with_ctx(|ctx| { - if !ctx.is_empty() { - eprintln!("additional context:"); - for (idx, frame) in ctx.iter().enumerate() { - eprintln!("{idx:>4}: {frame}\n"); - } + if std::env::var("RA_BT").is_ok() { + if let Some(backtrace) = salsa::Backtrace::capture() { + eprintln!("{backtrace:#}"); } - }); + DbPanicContext::with_ctx(|ctx| { + if !ctx.is_empty() { + eprintln!("additional context:"); + for (idx, frame) in ctx.iter().enumerate() { + eprintln!("{idx:>4}: {frame}\n"); + } + } + }); + } })); } diff --git a/crates/ide/src/file_structure.rs b/crates/ide/src/file_structure.rs index 21254fc4d6..e0a4fa61d9 100644 --- a/crates/ide/src/file_structure.rs +++ b/crates/ide/src/file_structure.rs @@ -1,7 +1,7 @@ use ide_db::SymbolKind; use syntax::{ AstNode, AstToken, NodeOrToken, SourceFile, SyntaxNode, SyntaxToken, TextRange, WalkEvent, - ast::{self, HasAttrs, HasGenericParams, HasName}, + ast::{self, HasAttrs, HasGenericParams, HasName, HasVisibility}, match_ast, }; @@ -11,6 +11,7 @@ pub struct StructureNode { pub label: String, pub navigation_range: TextRange, pub node_range: TextRange, + pub sticky_range: Option<TextRange>, pub kind: StructureNodeKind, pub detail: Option<String>, pub deprecated: bool, @@ -112,6 +113,7 @@ fn structure_node(node: &SyntaxNode, config: &FileStructureConfig) -> Option<Str kind, detail, deprecated: node.attrs().filter_map(|x| x.simple_name()).any(|x| x == "deprecated"), + sticky_range: None, }) } @@ -155,7 +157,15 @@ fn structure_node(node: &SyntaxNode, config: &FileStructureConfig) -> Option<Str SymbolKind::Method } else { SymbolKind::Function - })) + })).map(|x| { + let sticky_range = it.name().zip(it.visibility()).map(|(name, vis)| { + let end = it.ret_type().map(|x| x.syntax().text_range().end()).or_else(|| { + it.param_list().map(|x| x.syntax().text_range().end()) + }).unwrap_or(name.syntax().text_range().end()); + TextRange::new(vis.syntax().text_range().start(), end) + }); + StructureNode { sticky_range, ..x } + }) }, ast::Struct(it) => decl(it, StructureNodeKind::SymbolKind(SymbolKind::Struct)), ast::Union(it) => decl(it, StructureNodeKind::SymbolKind(SymbolKind::Union)), @@ -190,6 +200,7 @@ fn structure_node(node: &SyntaxNode, config: &FileStructureConfig) -> Option<Str kind: StructureNodeKind::SymbolKind(SymbolKind::Impl), detail: None, deprecated: false, + sticky_range: None, }; Some(node) }, @@ -211,6 +222,7 @@ fn structure_node(node: &SyntaxNode, config: &FileStructureConfig) -> Option<Str kind: StructureNodeKind::SymbolKind(SymbolKind::Local), detail: it.ty().map(|ty| ty.to_string()), deprecated: false, + sticky_range: None, }; Some(node) }, @@ -229,6 +241,7 @@ fn structure_node(node: &SyntaxNode, config: &FileStructureConfig) -> Option<Str kind: StructureNodeKind::ExternBlock, detail: None, deprecated: false, + sticky_range: None, }) }, _ => None, @@ -251,6 +264,7 @@ fn structure_token(token: SyntaxToken) -> Option<StructureNode> { kind: StructureNodeKind::Region, detail: None, deprecated: false, + sticky_range: None, }); } } diff --git a/crates/ide/src/lib.rs b/crates/ide/src/lib.rs index dded01520f..b06321dfcf 100644 --- a/crates/ide/src/lib.rs +++ b/crates/ide/src/lib.rs @@ -384,7 +384,6 @@ impl Analysis { matching_brace::matching_brace(&file, position.offset) }) } - pub fn view_syntax_tree(&self, file_id: FileId) -> Cancellable<String> { self.with_db(|db| view_syntax_tree::view_syntax_tree(db, file_id)) } diff --git a/crates/ide/src/typing.rs b/crates/ide/src/typing.rs index a49a85fe78..7f3f878936 100644 --- a/crates/ide/src/typing.rs +++ b/crates/ide/src/typing.rs @@ -99,8 +99,8 @@ fn on_char_typed_( '.' => on_dot_typed(&file.tree(), offset), '=' => on_eq_typed(&file.tree(), offset), '>' => on_right_angle_typed(&file.tree(), offset), - '{' | '(' | '<' => on_opening_delimiter_typed(file, offset, char_typed, edition), - '|' => on_pipe_typed(&file.tree(), offset), + '{' | '(' | '<' => return on_opening_delimiter_typed(file, offset, char_typed, edition), + '|' => return on_pipe_typed(&file.tree(), offset), '+' => on_plus_typed(&file.tree(), offset), _ => None, } @@ -118,7 +118,7 @@ fn on_opening_delimiter_typed( offset: TextSize, opening_bracket: char, edition: Edition, -) -> Option<TextEdit> { +) -> Option<ExtendedTextEdit> { type FilterFn = fn(SyntaxKind) -> bool; let (closing_bracket, expected_ast_bracket, allowed_kinds) = match opening_bracket { '{' => ('}', SyntaxKind::L_CURLY, &[ast::Expr::can_cast as FilterFn] as &[FilterFn]), @@ -147,11 +147,11 @@ fn on_opening_delimiter_typed( if let Some(edit) = on_delimited_node_typed(&reparsed, offset, opening_bracket, closing_bracket, allowed_kinds) { - return Some(edit); + return Some(conv(edit)); } match opening_bracket { - '{' => on_left_brace_typed(&reparsed, offset), + '{' => on_left_brace_typed(&reparsed, offset).map(conv), '<' => on_left_angle_typed(&file.tree(), &reparsed, offset), _ => None, } @@ -364,7 +364,7 @@ fn on_left_angle_typed( file: &SourceFile, reparsed: &SourceFile, offset: TextSize, -) -> Option<TextEdit> { +) -> Option<ExtendedTextEdit> { let file_text = reparsed.syntax().text(); // Find the next non-whitespace char in the line, check if its a `>` @@ -385,13 +385,16 @@ fn on_left_angle_typed( }) { // Insert the closing bracket right after - Some(TextEdit::insert(offset + TextSize::of('<'), '>'.to_string())) + Some(ExtendedTextEdit { + edit: TextEdit::insert(offset + TextSize::of('<'), "$0>".to_string()), + is_snippet: true, + }) } else { None } } -fn on_pipe_typed(file: &SourceFile, offset: TextSize) -> Option<TextEdit> { +fn on_pipe_typed(file: &SourceFile, offset: TextSize) -> Option<ExtendedTextEdit> { let pipe_token = file.syntax().token_at_offset(offset).right_biased()?; if pipe_token.kind() != SyntaxKind::PIPE { return None; @@ -400,7 +403,11 @@ fn on_pipe_typed(file: &SourceFile, offset: TextSize) -> Option<TextEdit> { return None; } let after_lpipe = offset + TextSize::of('|'); - Some(TextEdit::insert(after_lpipe, "|".to_owned())) + + Some(ExtendedTextEdit { + edit: TextEdit::insert(after_lpipe, "$0|".to_owned()), + is_snippet: true, + }) } fn on_plus_typed(file: &SourceFile, offset: TextSize) -> Option<TextEdit> { diff --git a/crates/rust-analyzer/Cargo.toml b/crates/rust-analyzer/Cargo.toml index dd8649e095..922962fd1a 100644 --- a/crates/rust-analyzer/Cargo.toml +++ b/crates/rust-analyzer/Cargo.toml @@ -15,9 +15,9 @@ rust-version.workspace = true [lib] doctest = false -[[bin]] -name = "rust-analyzer" -path = "src/bin/main.rs" +# [[bin]] +# name = "rust-analyzer" +# path = "src/bin/main.rs" [dependencies] anyhow.workspace = true @@ -28,8 +28,11 @@ dissimilar.workspace = true ide-completion.workspace = true indexmap.workspace = true itertools.workspace = true + scip = "0.7.1" -lsp-types = { version = "0.4.0", package = "gen-lsp-types", features=["url"] } +lsp-types = { git = "https://git.bendn.org/helix", package = "helix-lsp-types", features = [ + "proposed", +] } parking_lot = "0.12.4" xflags = "0.3.2" oorandom = "11.1.5" @@ -41,8 +44,8 @@ serde_derive.workspace = true tenthash = "1.1.0" num_cpus = "1.17.0" mimalloc = { version = "0.1.46", default-features = false, optional = true } -lsp-server.workspace = true smallvec.workspace = true +lsp-server = { version = "0.7.9", path = "../../lib/lsp-server" } tracing.workspace = true tracing-subscriber.workspace = true tracing-tree.workspace = true diff --git a/crates/rust-analyzer/src/bin/main.rs b/crates/rust-analyzer/src/bin/mod.rs index f175bb06bf..e4e8f9daf3 100644 --- a/crates/rust-analyzer/src/bin/main.rs +++ b/crates/rust-analyzer/src/bin/mod.rs @@ -12,14 +12,14 @@ mod rustc_wrapper; use std::{env, fs, path::PathBuf, process::ExitCode, sync::Arc}; -use anyhow::Context; -use lsp_server::Connection; -use paths::Utf8PathBuf; -use rust_analyzer::{ +use crate::{ cli::flags, config::{Config, ConfigChange, ConfigErrors}, from_json, }; +use anyhow::Context; +use lsp_server::Connection; +use paths::Utf8PathBuf; use tracing_subscriber::fmt::writer::BoxMakeWriter; use vfs::AbsPathBuf; @@ -60,7 +60,7 @@ fn actual_main() -> anyhow::Result<ExitCode> { break 'lsp_server; } if cmd.version { - println!("rust-analyzer {}", rust_analyzer::version()); + println!("rust-analyzer {}", crate::version()); break 'lsp_server; } @@ -68,11 +68,11 @@ fn actual_main() -> anyhow::Result<ExitCode> { // a secondary latency-sensitive thread with an increased stack size. // We use this thread intent because any delay in the main loop // will make actions like hitting enter in the editor slow. - with_extra_thread( - "LspServer", - stdx::thread::ThreadIntent::LatencySensitive, - run_server, - )?; + // with_extra_thread( + // "LspServer", + // stdx::thread::ThreadIntent::LatencySensitive, + // run_server, + // )?; } flags::RustAnalyzerCmd::Parse(cmd) => cmd.run()?, flags::RustAnalyzerCmd::Symbols(cmd) => cmd.run()?, @@ -158,7 +158,7 @@ fn setup_logging(log_file_flag: Option<PathBuf>) -> anyhow::Result<()> { None => BoxMakeWriter::new(std::io::stderr), }; - rust_analyzer::tracing::Config { + crate::tracing::Config { writer, // Deliberately enable all `warn` logs if the user has not set RA_LOG, as there is usually // useful information in there for debugging. @@ -190,17 +190,43 @@ fn with_extra_thread( Ok(()) } -fn run_server() -> anyhow::Result<()> { - tracing::info!("server version {} will start", rust_analyzer::version()); +pub fn run_server(connection: Connection) -> anyhow::Result<()> { + let log_file = env::var("RA_LOG_FILE").ok().map(PathBuf::from); + let log_file = match log_file { + Some(path) => { + if let Some(parent) = path.parent() { + let _ = fs::create_dir_all(parent); + } + Some( + fs::File::create(&path) + .with_context(|| format!("can't create log file at {}", path.display()))?, + ) + } + None => None, + }; + + let writer = match log_file { + Some(file) => BoxMakeWriter::new(Arc::new(file)), + None => BoxMakeWriter::new(std::io::stderr), + }; + + crate::tracing::Config { + writer, + // Deliberately enable all `warn` logs if the user has not set RA_LOG, as there is usually + // useful information in there for debugging. + filter: env::var("RA_LOG").ok().unwrap_or_else(|| "warn".to_owned()), + chalk_filter: env::var("CHALK_DEBUG").ok(), + profile_filter: env::var("RA_PROFILE").ok(), + json_profile_filter: std::env::var("RA_PROFILE_JSON").ok(), + } + .init()?; - let (connection, io_threads) = Connection::stdio(); + tracing::info!("server version {} will start", crate::version()); let (initialize_id, initialize_params) = match connection.initialize_start() { Ok(it) => it, Err(e) => { - if e.channel_is_disconnected() { - io_threads.join()?; - } + if e.channel_is_disconnected() {} return Err(e.into()); } }; @@ -276,22 +302,20 @@ fn run_server() -> anyhow::Result<()> { } } - let server_capabilities = rust_analyzer::server_capabilities(&config); + let server_capabilities = crate::server_capabilities(&config); let initialize_result = lsp_types::InitializeResult { capabilities: server_capabilities, server_info: Some(lsp_types::ServerInfo { name: String::from("rust-analyzer"), - version: Some(rust_analyzer::version().to_string()), + version: Some(crate::version().to_string()), }), }; let initialize_result = serde_json::to_value(initialize_result).unwrap(); if let Err(e) = connection.initialize_finish(initialize_id, initialize_result) { - if e.channel_is_disconnected() { - io_threads.join()?; - } + if e.channel_is_disconnected() {} return Err(e.into()); } @@ -303,18 +327,13 @@ fn run_server() -> anyhow::Result<()> { } rayon::ThreadPoolBuilder::new() - .thread_name(|ix| format!("RayonWorker{}", ix)) + .thread_name(|ix| format!("RARayonWorker{}", ix)) .build_global() .unwrap(); // If the io_threads have an error, there's usually an error on the main // loop too because the channels are closed. Ensure we report both errors. - match (rust_analyzer::main_loop(config, connection), io_threads.join()) { - (Err(loop_e), Err(join_e)) => anyhow::bail!("{loop_e}\n{join_e}"), - (Ok(_), Err(join_e)) => anyhow::bail!("{join_e}"), - (Err(loop_e), Ok(_)) => anyhow::bail!("{loop_e}"), - (Ok(_), Ok(_)) => {} - } + crate::main_loop(config, connection)?; tracing::info!("server did shut down"); Ok(()) diff --git a/crates/rust-analyzer/src/diagnostics/flycheck_to_proto.rs b/crates/rust-analyzer/src/diagnostics/flycheck_to_proto.rs index 8568f4798c..750e3fe9cd 100644 --- a/crates/rust-analyzer/src/diagnostics/flycheck_to_proto.rs +++ b/crates/rust-analyzer/src/diagnostics/flycheck_to_proto.rs @@ -455,7 +455,8 @@ pub(crate) fn map_rust_diagnostic_to_lsp( tags: tag.map(|tag| vec![tag]), data: Some(serde_json::json!({ "rendered": rendered })), }, - fix: None, + // i dont like it. + fix: subdiagnostics.iter().flat_map(|x| x.suggested_fix.clone()).next(), }); // Emit hint-level diagnostics for all `related_information` entries such as "help"s. diff --git a/crates/rust-analyzer/src/handlers/dispatch.rs b/crates/rust-analyzer/src/handlers/dispatch.rs index 82a2212285..8bb730827e 100644 --- a/crates/rust-analyzer/src/handlers/dispatch.rs +++ b/crates/rust-analyzer/src/handlers/dispatch.rs @@ -421,6 +421,9 @@ impl NotificationDispatcher<'_> { self.not = Some(not); return self; } + Err(ExtractError::NoResult) => { + panic!() + } }; tracing::debug!(?params); diff --git a/crates/rust-analyzer/src/handlers/request.rs b/crates/rust-analyzer/src/handlers/request.rs index 41e3db7f31..c835af0073 100644 --- a/crates/rust-analyzer/src/handlers/request.rs +++ b/crates/rust-analyzer/src/handlers/request.rs @@ -395,7 +395,7 @@ pub(crate) fn handle_selection_range( pub(crate) fn handle_matching_brace( snap: GlobalStateSnapshot, params: lsp_ext::MatchingBraceParams, -) -> anyhow::Result<Vec<Position>> { +) -> anyhow::Result<Vec<Option<Position>>> { let _p = tracing::info_span!("handle_matching_brace").entered(); let file_id = try_default!(from_proto::file_id(&snap, ¶ms.text_document.uri)?); let line_index = snap.file_line_index(file_id)?; @@ -405,11 +405,10 @@ pub(crate) fn handle_matching_brace( .map(|position| { let offset = from_proto::offset(&line_index, *position); offset.map(|offset| { - let offset = match snap.analysis.matching_brace(FilePosition { file_id, offset }) { - Ok(Some(matching_brace_offset)) => matching_brace_offset, - Err(_) | Ok(None) => offset, - }; - to_proto::position(&line_index, offset) + match snap.analysis.matching_brace(FilePosition { file_id, offset }) { + Ok(Some(x)) => Some(to_proto::position(&line_index, x)), + Err(_) | Ok(None) => None, + } }) }) .collect() @@ -615,6 +614,7 @@ pub(crate) fn handle_document_symbol( range: to_proto::range(&line_index, node.node_range), selection_range: to_proto::range(&line_index, node.navigation_range), children: None, + sticky_range: node.sticky_range.map(|x| to_proto::range(&line_index, x)), }; symbols.push((symbol, node.parent)); } diff --git a/crates/rust-analyzer/src/lib.rs b/crates/rust-analyzer/src/lib.rs index 950592cb26..d161c2b464 100644 --- a/crates/rust-analyzer/src/lib.rs +++ b/crates/rust-analyzer/src/lib.rs @@ -28,8 +28,8 @@ pub const MINIMUM_SUPPORTED_TOOLCHAIN_VERSION: semver::Version = semver::Version build: semver::BuildMetadata::EMPTY, }; +pub mod bin; pub mod cli; - mod command; mod diagnostics; mod discover; diff --git a/crates/rust-analyzer/src/lsp/ext.rs b/crates/rust-analyzer/src/lsp/ext.rs index 3a1945c881..584e2031eb 100644 --- a/crates/rust-analyzer/src/lsp/ext.rs +++ b/crates/rust-analyzer/src/lsp/ext.rs @@ -264,6 +264,7 @@ impl Request for RunTestRequest { const METHOD: LspRequestMethod = LspRequestMethod::new("experimental/runTest"); const MESSAGE_DIRECTION: MessageDirection = MessageDirection::ClientToServer; } +#[derive(Debug)] pub enum EndRunTestNotification {} @@ -672,19 +673,7 @@ pub struct SnippetTextDocumentEdit { pub text_document: lsp_types::OptionalVersionedTextDocumentIdentifier, pub edits: Vec<SnippetTextEdit>, } - -#[derive(Debug, Eq, PartialEq, Clone, Default, Deserialize, Serialize)] -#[serde(rename_all = "camelCase")] -pub struct SnippetTextEdit { - pub range: Range, - pub new_text: String, - #[serde(skip_serializing_if = "Option::is_none")] - pub insert_text_format: Option<lsp_types::InsertTextFormat>, - /// The annotation id if this is an annotated - #[serde(skip_serializing_if = "Option::is_none")] - pub annotation_id: Option<lsp_types::ChangeAnnotationIdentifier>, -} - +#[derive(Debug)] pub enum HoverRequest {} impl Request for HoverRequest { diff --git a/crates/rust-analyzer/src/lsp/to_proto.rs b/crates/rust-analyzer/src/lsp/to_proto.rs index ce71685cb1..db963d9dc5 100644 --- a/crates/rust-analyzer/src/lsp/to_proto.rs +++ b/crates/rust-analyzer/src/lsp/to_proto.rs @@ -58,20 +58,20 @@ pub(crate) fn range(line_index: &LineIndex, range: TextRange) -> lsp_types::Rang pub(crate) fn symbol_kind(symbol_kind: SymbolKind) -> lsp_types::SymbolKind { match symbol_kind { - SymbolKind::Function => lsp_types::SymbolKind::Function, - SymbolKind::Method => lsp_types::SymbolKind::Method, - SymbolKind::Struct => lsp_types::SymbolKind::Struct, - SymbolKind::Enum => lsp_types::SymbolKind::Enum, - SymbolKind::Variant => lsp_types::SymbolKind::EnumMember, - SymbolKind::Trait => lsp_types::SymbolKind::Interface, - SymbolKind::Macro - | SymbolKind::ProcMacro - | SymbolKind::BuiltinAttr - | SymbolKind::Attribute - | SymbolKind::Derive - | SymbolKind::DeriveHelper => lsp_types::SymbolKind::Function, - SymbolKind::CrateRoot => lsp_types::SymbolKind::Package, - SymbolKind::Module | SymbolKind::ToolModule => lsp_types::SymbolKind::Module, + SymbolKind::Function => lsp_types::SymbolKind::FUNCTION, + SymbolKind::Method => lsp_types::SymbolKind::METHOD, + SymbolKind::Struct => lsp_types::SymbolKind::STRUCT, + SymbolKind::Enum => lsp_types::SymbolKind::ENUM, + SymbolKind::Variant => lsp_types::SymbolKind::ENUM_MEMBER, + SymbolKind::Trait => lsp_types::SymbolKind::INTERFACE, + SymbolKind::Macro => lsp_types::SymbolKind::MACRO, + SymbolKind::ProcMacro => lsp_types::SymbolKind::PROC_MACRO, + SymbolKind::BuiltinAttr => lsp_types::SymbolKind::BUILTIN_ATTRIBUTE, + SymbolKind::Attribute => lsp_types::SymbolKind::ATTRIBUTE, + SymbolKind::Derive => lsp_types::SymbolKind::DERIVE, + SymbolKind::CrateRoot => lsp_types::SymbolKind::PACKAGE, + SymbolKind::DeriveHelper => lsp_types::SymbolKind::DERIVE_HELPER, + SymbolKind::Module | SymbolKind::ToolModule => lsp_types::SymbolKind::MODULE, SymbolKind::TypeAlias | SymbolKind::TypeParam | SymbolKind::SelfType => { lsp_types::SymbolKind::TypeParameter } diff --git a/crates/rust-analyzer/src/main_loop.rs b/crates/rust-analyzer/src/main_loop.rs index b4727360e5..fd72a0a584 100644 --- a/crates/rust-analyzer/src/main_loop.rs +++ b/crates/rust-analyzer/src/main_loop.rs @@ -281,8 +281,10 @@ impl GlobalState { } select! { - recv(inbox) -> msg => - return Ok(msg.ok().map(Event::Lsp)), + recv(inbox) -> msg => { + tracing::debug!("{msg:?}"); + return Ok(msg.ok().map(Event::Lsp)) + }, recv(self.task_pool.receiver) -> task => task.map(Event::Task), diff --git a/lib/lsp-server/Cargo.toml b/lib/lsp-server/Cargo.toml index 606ee2e453..358cd2f168 100644 --- a/lib/lsp-server/Cargo.toml +++ b/lib/lsp-server/Cargo.toml @@ -12,11 +12,11 @@ serde_json = "1.0.140" serde = { version = "1.0.219" } serde_derive = { version = "1.0.219" } crossbeam-channel.workspace = true +lsp-types = { git = "https://git.bendn.org/helix", package = "helix-lsp-types" } [dev-dependencies] -lsp-types = { version = "0.4.0", package = "gen-lsp-types", features = [ - "url", -] } +lsp-types = { git = "https://git.bendn.org/helix", package = "helix-lsp-types" } + ctrlc = "3.4.7" anyhow.workspace = true rustc-hash.workspace = true diff --git a/lib/lsp-server/src/error.rs b/lib/lsp-server/src/error.rs index da55393339..572d651c65 100644 --- a/lib/lsp-server/src/error.rs +++ b/lib/lsp-server/src/error.rs @@ -30,6 +30,8 @@ impl fmt::Display for ProtocolError { #[derive(Debug)] pub enum ExtractError<T> { + /// Not found + NoResult, /// The extracted message was of a different method than expected. MethodMismatch(T), /// Failed to deserialize the message. @@ -40,6 +42,9 @@ impl std::error::Error for ExtractError<Request> {} impl fmt::Display for ExtractError<Request> { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { + ExtractError::NoResult => { + write!(f, "unfound") + } ExtractError::MethodMismatch(req) => { write!(f, "Method mismatch for request '{}'", req.method) } @@ -54,6 +59,9 @@ impl std::error::Error for ExtractError<Notification> {} impl fmt::Display for ExtractError<Notification> { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { + ExtractError::NoResult => { + write!(f, "unfound") + } ExtractError::MethodMismatch(req) => { write!(f, "Method mismatch for notification '{}'", req.method) } diff --git a/lib/lsp-server/src/lib.rs b/lib/lsp-server/src/lib.rs index 20f045047f..cef1c3e140 100644 --- a/lib/lsp-server/src/lib.rs +++ b/lib/lsp-server/src/lib.rs @@ -6,12 +6,12 @@ #![warn(rust_2018_idioms, unused_lifetimes)] #![allow(clippy::print_stdout, clippy::disallowed_types)] - -mod error; -mod msg; -mod req_queue; -mod socket; -mod stdio; +#![feature(bool_to_result)] +pub mod error; +pub mod msg; +pub mod req_queue; +pub mod socket; +pub mod stdio; use std::{ io::{self, Stdin, Stdout}, diff --git a/lib/lsp-server/src/msg.rs b/lib/lsp-server/src/msg.rs index eb8b6bbf04..cdc75153bc 100644 --- a/lib/lsp-server/src/msg.rs +++ b/lib/lsp-server/src/msg.rs @@ -234,12 +234,29 @@ impl Response { let error = ResponseError { code, message, data: None }; Response { id, result: None, error: Some(error) } } + pub fn load<P: DeserializeOwned>(self) -> Result<P, ExtractError<Request>> { + self.result.ok_or(ExtractError::NoResult).and_then(|x| { + serde_json::from_value(x) + .map_err(|error| ExtractError::JsonError { method: "".into(), error }) + }) + } } impl Request { pub fn new<P: serde::Serialize>(id: RequestId, method: String, params: P) -> Request { Request { id, method, params: serde_json::to_value(params).unwrap() } } + pub fn load<P: lsp_types::request::Request>( + self, + ) -> Result<(RequestId, P::Params), ExtractError<Request>> { + if self.method != P::METHOD { + return Err(ExtractError::MethodMismatch(self)); + } + match serde_json::from_value(self.params) { + Ok(params) => Ok((self.id, params)), + Err(error) => Err(ExtractError::JsonError { method: self.method, error }), + } + } pub fn extract<P: DeserializeOwned>( self, method: &str, @@ -265,6 +282,14 @@ impl Notification { pub fn new(method: String, params: impl serde::Serialize) -> Notification { Notification { method, params: serde_json::to_value(params).unwrap() } } + pub fn load<T: lsp_types::notification::Notification>( + self, + ) -> Result<T::Params, ExtractError<Notification>> { + (self.method == T::METHOD).ok_or(ExtractError::NoResult).and_then(|()| { + serde_json::from_value(self.params) + .map_err(|e| ExtractError::JsonError { method: self.method, error: e }) + }) + } pub fn extract<P: DeserializeOwned>( self, method: &str, diff --git a/lib/lsp-server/src/socket.rs b/lib/lsp-server/src/socket.rs index 793073d1f7..59d0dc7b0c 100644 --- a/lib/lsp-server/src/socket.rs +++ b/lib/lsp-server/src/socket.rs @@ -16,10 +16,7 @@ pub(crate) fn socket_transport( ) -> (Sender<Message>, Receiver<Message>, IoThreads) { let (reader_receiver, reader) = make_reader(stream.try_clone().unwrap()); let (writer_sender, writer, messages_to_drop) = make_write(stream); - let dropper = std::thread::spawn(move || { - messages_to_drop.into_iter().for_each(drop); - }); - let io_threads = make_io_threads(reader, writer, dropper); + let io_threads = make_io_threads(reader, writer); (writer_sender, reader_receiver, io_threads) } diff --git a/lib/lsp-server/src/stdio.rs b/lib/lsp-server/src/stdio.rs index 711c4e9907..d14d8ee55d 100644 --- a/lib/lsp-server/src/stdio.rs +++ b/lib/lsp-server/src/stdio.rs @@ -3,41 +3,35 @@ use std::{ thread, }; -use log::debug; +use log::{debug, trace}; -use crossbeam_channel::{Receiver, Sender, bounded}; +use crossbeam_channel::{Receiver, Sender, bounded, unbounded}; use crate::Message; - /// Creates an LSP connection via stdio. -pub(crate) fn stdio_transport( +pub fn stdio_transport( mut read_from: impl Read + std::io::BufRead + Sync + Send + 'static, mut write_to: impl Write + Sync + Send + 'static, ) -> (Sender<Message>, Receiver<Message>, IoThreads) { - let (drop_sender, drop_receiver) = bounded::<Message>(0); - let (writer_sender, writer_receiver) = bounded::<Message>(0); + let (writer_sender, writer_receiver) = unbounded::<Message>(); let writer = thread::Builder::new() - .name("LspServerWriter".to_owned()) + .name("send to lsp".to_owned()) .spawn(move || { - writer_receiver.into_iter().try_for_each(|it| { - let result = it.write(&mut write_to); - let _ = drop_sender.send(it); + loop { + let it = writer_receiver.recv().unwrap(); + trace!("sent message {it:#?}"); + let result = it.write(&mut write_to).unwrap(); result - }) + } }) .unwrap(); - let dropper = thread::Builder::new() - .name("LspMessageDropper".to_owned()) - .spawn(move || drop_receiver.into_iter().for_each(drop)) - .unwrap(); let (reader_sender, reader_receiver) = bounded::<Message>(0); let reader: thread::JoinHandle<Result<(), io::Error>> = thread::Builder::new() - .name("LspServerReader".to_owned()) + .name("read from lsp".to_owned()) .spawn(move || { while let Some(msg) = Message::read(&mut read_from)? { let is_exit = matches!(&msg, Message::Notification(n) if n.is_exit()); - - debug!("sending message {msg:#?}"); + trace!("received message {msg:#?}"); if let Err(e) = reader_sender.send(msg) { return Err(io::Error::other(e)); } @@ -49,7 +43,7 @@ pub(crate) fn stdio_transport( Ok(()) }) .unwrap(); - let threads = IoThreads { reader, writer, dropper }; + let threads = IoThreads { reader, writer }; (writer_sender, reader_receiver, threads) } @@ -57,15 +51,13 @@ pub(crate) fn stdio_transport( pub(crate) fn make_io_threads( reader: thread::JoinHandle<io::Result<()>>, writer: thread::JoinHandle<io::Result<()>>, - dropper: thread::JoinHandle<()>, ) -> IoThreads { - IoThreads { reader, writer, dropper } + IoThreads { reader, writer } } pub struct IoThreads { - reader: thread::JoinHandle<io::Result<()>>, - writer: thread::JoinHandle<io::Result<()>>, - dropper: thread::JoinHandle<()>, + pub reader: thread::JoinHandle<io::Result<()>>, + pub writer: thread::JoinHandle<io::Result<()>>, } impl IoThreads { @@ -74,12 +66,6 @@ impl IoThreads { Ok(r) => r?, Err(err) => std::panic::panic_any(err), } - match self.dropper.join() { - Ok(_) => (), - Err(err) => { - std::panic::panic_any(err); - } - } match self.writer.join() { Ok(r) => r, Err(err) => { diff --git a/lib/smol_str/src/lib.rs b/lib/smol_str/src/lib.rs index c592cb25d2..22f4274fdc 100644 --- a/lib/smol_str/src/lib.rs +++ b/lib/smol_str/src/lib.rs @@ -1,3 +1,4 @@ +#![feature(deref_pure_trait)] #![cfg_attr(not(feature = "std"), no_std)] #![cfg_attr(docsrs, feature(doc_cfg))] #![debugger_visualizer(gdb_script_file = "gdb_smolstr_printer.py")] @@ -12,6 +13,7 @@ use core::{ fmt, hash, iter, mem, ops, str::FromStr, }; +use std::ops::DerefPure; /// A `SmolStr` is a string type that has the following properties: /// @@ -33,6 +35,8 @@ use core::{ /// `WS`: A string of 32 newlines followed by 128 spaces. pub struct SmolStr(Repr); +unsafe impl DerefPure for SmolStr {} + impl SmolStr { /// The maximum byte length of a string that can be stored inline /// without heap allocation. |