rust-analyzer has a really cute feature "highlight related". It will highlight the enclosing loop when cursor is on `break`, or the enclosing `async` when cursor is on `await`: https://github.com/rust-analyzer/rust-analyzer/pull/9678
Difftastic now handles several of these cases (see first screenshot), but there's a bunch more to be done in this area alone!
Diffing comments is a really interesting problem.
You want word diffs when lines are sufficiently similar, but sometimes adding a word causes the comment to reflow.
Indenting a multiline comment changes its inner content, and sometimes doc comments have special syntax.
A cute feature in Pharo 9: dynamic rewriting of deprecated methods! The code and runtime are so closely integrated that you can use test execution to automatically update call sites.
Visual Studio is adding GMail-style predictive code completion, using an ML transformer model.
Unlike GitHub Copilot, it seems to focus on smaller code snippets and leverages the surrounding code context. The examples generated seem less surprising.
Some high end GPUs are being bricked by a new game: https://www.tomshardware.com/news/evga-replacing-all-dead-rtx-3090s-from-new-world
Sounds like it draws too much power, then something overheats or dies internally.
Hardware dying from software seems really old fashioned, so it's interesting to see it happen on modern components.
Refactorings like 'reorder parameters' are very hard in this model. 'Extract method' can cheat by triggering a rename immediately after.
LSP feels a little like JSON: effective, tons of polyglot support, but sometimes feels a bit limiting
I've released difftastic 0.5! It now works with arbitrary git commands, which makes it far more useful.
Parsing is improved, diffing is *way* smarter, and it's faster too! Full changelog: https://github.com/Wilfred/difftastic/blob/master/CHANGELOG.md#05
(It's also less crashy, but it still panics on binary files.)
For reference, here's the commit I'm looking at: https://github.com/Wilfred/helpful/commit/27373703625fdf86fe0f71500767802a28350b9f
My current solution (the second screenshot) is to prefer marking large whole trees as novel rather than having <10% of nodes unchanged in a largely novel list.
The XML diff literature debates between "optimal" and "fast" diffs, so I'm surprised to see that optimal isn't enough!
On the plus side, there are Rust implementations of FibonacciHeap whose API is very similar to the stdlib BinaryHeap. It's very easy to give it a try.
Programming geek, natural languages nerd, and occasional writer. he/him
Server run by the main developers of the project It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!