Code completion often assumes that there's nothing after the cursor.
For example, when I'm writing CSS:
padding-b|: 10px;
I should still get completion for `padding-bottom`. This is a hard problem, but I've seen few IDEs handle this well.
miniblog.
Related Posts
Interesting @lambda_conf talk showing how Dialyzer ('discrepancy analyzer') offers gradual typing for Erlang and Elixir: https://youtu.be/FXCMiQWnWu0
It's a neat type system: it uses 'success typing', (it assumes you're correct) and exotic features like ranges and non-empty lists!
Whilst I've seen many teams use monorepos successfully, it assumes that there's a common contribution process for everyone.
A PL community needs to have different projects with different processes, and that requires packaging tooling. I wonder what the size upper bound is.
Git is rather timid with merge conflicts. If you change two adjacent lines, it assumes they conflict! https://softwareengineering.stackexchange.com/questions/194788/why-doesnt-git-merge-adjacent-lines-without-conflict
In my experience they don't, and it causes problems when library imports change at the top of the file. Interestingly, Subversion happily merges.