JetBrains are in a great position to do this though, perhaps the best position. Whereas a tool like Claude Code or Aider can give the LLM grep and little else [1], Junie can give the LLM a kind of textual API to the IDE's own static analysis database. If Claude/GPT want to understand what a function is doing and how it's used, it could issue a tool call that brings up nicely rendered API docs and nothing else, it could issue a tool call to navigate into it and read just the function body and so on. And they can use the IDE to check whether the code complies with the language rules more or less instantly without needing to do a full compile to pick up on hallucinated APIs or syntax errors.
So much potential with this kind of integration, all that stuff is barely the start.
[1] Aider attempts to build a "repo map" using a PageRank over symbols extracted by tree-sitter, but it never worked well for me.