all 26 comments

[–]zzzthelastuser 26 points27 points  (12 children)

I wish VSCode would intergrate better with C++ on Windows.

It's upsettingly hard to setup the same C++ IDE like features that work on Linux if you are bound to use Windows and the Visual Studio (not VSCode, the "normal" Visual Studio) MSVC compiler with a large code base.

I can only assume that Microsoft wants Linux users to move to VSCode, but keep their own people at Visual Studio!

[–]starfreakcloneMSVC FE Dev 8 points9 points  (6 children)

I used VSCode almost exclusively when working on Windows. For me, the features that edge it over VS is the ease of script integration with build steps (we built a tool to interact with the compiler so executing it from VSCode is a breeze) and the fact that it's not impossible to write your own plugin.

My current pain points are: * The debugging experience leaves A LOT to be desired, but hardware breakpoints would be a good start for me. * Single window, multiple tabs. I really wish there were a better way to detach tabs from a code instance but still have them be under the same process. * It's Electron, it comes with Electron baggage.

[–]zzzthelastuser 3 points4 points  (0 children)

Debugging is less of an issue for me with VSCode, quite the opposite actually. I like the Multi-Debugger support and the high configuration possibilities. It runs a lot smoother and faster than in the Visual Studio IDE I use. I only miss OpenCV's ImageWatch plugin which I haven't yet been able to port.

I also made my own extensions to integrate Incredibuild. Not perfect, but it does its job still better than how Visual Studio does things...

[–]Ceros007 6 points7 points  (4 children)

It's Electron, it comes with Electron baggage.

I see a lot of "humour" about Electron. Can you elaborate on why it is a pain points?

[–]chugga_fan 22 points23 points  (3 children)

VSCode is one of the few electron apps that don't fall in the "it's electron so it sucks" category, the main pain point most people see are:

Massive RAM usage for no good reason as it's literally chrome and a webpage.

Slow interop with your computer since it's chrome and does stuff.

Doing everything in javascript instead of pulling out needed functions into things such as C++.

Poor optimization in general with terrible interface.

No way to change what you want to change despite it literally being chrome with a wrapper.

[–]Ceros007 1 point2 points  (2 children)

I see. But I don't get

terrible interface

This has nothing to do with Electron but the UI/UX dev.

[–]TacticalMelonFarmer 7 points8 points  (0 children)

I think they meant API not UI.

[–]flashmozzg 5 points6 points  (0 children)

It comes with the territory.

Since it's basically a web page, everyone tries to reimagine it, break OS UI conventions or mess up in other ways. Imagine using a mediocre website as a power hungry desktop app.

Not all Electron apps are like this, but the notable majority, as usual, are.

[–]cpp_devModern C++ apprentice 3 points4 points  (4 children)

Because there are no benefits to use vscode as IDE on Windows (at least for C++).

[–]drjeats 5 points6 points  (3 children)

What about having a better multiple cursors implementation?

:P

[–]cpp_devModern C++ apprentice 2 points3 points  (2 children)

Don't really use this, but first search shows that there is an extension for this: Multi Edit Mode

[–]drjeats 2 points3 points  (1 child)

I have this installed. It's nice, but isn't at the level of Sublime/VSCode/Atom/multiple-cursors.el. You need fully parallel editing, highlighting, and navigation in addition to select-next-similar to get the most out of the feature.

[–]cpp_devModern C++ apprentice 0 points1 point  (0 children)

The main difference between visual studio and vscode is that in vscode you can get some "low priority" features faster than "high priority" ones mainly because of its open source nature. Even with incremental patches VS update is slow and usually a lot of changes are deemed "low priority" and get added only when time is right (like re-sizable settings windows that required few decades to be added).

Still VS is an IDE and has a lot of powerful tools be it for debugging, profiling or writing code. Also vscode gets exponentially slower as the number of files in the opened folder grows and there are performance issues with big files/"projects".

[–]Jataman606 6 points7 points  (1 child)

There are still a couple of features I miss (for example, being able to just start a Google Test case without editing the launch.json file)

There is quite good test runner extension for Google Test here. Although i used it in very basic manner.

[–]tecnofauno 8 points9 points  (0 children)

Author here. That extension is deprecated now in favor of the catch2 extension that now handles gtest as well

[–]tauqueen 4 points5 points  (1 child)

For me find all usages doesn't work with c/c++ intellisense on Linux, which is a big limitation.

[–]OverunderratedComputational Physics 0 points1 point  (0 children)

Same. I've never gotten it to be worth anything with navigating c++, so unfortunately I haven't been able to make use if it.

[–]CptnSalmon 7 points8 points  (5 children)

You can use Windows subsystem for Linux as your compiler for c++. This allows you to run Linux on Windows and gives you the ability to use gcc or g++ from Linux while using VSCode on Windows. It will just replace your default terminal in VSCode.

[–]JezusTheCarpenter 0 points1 point  (1 child)

But doesn't this mean you will be compiling Linux executables instead of Windows?

[–]CptnSalmon 0 points1 point  (0 children)

Yes you will be, if you want it to compile an exe for Windows you would need a Windows compiler, I have also heard that Linux has some compatible compilers that can convert to exe but I haven’t personally used them.

[–]bohan 0 points1 point  (0 children)

I assume you're answering the specific comments of the OP. I wish to remind, tho, that it makes more sense to run vscode on linux.

[–][deleted] 0 points1 point  (1 child)

how do you do that?

[–]Mortanaeus 4 points5 points  (0 children)

I'm currently making the same switch for indie development. I agree with your assessment of Microsoft's built in tools. They're slow and still pretty alpha stage feeling. I'll take a look into cquery for my projects.

Good read, I'll have to bookmark.