Atlassian created Stride in 2017, already had Hipchat, and it's now deprecating both in favour of Slack: https://www.atlassian.com/blog/announcements/new-atlassian-slack-partnership
Consolidation is happening very quickly! It reduces the number of self-hosted options though.
Related Posts
In LSP, a position is represented as a line number and a column offset (in Unicode code units): https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#position
This is pretty elegant. You'll get the correct line regardless of encoding bugs, and the editor already knows the line number so it's cheap to compute.
Designing UIs is such a hard problem.
Sometimes I try a bunch of options and I settle on "this one seems the least annoying".
`init` feels like an unhelpful name in OO. It doesn't give you an initial value, it initialises the instance that has already been created. Developers are often surprised that init doesn't return the instance, because they have a strong association with `new Foo()`.
Perhaps `finish` would have been a less confusing name?