VS Code has one as far as I am aware uniquely-implemented feature -- remote editing -- which is absolutely invaluable to me as a freelancer with many long-term, infrequently-updated projects.
Lots of separate VM dev environments with different editor configuration and tool requirements, and more or less only SSH config and keys to connect me to them, from whichever machine I need to.
It's the only Microsoft thing I use at the moment. I don't even have a github account.
To be that one guy, Emacs has had remote editing (without even needing to install anything on the remote server, unlike vscode) for forever with tramp mode. But other, more accessible/modern editors having it is definitely nice because it's such a handy feature
But the VSC approach allows me to customise the tool environment within the remote extension, including going as far as using different SCSS processors and language servers, but is managed through essentially exactly the same interface as the local.
(It's also inherently multi-user; changes are reflected in each machine connected to the remote, which makes it really easy to move from a work to a home machine, or a desktop to a coffee-shop laptop.)
This is what I meant by uniquely-implemented. I often find that the most visceral critics of VSC or adherents of "natively implemented" code editors haven't the slightest awareness of this feature.
Still -- thank you for your comment, it gives me one more thing to investigate for those times when tools fail me.
Much as I love Emacs I do mostly use VSC these days, and I do tend to forget the extent of what remote editing capabilities it provides since I haven't had much reason to use them in a while.
I was thinking more of all the other times this has come up in the past and I have to say, "you understand it's not just a text editor with network access?"
It has pretty much unique capabilities, and as another commenter has said, it's even remarkably agnostic as to the _kind_ of remote container. For example you can run the editor on Windows with the remote as WSL, and it really blurs the boundaries between them in a way that cannot possibly be a coincidence for Microsoft.
With VS Code, I can develop across Windows, Docker, Linux, Linux running on WSL, and macOS with zero configuration aside from setting up SSH connection configs and installing the remote extensions with a button click. All the extensions work seemlessly when remoting. My settings also automatically sync by just signing into GitHub.
With Devcontainers, I don't need anything to develop except Docker and VS Code. I simply pull down a repository, open it in VS Code, and then VS Code sets up a container with all dependencies and configuration.
No, Emacs does not have this experience.
And I don't know the technical reasons why VS Code installs on the remote server, but I think it's important to note that you're not just editing remotely but developing remotely.
(Embarrassed cough)
So, er, I didn’t need to install MacOS Fuse, mount an SSH-FS folder and then use VS Code to open my remote code for editing then?
Thanks for sharing. At least I’ll know next time! :-)
> it's amazing and great that more people are finally using this methodology
Okay. (Emphasis mine.)
We get it. Emacs is awesome and has been around a while. But not everybody started with it when there were no other competing tools, but now there are competing tools.
I do all my development on remote supercomputers and the ability to remotely debug multi-process Python and C++ applications running inside containers across many servers made me love vscode.
I think it’s reasonable to not hold hours or even days of setup and learning against a product I’d use in this fashion. Even a tiny 1% productivity benefit obtained after configuration and learning earns me about 2.5 dev days worth of benefit every year. And if I expect to use the tool for a decade that’s almost a month.
I don't want to install a new tool and be told I need to dump hours and days into it when another dev tool just does it where I can get on with doing what I want to do. This is exactly why I went to VS Code from Emacs.
Even though I primarily use WebStorm, when I’m working with people on a contract gig, I frequently use Live Share as a pairing tool whether to help debug something or just for training/mentoring.
I’m talking about the remote dev environments. Editing inside VMs, inside WSL, inside Docker containers or via SSH to remote machines, where the editing environment runs seamlessly on the remote, can have extensions, can do version control, run language servers etc.
https://code.visualstudio.com/docs/remote/remote-overview
Basically a part of the editor is running remotely, and yet can be managed as if it were local (e.g. an extension can be installed locally or into the remote). So your code is operated on entirely by the remote.
It is, as far as I am aware, unique in its scope.
If you just need those two things there's plenty of options - why are you forcing yourself into vscode ? VSCode is great because of the plugin ecosystem - if that's not your thing use something else - there's plenty of alternatives.
I also dislike Chrome and any chrome based reskin. I appreciate Firefox and even Safari. Specially Safari for the same reasons the average JavaScript Stan hates it: it’s keeping the web from implementing the latest usb-over-browser crap or wathever the-chrome-consortion (google) comes up with. Safari on iOS is the only thing that keeps “best viewed on Chrome” from happening in current year.
Those are personal opinions though.