5 ms·
The more I learn about how VSCode works the more it seems like it's held together with duct tape and the most cursed ideas a JS developer could come up with. E
by opliko 2y ago
The more I learn about how VSCode works the more it seems like it's held together with duct tape and the most cursed ideas a JS developer could come up with.
Even just from the SSH extension - the workspace URIs have two formats: essentially just the hostname and hex-encoded JSON documents. The latter case happens when additional info is needed, e.g. specific username, or... The hostname includes an uppercase letter.
Which is actually necessary because when they're saved to recent workspaces they're lowercased for whatever reason.
The SSH connections also support configuring extensions that are to be installed on the server, but don't go too crazy with it or you won't be able to connect to Windows hosts, since they're passing them ass command line arguments via CMD, which has a 8191 character limit (they're using CMD to call... PowerShell...).
- fujinghg 2y agoIt’s shit and string. Gone back to vim.
- bayindirh 2y agoGive Eclipse a go?
- johnisgood 2y agoIs it not written in Java?
- bayindirh 2y agoYes. However, today's Eclipse is only similar in appearance to its former self (I'm using it since 2002). Has its own JRE bundled, and uses that one if you don't have any JRE installed. Has a stable release every three months. Starts in 5 seconds, uses ~600MB of RAM (less than VSCode!), and works very snappy. Supports web development, C/C++, Python, remote execution and much more. Plus it has the best Git integration I have seen ever (incl. GitTower + Kaleidoscope). In C/C++ land integrates directly with debuggers, Valgrind, etc. The trick is, it didn't get bloated or heavier over the years, the contrary, and draws circles around everything in its class. Plus it has modern amenities like LSP support, synchronization between installations, etc. Oh, and you can migrate it with two small XML files. Preferences and software configuration.
- johnisgood 2y agoThis does sound nice. I used Eclipse a bit 4 years ago for Java, and I switched to IntelliJ and found it to be much more usable and feature-rich, however. I don't know how much has changed since then, though.
- mdaniel 2y agoI admit that I haven't tried Eclipse in forever (since I'm firmly a JetBrains fan) but your comment prompted me to at least kick the tires on it again After navigating to https://www.eclipse.org/downloads/ https://www.eclipse.org/downloads/ choosing the big Download button, and but then after launching Eclipse Installer it asks me if I want Java, Enterprise Java, C++, Embedded C++, PHP, or a bunch of inside baseball stuff. I typed python in the search bar and it laughed at me. Based solely upon the description, it seems that one would have to use PHP for "web development" Since I wasn't able to try out its Python support, I figured web development was the next best experiment. After a bunch of Next buttons, I created a .ts file, right clicked and chose Run. It opened a error dialog saying an "Internal error" had occurred. Only by diving into the details did I find "Cannot invoke java.io.File.getParentFile() because tsConfigFile is null" But, no problem, I'll just commit this file and work on that later. Oh, wait, how do I commit the file again? There's no "Git" in the context menu. Hmm, typing git in the Help > Search offers "Show in Git Repositories", which has "Create a new local Git repository" Excellent, click that. It now offers a completely different path than the "workspace" that it asked me to pick when starting. So it's going to create a repo outside of where the files are? That's weird. But, I'm a sport. All that machinery and still no "Commit" anywhere to be found, even in Help > Search I am not saying all of this because I think that you are Eclipse tech support, I'm saying that their DX is still stuck in 2002 so I'm glad it works for you but it absolutely does not hold a candle to modern IDEs
- bayindirh 2y agoEclipse is a platform, not a set of IDEs you have to install differently. What you have downloaded and installed is a “starting point”. My installation has all the functionality in a single installation. Eclipse has two ways to install more features marketplace and “install new software”. Both are integrated to every Eclipse package you download. Python is provided by PyDev under marketplace. Eclipse handles VCS globally and puts every VCS to their own folders. VCS features are tucked under “Team” menu. “Share Project” is what you want. When you share a project it’s moved to its VCS folder, that’s true, but the project doesn’t disappear from your workspace view. You continue working from the same point. Git management has its own view (called a perspective), reachable from top right. This perspective allows to manage any git repository regardless of they are your projects or not. Eclipse has a different workflow than other tools, but I don’t find it backwards (I use BBEdit, KATE, Git Tower and countless others), every tool has a different take and that’s OK. If you import a project from git directly, Eclipse works the way you expect. If you still want to discover Eclipse, I can support you. If you don’t, there are no hard feelings. It’s a tool which has its own ways (like Vim, EMacs, XCode and VSCode and others). This doesn’t make it backwards, but different.
- Vaslo 2y agoAlmost no one using VS Code can use vim.
- notyourwork 2y agoI use both and also IntelliJ. Why are you trying to talk down to people based on the tools they use?
- tomrod 2y agoI use both all the time. VSCode is fine for a lot of reasons, vi is ubiquitous on servers. https://xkcd.com/1053/ https://xkcd.com/1053/
- Nab443 2y agoGold ! They can use emacs then.
- dunham 2y agoI regularly use vim in the embedded terminal of vscode. (And I use vim when ssh'd in from my phone.)
- joe91 2y agoMost of us have learned <esc>:q by now. And then apt-get remove vim :)
- wiseowise 2y agoI can't use VS Code without vim bindings.
- aidenn0 2y agoI do not personally no anybody using VS Code that hasn't also used vim. Granted there's some huge selection bias since so many people in my personal sphere use vim, but there you go.
- giantg2 2y agoI don't know, I found VS Code to be nicer than Eclipse. I've never had a need for SSH through an IDE, so I can't speak to that. Usually I'd just SSH through putty and use Vi if I need to do stuff on the server.
- nickstinemates 2y agoThis is for remote dev, where the code you're editing exists on a remote environment vs. Local to your disk.
- smitelli 2y agoI like sshfs for that. It preserves the “do one thing, do it well” idea that so many IDEs seem to have forgotten.
- larsnystrom 2y agoBut vscode doesn’t just let you edit files on the remote, it runs everything on the remote: extensions, terminal commands, etc. If you’re working on a web project, it forwards ports so you can still visit localhost in your browser, even though your dev server is running on the remote host.
- drchickensalad 2y agoYeah it's like fully virtualized to run the same familiar environment completely on a local machine. It's not even remotely comparable. Extremely necessary in many cases like thin clients for machine learning
- foobiekr 2y agosshfs doesn't work for things where you're developing for linux and working on macos - run the code, run the debugger, step, etc. I don't use IDEs at all and work on sshfs almost exclusively, but I totally understand where people are coming from and the difference between editing files and running code.
- dataviz1000 2y ago> The more I learn about how VSCode works ...... duct tape The most unfortunate few lines. [0] I wish Microsoft would hire me for a couple months to do nothing but sit in a corner by myself untangling this mess. [0] https://github.com/microsoft/vscode/blob/6dbde2a3ed308f88164c5f58cefe2efbf84299dc/src/vs/platform/remote/common/remoteAgentConnection.ts#L228 https://github.com/microsoft/vscode/blob/6dbde2a3ed308f88164...
- catlifeonmars 2y agoI like it because it’s really easy to extend the editor with custom language support/tooling if you know JavaScript/Typescript. Providing custom completions, diagnostics, etcetera. I can also provide custom Go to definitions for cross-language support.