I think you could build an interesting IDE with a tiny embedded LLM in addition to the usual tooling.
Features like 'extract method' would be much nicer if an LLM could provide a name. Choosing a good name is virtually impossible from just a typed AST.
Related Posts
Counter-intuitively, if you're writing a parser for a programming language, you need it to be a total function. As soon as you build IDE tooling, you need ASTs from invalid or incomplete input.
The parser should return (Ast, List<Error>) rather than Result<Ast, Error>.
Playing with Claude and my new programming language has made me add features that it wants. I think they're reasonable.
`for method in methods` -- custom syntax error explaining that `method` is a reserved word
`echo 'println("hello world")' | garden` -- eval snippets from stdin
`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?