4 ms·
Bolting 200 things to a bicycle doesn't make it a truck, and no amount of addons can turn VS Code into an IDE. The I means Integrated, and VS Code with plugins
by kuschku 5y ago
Bolting 200 things to a bicycle doesn't make it a truck, and no amount of addons can turn VS Code into an IDE. The I means Integrated, and VS Code with plugins and LSPs is anything but.
- folkrav 5y agoIt has a terminal, debugger, completion, git/source control clients, refactoring tools (more or less depending on the language, obviously), extensions... At what point does it become integrated enough? It's not a bicycle to begin with, it's a small car.
- kuschku 5y agoIt becomes integrated when the tool internally works on an AST of a language and not on a textual buffer. That’s what makes it an IDE, that the basic text editing features and the compiler are both integrated. This allows significantly more functionality than any type of LSP + editor ever can. The refactoring functionality is what makes an IDE into an IDE. I use every single feature of IntelliJ every day, and I actually would prefer even more refactoring functionality. LSPs can’t come close to this. LSPs can compete with classic Visual Studio, but there’s a reason JetBrains started with ReSharper, replacing the refactoring engine of Visual Studio.
- folkrav 5y ago> That’s what makes it an IDE, that the basic text editing features and the compiler are both integrated. Rather arbitrary distinction that doesn't even hold true for all IDEs out there.
- saturn_vk 5y agoBy this definition neovim is an ide just because it has native support for treesitter. Yet I don't think it is one
- kuschku 5y agoCan you operate on AST elements? e.g., if you move a selected line of text up/down, does it move the text itself or does it move the underlying AST elements and adapt the text to the changed AST? Can you select a function and drag and drop it into a different file or class and have the code automatically adapt, add/remove parameters, imports, etc as needed? If you have two functions called doA, in different modules, and you have a file that imports doA from module 1, and you copy that doA call and paste it in a new file, does the IDE correctly add the import as well, or does it just paste the text and you have to import manually?