often frowned upon<p>Previously I said local single-line code completion is the acceptable level of "AI" assistance for me and that JetBrains one was somewhat useful, only wrong half of the time, and easy to ignore when it is.</p><p>I've changed my mind.</p><p>See, I code primarily in TypeScript and Rust. Both of these languages have tooling that's really good at static analysis. I mean, in case of TS, static analysis <em>is</em> the whole product. It's slow, it requires a bunch of manual effort, but holy hell does it make life easier in the long run. Yes, it does take a whole minute to "compile" code to literally same code but with some bits removed. But it detects so many stupid mistakes as it does so, every day, it's amazing. Anyway, not the point.</p><p>The other thing modern statically-typed languages have is editor integration. You know, the first letter in IDE. This means that, as you are typing your code and completions pop up, those completions are provided by the same code that makes sure your code is correct.</p><p>Which means they are never wrong. Not "rarely". Not "except in edge cases". Zero percent of the time wrong.</p><p>If I type a dot and start typing "thing" and see "doThing(A, B)", I know this is what I was looking for. I might ctrl-click it and read the docs to make sure, but I know "doThing" exists and it takes two arguments and i can put it in and maybe even run the code and see what it does. <strong>This is the coding assistance we actually need.</strong> Exact answers, where available.</p><p>So, since I've enabled LLM completion a few months ago, I've noticed a couple of things. One: it's mostly useful when I'm doing some really basic boilerplate stuff. But if I wrote it often enough, I could find ways to automate that specific thing. It <em>feels</em> like this is saving me time, but it's probably seconds on a day.</p><p>Two: I am not used to code completion being wrong. Like, I see a suggestion, I accept it mentally <em>before</em> I accept it in the dropdown. I'm committed to going there and thinking about next steps.</p><p>And then it turns red because "doThing" is not, in fact, a method that exists.</p><p>And I stop working and go write this post because I forgot what I was even doing in the first place already.</p><p>I'm turning that shit off.</p><p><a href="https://loud.computer/tags/AI" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>AI</span></a> <a href="https://loud.computer/tags/LLM" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>LLM</span></a> <a href="https://loud.computer/tags/VibeCoding" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>VibeCoding</span></a> <a href="https://loud.computer/tags/CoPilot" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CoPilot</span></a> <a href="https://loud.computer/tags/JetBrains" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>JetBrains</span></a></p>