4 ms·
It has a terminal, debugger, completion, git/source control clients, refactoring tools (more or less depending on the language, obviously), extensions... At wha
by folkrav 4y ago
It 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 4y 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 4y 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 4y agoBy this definition neovim is an ide just because it has native support for treesitter. Yet I don't think it is one
- kuschku 4y 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?