Excited to announce that I'll be working on @zed.dev starting today!
04.08.2025 10:38 — 👍 50 🔁 0 💬 4 📌 0@lukaswirth.dev.bsky.social
Rust Engineer at @zed.dev rust-analyzer team lead
Excited to announce that I'll be working on @zed.dev starting today!
04.08.2025 10:38 — 👍 50 🔁 0 💬 4 📌 0Woah congrats!
29.07.2025 19:33 — 👍 3 🔁 0 💬 0 📌 0New blog post: I am a Rust compiler engineer looking for a new job
nnethercote.github.io/2025/07/18/l...
Howdy all. I'm unfortunately not going to be with my employer for much longer due to team relocation. If anyone has any info on roles that would allow me to continue my Rust compiler work (in New York City), they'd be greatly appreciated.
02.07.2025 17:31 — 👍 91 🔁 45 💬 2 📌 1It seems like we can mostly ignore those new bounds and thing should just work™ again but we'll see
25.06.2025 11:49 — 👍 4 🔁 0 💬 0 📌 0Rust 1.89 contains the sized hierarchy changes which turns out completely break rust-analyzer's type inference 😩
Our metrics dipped quite badly when beta was bumped yesterday rust-analyzer.github.io/metrics/?sta...
Sized hierarchy OR: github.com/rust-lang/ru...
> However, are there problems with a proc-macro returning more than one item?
That is also just fine, derives are not even required to output a trait impl. It's just convention as that was what they initially were meant for. Nowadays its more just a macro kind that cannot change its input.
Note that `const _` is exemtp from the non-local lint, as its currently the only way to generate code without polluting the surrounding scope due to the lack of stable declaration site hygiene. So the first one is be preferred if you don't want to leak generated code out of its scope.
22.06.2025 10:52 — 👍 2 🔁 0 💬 1 📌 0hey, lukas and i gave a talk about salsa in rust-analyzer and i think it’s a good time; check it out
16.06.2025 14:08 — 👍 50 🔁 10 💬 2 📌 1A photo of the book building a debugger
Whew this is bigger than expected
13.06.2025 13:20 — 👍 8 🔁 0 💬 0 📌 0Is there a cargo plugin that goes through your codebase and lints on any visibility qualifier that could be shrinked in scope? 🤔
That is if there is some definition `pub(crate) thing` but that is only ever used in the module itself I want something that tells me, "This `pub(crate)` can be omitted"
if it takes a long time to do, can you really call it "prompt" engineering
11.06.2025 16:58 — 👍 162 🔁 7 💬 13 📌 1Discovered riichi mahjong yesterday and I absolutely love it, super interesting game (while also being super frustrating due to its luck component)
09.06.2025 17:30 — 👍 1 🔁 0 💬 0 📌 0Only took me one and a half years of bouldering to get my first finger injury let's go. Fortunately in a way that I can still use my finger, just gotta take a break from bouldering it seems :(
09.06.2025 12:16 — 👍 10 🔁 0 💬 1 📌 0Currently doing a rebase with a ton of conflicts in it and I am once again tempted to change the import granularity in rust-analyzer to per item (that is one item per import per line).
Doesn't help that this rebase is across an edition bump which apparently changed rustfmt formatting for imports...
Finally fixed rust-analyzer not carrying over `#[cfg(..)]` attributes when inserting imports into the file github.com/rust-lang/ru...
29.05.2025 12:45 — 👍 21 🔁 0 💬 0 📌 0rust-analyzer emulates this for the `extract to variable` assist by making the edit and then triggering the client to trigger a rename request. This does unfortunately need client side glue, so its not quite what you are after (do let me know if you figure something out :) github.com/rust-lang/ru...
01.05.2025 20:17 — 👍 1 🔁 0 💬 1 📌 1The string literals span is being re-used for things, so we just show all the things with the strings span on hover which can be non-string tokens in the expansion. We merely have a heuristic that tries to sort these results according to what you hovered initially which doesn't do anything here
29.04.2025 16:32 — 👍 2 🔁 0 💬 0 📌 0A screenshot of a VSCode hoverbox from hovering the string literal in `#[serde(skip_serializing_if = "Option::is_none")]`
why does this still work lol. I guess I didn't remove it, I just changed our heuristics to no longer special case string literals.
29.04.2025 14:26 — 👍 5 🔁 0 💬 1 📌 0wait what, we still do that? I thought for sure I removed that lol
29.04.2025 14:04 — 👍 4 🔁 0 💬 1 📌 0Fyi, `simplify-parents` usually removes most (if not all) merge commits (if you haven't used that). Really nice to turn a PR history linear jj-vcs.github.io/jj/latest/cl...
28.04.2025 09:28 — 👍 11 🔁 0 💬 2 📌 0Selecting all tiles was in fact not correct
26.04.2025 19:04 — 👍 8 🔁 1 💬 0 📌 0A tile clicking image base captcha with 4x4 tiles. The entire image is one giant bus and the captcha asks to select all tiles with buses.
I just got an amazing captcha
26.04.2025 19:03 — 👍 12 🔁 1 💬 1 📌 0Github honestly is the worst tool to review PRs with, I hate it so much especially for bigger diffs
25.04.2025 09:49 — 👍 10 🔁 0 💬 0 📌 0Yeeee don't do that
24.04.2025 08:04 — 👍 1 🔁 0 💬 1 📌 0Screenshot showing the pull request tab of rust-lang/rust-analyzer with 30 open PRs
I've been neglecting reviews on rust-analyzer for too long again it seems 😩
22.04.2025 13:16 — 👍 38 🔁 0 💬 1 📌 0Is this guy one?
22.04.2025 07:15 — 👍 4 🔁 0 💬 1 📌 0So apparently I developed insomnia last night, perfect timing given there is 5 day weekend here now ugh
17.04.2025 23:23 — 👍 6 🔁 0 💬 1 📌 0Gotta make sure this succeeds :^) (syn / serde is ruining compile times in r-a)
10.04.2025 11:46 — 👍 7 🔁 0 💬 0 📌 0