We want to update you on the state of the Visual Studio Code for Unity package.
This plugin was a result of one of our hackweek experiments by a few of our former employees. Unfortunately, it’s never been fully functional and hasn’t received any updates for almost two years, bringing you an unstable coding experience. We want to be open with you about its state so that you know what to expect.
The scripting team has huge projects in the works with a significant impact for a majority of our users (like modernization of .NET and iteration time) and we believe that being clear on what’s on the to-do list and what isn’t will help us focus on them.
That’s why we’ll be removing the Visual Studio Code for Unity package from the list of packages that will be enabled for new projects by default.
If you’re using VSCode, and you’ve experienced quality issues, we recommend that you switch to using an IDE that Microsoft is helping us provide support for, such as from Visual Studio Community. There are also multiple other alternatives, such as JetBrains Rider.
Please notice that we’re not preventing anyone from using VS Code in their projects if they prefer it, the existing plugin will continue to work. Also the plugin is available under the very permissive MIT license that allows to fork the project and create derivative works, so an open source alternative could emerge from the community.
We will post updates here as we progress with the plan to officially end support for the Visual Studio Code plugin.
Been trying to migrate from VS Code for past month. It’s going OK but I cannot find a good replacement for Code’s deeper referencing functionality. This exists in VS Community (CodeLens), but it only shows references for types and functions. I’ve also tried Rider’s “Usages” but it’s clunkier, at least to me.
I made a quick example below. You can see Code has deeper referencing (my arrows on the left):
Erm, VSCode had never been good for Unity. From my own experience, I had problems with it constantly; code completion not triggering, code highlighting randomly not working, can’t go into definition of method, can’t decompile source from another solution etc.
I tried using Rider and it’s night & day difference. I’ve never looked back. Everything just ‘works’ and it also teaches me some nice c# patterns too.
For your use case. There is no reference count that will be shown above variable in Rider that I know of. But I just press ctr+b to find all usages. Having the ref count shown automatically is nice but it’s not good enough to regard VSCode as ‘best’ IDE for Unity.
We have been using VSCode for the past 5 years without any issue. Our whole workflow is mostly based on it. We have even developed extensions for helping us. So I admit I’m not pleased with this decision. Clearly.
But I suppose we are in a very small bubble and cannot expect support of another IDE for a small audience.
VSCode is a wonderful tool that helps us work with the same environment on all of our working stations (Windows + macOS) on all of ours projects, either with Nodejs, TypeScript, PHP or C#. And it is so lightweight. I am not looking forward using Rider or Visual Studio for Mac.
I’m also a happy user of VSCode with Unity. It’s not very easy to set up and get started (I guess this thread explains why) but once it’s running, it’s working very well. I tried to switch to Rider, VS for Mac and am using VS on Windows occasionally but always stuck with VSCode.
@jiraphatK Go to definition / implementations / references has worked well for me and I prefer the implementation over Rider and VS on Windows. For decompiling, you used to have to enable it in omnisharp.json but you should now get a prompt to enable it directly in VSCode.
I guess I’m slightly comforted that the plan is “let it rot” instead of “delete everything in 2 weeks”
But I have to say, so far this announcement has been handled very poorly. And the dismissive tone in the GitHub issues (“just use Rider”) really doesn’t address your community’s concerns. A lot of us use VS Code, and we may prefer it to VS or Rider for a variety of reasons.
If the communication on GitHub had been more like this post – “we won’t prevent anyone from using VS Code” – it would feel less thoughtless of a decision than it does.
I strongly recommend updating the GitHub readmes and issues to point to this thread
I am really, really sorry to hear about this. I think it is a terrible decision.
Visual Studio Code has become the de facto editor for most devs I work with. Not only it is free, and not only it delivers, but it also, as @christopheAS mentions, has become the platform over which we develop other tools.
You are making, for cross-plaform development, a poor case for Unity, where now we need to get a license for a tool I like less that also makes Unity less of a good value (now we need to fork for a Unity license and a Rider license).
Yes, there are free editors, but we work multi-platform and, as said, have invested quite a bit on VSCode.
I do understand maintaining these things is not easy, and I get that e.g. Rider does a lot of other things, but it feels like Unity is in a position where you should be able to put a couple of people to make the VSCode integration kick mayor ass.
I have installed Rider and, a week later, have gone back to VSCode (along with most other people in the office) I will ride Unity’s VSCode tools until they completely break down. I would hope, very much, that you’ll rethink deprecating VSCode support by then.
Visual Studio Community has an infuriating bug in a smart formatter that hasn’t been fixed in ages, and is driving me completely nuts, it is bloated, plus it looks ugly as sin.
I’ve been using VS Code for years and it has been an incredibly comfortable experience. It is highly likely to become an de fact editor that is present everywhere, and dropping its support is definitely not a good idea.
It does not make sense for Unity to deprecate support of the most popular editor, assuming that Unity makes rational decisions. Sadly, the community seems to have been growing a feeling that Unity’s decisions can be quite enigmatic.
I understand that Unity does not want to prioritize supporting VSCode over other goals. Firstly, I am curious if you guys have at least estimated the effort required to value returned for each of those goals - supporting the most popular editor seems at first thought to be a good decision.
Secondly, you mention Microsoft is helping you support other IDEs. Have you tried to engage in the same kind of collaboration when it comes to VSCode? If not, why?
I’m waiting for Unity to pay for my Rider license. Until then I will have to keep using VS-Code. And before you suggest Visual Studio… There IS NO VS for Linux.
Oh, so sad. I too have been using VSCode as my de facto coding tool. And I have Rider license installed. I am not saying Rider is bad, in fact I love it and use it from time to time. It also has far stronger meta features - e.g. quality of life git features - for me.
But I have not found a replacement anywhere for “Peek” in VSCode, which has been a crucial development-flow tool for me since I started using it years ago. Rider has a similar feature, but I find VSCode’s implementation much more elegant.
I guess I will need to invest more time into using Rider now.
Also sad to hear this and encourage Unity to reconsider.
VSCode strongly aligns with Unity’s mission, “We believe the world is a better place with more creators in it”.
VSCode helps lower the barrier for beginners. It’s is open source, has a vibrant community (lot’s of great plugins), and a great UI/UX.
Although if data shows that only a small # of users are using VSCode, I can’t argue with that.
This graph is useless in light of this discussion.
It does not presents, for what language is each tool used.
It will contain huge amount of hobbyists-level input into the survey.
It doesn’t show which coding environment is used with Unity specifically.
Having that, we could see graph’s results completely different.
On other hand, Unity has capability to measure, which tools are used mostly with Unity environment.
If they have observed that relatively few professionals use code editor which brings little to no money for Unity, vs IDE which has more value to the Unity, it makes sense on their choices.
Also splitting resources over supporting multiple tools, it is not really feasible.
Just like Unity had multiple languages support in the past, dropping down to one.
Since VS Code text editor has open source plugins, let community to handle it.
It is anyway, what community apparently wanted with Unity plugins, to have source access to be able contributing.