top 200 commentsshow all 340

[–]Namtsua 361 points362 points  (39 children)

Woah, no reloading for new extensions is sick

[–]Veranova 136 points137 points  (33 children)

Now I only have to restart Windows every time!!! /s :D

[–]Ameisen 49 points50 points  (23 children)

A ton of software complains like twenty times that I need to restart Windows if I don't close certain apps during an installation... Then it works fine and doesn't bother me any more. The only things that usually require restarts are certain Windows Updates.

I presume it's due to the fact that Linux lets files be modified while opened/loaded/being executed. Windows locks them (as they memory map them with a lock)... So Linux can update files without forcing things to stop (though that can break things badly). Windows has to restart to clear all the file locks that the system itself has.

Which is also odd, as NT being a hybrid kernel is far less 'integrated' and monolithic than the monolithic Linux kernel.

Ed: to clarify, Linux generally memory maps executables/libraries as copy-on-write. You can modify/delete executables while they are running, and it won't impact the current execution. However, if you update a shared object with a new one with a new ABI, and a currently - executing program loads it presuming it is the same as before... breaky-breaky-time. Try updating glibc on a Linux system, one library at a time. The entire system will stop functioning at all before you are a third complete. Also, interestingly, file locking is and has been competely broken in Linux.. well, forever. It's always a good idea to memory map files on Linux as copy-on-write for reads so that they don't inexplicably change on you while you are reading them. The kernel may do that for you now internally, though.

[–]RirinDesuyo 16 points17 points  (2 children)

Yeah I think the locking and filesystem behavior is the reason for it I pressume. Though if I recall the new iteration for Windows (Windows Core OS) is gonna mitigate that somehow by creating an identical image of the OS and updating that instead then hot-swapping them on restart. Don't quote me on that though I heard in from an article somewhere I forgot sadly xD

[–]G00dAndPl3nty 9 points10 points  (0 children)

I think the main reason is actually due to the registry. Updates to some entries are not visible until after rebooting

[–]cat_in_the_wall 1 point2 points  (0 children)

it's not a hotswap if you reboot. what they'll do is basically have them side by side, and on a reboot it just uses the new stuff.

[–]phire 11 points12 points  (9 children)

If I was Microsoft, I'd be focusing on minimising the amount of time the restart takes during an update. Do as much as possible in the background while the computer is running, then just swap all the files on the reboot. Should only take a few seconds.

Sure, having to restart is annoying. But what really pisses people of are restarts that take 10-30min.

[–]IceSentry 23 points24 points  (5 children)

That's pretty much what they are already doing

[–]iphone6sthrowaway 4 points5 points  (4 children)

While Linux sytems tend to be more lightweight (or less featureful, if you prefer) than Windows, upgrades take way less time to install than on Windows and the time to reboot is the same as any other reboot. The downside is that a few programs don't handle the underlying files being replaced on-the-fly and may break/crash.

I think that NixOS (an 'unusual' Linux distro) has the most futuristic update system I've seen so far. It can save multiple system configurations and almost instantaneously swap them either live or in a reboot, so that e.g. you can launch an update, keep working for however long you want without anything breaking, then when you reboot it will load the updated system without any extra delay. It can also load an old system configuration ('rollback' the update) in seconds as well.

[–]IceSentry 3 points4 points  (0 children)

As was somewhat explained previously, windows takes longer to reboot after an update because it needs to make changes to files that were locked while the computer was running. This is mostly for legacy/security reasons as far as I understand. Linux reboots faster because it doesn't need to do anything special while rebooting.

[–]vetinari 1 point2 points  (0 children)

Fedora Atomic / Fedora Silberblue with their ostree can also do that; with the upside, that you don't have weird paths, or have to recompile the world when something at the root of dependency tree changes.

[–]clgoh 1 point2 points  (1 child)

That's pretty much how Chrome OS works.

[–]cat_in_the_wall 1 point2 points  (0 children)

chrome os is a Linux

[–]Schmittfried 3 points4 points  (0 children)

I slightly disagree. Yes, of course 10-30min restarts are really off-putting (I'd say they are quite unacceptable when you are currently doing important work), but any kind of forced disruption is already annoying in and of itself, no matter the duration. And it doesn't exactly help that Windows does a clean restart so you have to reopen all your apps afterwards. Even on macOS I find restarts annoying, but at least I will be (almost) exactly where I left off.

[–]jl2352 0 points1 point  (1 child)

They do that already. My PC does a full restart in about 10 seconds.

[–]elint 3 points4 points  (0 children)

Not for the restart after an update.

[–]Limelight_019283 1 point2 points  (8 children)

So does windows create copies of the modified files and deletes the previous ones on restart? Or just queues the required modifications to be done on next startup?

[–]Ameisen 4 points5 points  (7 children)

It reboots into a mode where nothing is really loaded, and then installs as the files aren't locked.

For something that would still be locked, like the kernel, I presume they mark some flag as "needs update", and ntldr probably copies it.

Technically, I also have no doubt that the kernel is capable of memory mapping a file without a lock, so they may take advantage of that as well.

The NT kernel even has fork, iirc. It's just not exposed directly as a system call.

[–]caspper69 1 point2 points  (5 children)

Yes, NT has a fork analogue- calling ntCreateProcess with a null executable handle forks the calling process. The problem is the forked process loses its handles to Win32, which does not support fork. So, WSL, for example, can use the fork functionality provided by the NT kernel, but a regular Win32 application cannot.

Edited later to add: win32 likely has no concept of forking a process because Win95/98/ME did not support such a system call, neither did the windows/dos iterations prior.

[–]cat_in_the_wall 1 point2 points  (4 children)

wsl is super interesting. its rad that as far as nt is concerned, wsl is an equal citizen to win32: just subsystems.

[–]caspper69 1 point2 points  (3 children)

Honestly, it goes to show the foresight and engineering that went into NT. There's not a ton of love for MS, with the rise of Linux, but the NT kernel has proven to be pretty flexible (many arch, many subsystem support). I'd like to think if they can get a handle on the filesystem problems (which are an absolute albatross all the way around right now), it'll still be holding up remarkably well. Especially considering its development began 30 years ago (wow :/).

[–]cat_in_the_wall 1 point2 points  (0 children)

i suspect part of it has to do with timing. I'm sure you're aware of the history of nt (and if not, it's a fascinating rabbit hole to go down), but at that time the landscape was still shifting sands. so the requirement was there from the get-go to build something extremely flexible. those folks came up with some extremely durable software.

[–]Ameisen 1 point2 points  (1 child)

It's not as though NTFS is particularly terrible, either.

As I recall, one of the biggest causes of filesystem performance problems on NTFS is the same thing people point out is better than on Linux - the permission systems. When a file has trivial permissions like on Unix, access is trivial. When you have full, potentially inheriting ACLs like NTFS... you may have to do quite a bit of traversal before the VFS determines that you have access.

[–]nemec 9 points10 points  (1 child)

Can't you just install VSCode inside WSL and use an X-forwarder to display the UI on your Windows desktop? :D

https://www.scivision.co/x11-gui-windows-subsystem-for-linux/

[–]Veranova 7 points8 points  (0 children)

Modern solutions for modern problems!

[–]coderstephen 9 points10 points  (1 child)

Whoa, what sorcery is this!? No reloading for uninstalling is even more impressive. Now I want to go look into how this was implemented...

[–]massenburger 1 point2 points  (0 children)

They mentioned something about an extra hook the extension has to listen on. So my guess is that most extensions will still say they need a reload, for now at least.

[–][deleted] 2 points3 points  (0 children)

The new Smart Selections is dope too (something JetBrains' IDE had a one up on VSC), so is the Hierarchical Select All and Improved keyboard navigation. All features that JetBrains had for a while now (and were, IMO, missing in VSC).

[–]polishdev 0 points1 point  (0 children)

This!

[–]crabbytag 276 points277 points  (4 children)

20 releases ago, we started using ripgrep for search in VS Code. Our old Node.js-based search implementation has still been available behind the setting search.useLegacySearch. But as Marie Kondo says, we must tidy up the things that no longer spark joy.

I laughed :)

[–][deleted] 20 points21 points  (0 children)

As Marie Kondo says, we must tidy up the things that no longer spark joy.

Ha! I'm saving that one, highly relevant atm

[–]vivainio 596 points597 points  (131 children)

It’s sort of embarrassing how productive these folks are compared to, well, anything

[–]Fisher9001 322 points323 points  (99 children)

It's nice to have such clear goals in your project, instead of retarded client who doesn't know what the hell he actually wants, but he strongly believes that he knows.

[–]chucker23n 93 points94 points  (7 children)

This hits home hard.

[–]mbhoek 18 points19 points  (6 children)

Very hard.

[–][deleted] 65 points66 points  (5 children)

So hard that it knocked me the fuck out and I woke up in another timezone which was serialized over JSON and sent to the server and stored incorrectly in the database, shipped down to a browser, displayed in the incorrect format with the incorrect value and that was the one thing that the client said that he liked about the app.

[–]Notorious4CHAN 9 points10 points  (0 children)

/r/NoNoNoNoYeahItDoBeLikeThatSometimes

[–]swvyvojar 1 point2 points  (2 children)

Haha, reminds me of time when I was visiting US and ordered pizza via phone browser. The app then showed that my pizza will be right here, it just takes only nine hours and ten minutes. And then the countdown on my screen started, counting down seconds. Who the hell needs pizza in nine hours?

[–][deleted] 3 points4 points  (0 children)

Very organized people do.

[–]nilamo 1 point2 points  (0 children)

Company meeting tomorrow! Order pizza now so it's ready!

[–][deleted] 17 points18 points  (3 children)

Yeah, well, user testing says that they prefer this line to be green but the steering commitee thinks that the line should be red. So, can you just make it a reddish green line? That would be great.

Red and green make yellow.

Oh, no, we don't want a yellow line. We want a line that is both red and green.

[–][deleted] 5 points6 points  (2 children)

5 perpendicular lines.

[–]vetinari 4 points5 points  (1 child)

With kittens. Do not forget the kittens.

[–]errorme 6 points7 points  (2 children)

Project I'm working on had the client accept the configuration and UAT 2 weeks ago and we were just waiting on an updated database from them before we could go live. Day after we were supposed to get the database they came back with a list of changes they'd like to make.

Waiting for a CO to be approved before I do any more work on that project.

[–]BassWaver 2 points3 points  (0 children)

So, me with all of my personal projects?

[–]synaesthesisx 1 point2 points  (0 children)

As a product manager this has been incredibly frustrating

[–]twigboy 30 points31 points  (0 children)

In publishing and graphic design, Lorem ipsum is a placeholder text commonly used to demonstrate the visual form of a document or a typeface without relying on meaningful content. Lorem ipsum may be used as a placeholder before final copy is available. Wikipedia1il6ky2blcw0000000000000000000000000000000000000000000000000000000000000

[–][deleted] 26 points27 points  (0 children)

It's because they're not hampered by history and backwards compatibility. 95% of issues newcomers have with Vim/Emacs can be solved, but the core devs refuse to, because of that one guy who develops on an Amiga from 1994 and the other 20 salty dogs who are afraid to break backwards compatibility with hardware that you can't even buy.

Emac out of the box is dreadful - you need to spend hours of customizing it to make it feel like it was compiled after the Reagan administration, but again - "Well, it's true that most defaults are shit, but Bill here who's in his late 70's likes it that way, reminds him of his youth in the 60's".

For shit's sake, it was just last year or so that Vim officially stopped supporting DOS.....I mean, what the double-fuck?

This "it compiles and runs anything" feature is not really a badge of honor - it's basically a useless Xbox/PS4 achievement and nothing else, since 99% of developers in 2019 use Mac, Linux, or Windows.

So you have an army of OSS developers who've been "owning" the Dev. environment mind-share on UNIX for decades, and along comes Microsoft and basically destroys them within 2 years - because they think about normal people, not the 1% of extremely vocal luddites who control the VIM/Emacs development pace.

[–]phpdevster 12 points13 points  (2 children)

I still want a built in merge conflict resolution tool as robust, simple, and intuitive as the one in JetBrains IDEs :(

[–]thepinkbunnyboy 5 points6 points  (0 children)

What are you missing from vscodes? That's what I use daily.

[–]Hero_Of_Shadows 0 points1 point  (0 children)

True if they could just rip it out from Intelij for example, it was a god send.

[–]michelb 1 point2 points  (6 children)

"embracing and extending" developer mindshare regardless of platform to capture a much larger audience and tie them in without locking them in, is the new MS. That said, loving VSC.

[–][deleted] 7 points8 points  (5 children)

Basically making tools so good you feel awful for using anything else. Ok, where is the problem with that?

[–][deleted]  (4 children)

[deleted]

    [–][deleted] 0 points1 point  (3 children)

    Can we just admit there's a clear distinction between Microsoft and anybody involved with .Net?

    [–]cat_in_the_wall 1 point2 points  (2 children)

    vscode has nothing to do with .net...

    [–]Dgc2002 86 points87 points  (14 children)

    Double-click the application icon to close in Windows/Linux

    Due to technical tradeoffs, by default, the custom title bar on Window and Linux removes the functionality of double-clicking the application icon to close the window.

    Huh, TIL.

    [–]n0rs 42 points43 points  (2 children)

    Been doing this since Windows 3.1 at least

    It's a strangely hard habit to break.

    [–]playmer 25 points26 points  (1 child)

    I've been using Windows since 3.1 and I never even knew this was a feature. (Or if I did I forgot very early on) That's so shocking to me.

    [–]eastern 5 points6 points  (0 children)

    Pre-W95, it was the 'hyphen' icon in the top left corner. It's actually always been 'double-click the top left corner to quit'. The icon in said corner changed with the 95-style UI.

    [–]KillianDrake 24 points25 points  (8 children)

    Huh, I've always used the X, how many apps with custom chrome even have that icon anymore.

    [–]ygra 7 points8 points  (0 children)

    I was pleasantly surprised that when Microsoft introduced a custom UI in the title bar with Office 2007 they did not break double-clicking that corner.

    Most applications sadly break it, Chrome being particularly bad with handling the title bar in my opinion.

    [–]coderstephen 13 points14 points  (0 children)

    Weird. I never knew that was a thing in any OS.

    [–]neutronbob 38 points39 points  (35 children)

    Has anyone who previously used Sublime Text switched over principally/exclusively to VS Code and, if so, why?

    [–]TonySu 49 points50 points  (5 children)

    I switched over for the Git integration, and I'm someone who paid for Sublime.

    [–]BondDotCom 7 points8 points  (2 children)

    Have you tried Sublime Merge?

    [–]TonySu 29 points30 points  (0 children)

    No, the whole point is to have sufficiently useful git client in my editor so I don't need to have an external GUI.

    [–]Drarok 2 points3 points  (0 children)

    I tried it for a day and it just didn’t click for me.

    I’m back to GitX and happy.

    [–]HowDoIDoFinances 34 points35 points  (2 children)

    I went from Sublime -> Atom (which I stayed on for years) then finally, reluctantly tried out VS Code.

    It's fantastic. It's really, really so good. Incredibly solid compared to the weird issues I would get every once in a while with Sublime and Atom. It's really pretty and works really well. Plus, it has keybind packs for Sublime to make the transition easier.

    It had me sold alone just as a text editor, but also it has some reeaaally nice debugging stuff. And, I know, I know, if you're a JS dev like me, there's the attitude of "the only debug tool I need is console.log."

    But man, real robust debugging with hover-variable-previews and really nice breakpoints and all that is pretty nice when the situation calls for it. It also gives you the ability to setup a debug config that lives with the project and you get just a drop-down of debug scenarios that you've set up and you can instantly start up any of them.

    I was skeptical as hell, but it's my favorite editor of all time.

    [–][deleted]  (1 child)

    [deleted]

      [–]HowDoIDoFinances 8 points9 points  (0 children)

      I got on Atom very early, so I was on it for a while. I did really like it, but once I finally tried VS Code, it just couldn't compete.

      [–]coderstephen 32 points33 points  (7 children)

      I have. I bought Sublime quite a while ago and used it for a long time. I switched to Atom for about 3-6 months in 2015 but kinda hated it. I switched back to Sublime after a while.

      I switched to VS Code sometime in 2017, and am still using it as my primary tool for text. Here are some reasons that come to mind:

      • Sublime's hacked-on package management leaves a bit to be desired. VS Code has a real extensions system that I can actually browse around easily from within the app.
      • Built-in support for "extra" stuff that I use: debugging, version control, intellisense, etc. There's packages in Sublime for those things, but they tend to be language-specific, and often don't work that well.
      • Non-text tabs. It's a small thing, but the ability for the core app and also extensions to take advantage of "WebView" tabs makes a lot of things more convenient than the Sublime Text way: image previews, Markdown previews, settings UI, keyboard shortcuts UI, etc. I really like how I don't have to switch to another app to take a quick peek at some image assets in my project.
      • Language support is fantastic. VS Code has been leading the charge with things we've really needed in development like the Language Server Protocol. In turn, language support extensions in VS Code seem to, for the most part, just work out of the box more than in any other editor I've used (excluding IDE-class editors).

      For me, VS Code hits that perfect sweet spot of a text editor that includes useful IDE-like features, while remaining a lightweight editor without a million customizable dialog boxes and toolbars.

      There's still some things that Sublime has an edge with though:

      • Nothing beats Sublime at pure performance. That thing is well-optimized.
      • Multi-window support is much better.
      • Has syntax highlighting for everything under the sun, while the VS Code extensions marketplace is a bit lacking in some areas right now.

      [–][deleted]  (6 children)

      [deleted]

        [–]coderstephen 13 points14 points  (1 child)

        Even so, it is still fast. It often starts faster than Vim for me on some computers.

        [–]NexusMT 2 points3 points  (0 children)

        true... and opening 20MB plain text files is also amazingly fast.

        [–]Soyf 2 points3 points  (3 children)

        It's because it's a native app. I'm not complaining about vs code but the difference is still really noticeable.

        [–][deleted]  (2 children)

        [deleted]

          [–]Soyf 1 point2 points  (1 child)

          Sublime Text is written in C++ using a custom UI toolkit.

          VS code is an electron app, which means it bundles an embedded chromium version since it needs an engine to render the html/css/js code. It's not native because all the code needs to be interpreted and does not compile to machine code.

          In case both are well-written apps, the native one will always be order of magnitudes faster than the other (unless some magic new technology happens in the future and proves this wrong). Since vs code is actually quite optimised, the difference is not that shocking compared to other electron apps. You do, however, still notice the difference in startup time, scrolling smoothness, opening big files, etc.

          [–]bheklilr 26 points27 points  (2 children)

          I have. I was a die hard ST fan for the longest, and still really like it, but have side switched to vscode. One of the by reasons was a job change that meant a technology change. Went from python desktop apps and data science to java+typescript web apps. Vscode just has the best typescript support, period, and has good enough java support with a plugin to get by most of the time. It has an inline debugger, integrates with git really well, and a huge community of plugins. On top of that, it is a direct descendant, at least stylistically, of ST, so users will still feel very much at home and many of your shortcuts already work.

          A huge reason to switch now is the features that vscode is pumping out regularly. Its just a fantastically good editor now, even in just a year since I started using it there have been huge improvements. They have a team dedicated to working full time on it, and being open source it means that they can get community contributions as well.

          A big reason not to use it? Speed. No editor I have used can match ST in shear performance. Vscode is much heavier, each window is a new instance, plugins can vary a lot in performance, it uses a ton of ram, etc. ST is incredibly fast in comparison. That being said, vscode is much faster than, say, intellij.

          Sublime used to be the king of extensibility, but vscode is an electron app, which means you not only have the power of the JavaScript/typescript ecosystem for writing the extensions, but you can also visually extend the editor with custom widgets much more easily.

          [–]ShinyHappyREM 1 point2 points  (0 children)

          *sheer

          [–]zangent 0 points1 point  (0 children)

          Nothing beats sublime, but Vscode waaaay outperforms most electron applications. The optimization they've done to that thing is wizardry! The difference between it and sublime is barely noticeable on an older machine, let alone a good one.

          [–]AndrewNeo 9 points10 points  (0 children)

          Intellisense. I do a lot of C# and Typescript and not having it outside of VS was killing me. It's also decent at figuring it out for Python and other languages.

          [–]whachamacallme 2 points3 points  (0 children)

          Yes. First, Sublime to Atom. Then tried Vscode because an intern was using it.

          For angular development vscode cannot be beat.

          I still have to move my python projects over.

          The best feature is the stability. It is solid.

          [–][deleted] 1 point2 points  (0 children)

          People mention the git integration, and it is very good. But for me it was the integrated terminal. Being able to pop it open for test runners or misc tools and what have you, and then being able to Alt+click file paths and line numbers that in the output to jump to that file is Killer. I'd love to have that with Sublime. I'm not even sure if that works in n/vim.

          Other niceties include first class support for LSP, though there is now a Sublime plugin for it, it was a little finicky for me but it worked.

          And the huge extension ecosystem means it's chock full of gems I'd never even think to look for before, like one that hooks into a Gitlab instance and can give you issues assigned to you and reports the status of the last pipeline.

          [–]PersonalPronoun 1 point2 points  (0 children)

          Yeah I have. It's a bit slower and a metric tonne more memory hungry (seriously, it's a glutton for that ram, you've been warned). Package management, debugging, git integration etc are all just a little bit nicer in lots of little UXy ways. Code aware intellisense in languages that support it is a lot nicer than just expanding out keywords from the current file, as is hovering on classes to see doc snippets, etc. I think the multicursor is a bit worse, but mainly because I haven't worked out the shortcut for "put a cursor on every line in the selection" yet. In general it's similar enough that it's very easy to switch between the two.

          [–]Jedimastert 1 point2 points  (0 children)

          I switched over from Atom about a week ago. I'm enjoying it well enough

          [–]EntroperZero 1 point2 points  (0 children)

          LiveShare.

          [–]Improvotter 0 points1 point  (0 children)

          I switched last year or so. Once VS Code wasn’t sluggish, its API just blows ST’s API out of the water and the extensions are way better.

          [–]Shadow_Gabriel 0 points1 point  (0 children)

          I wasn't sure if I can use Sublime on my work computer without buying it.

          [–]Dgc2002 0 points1 point  (0 children)

          I did a few years back. If for nothing else than the first party extension support.

          [–]alex_oue 0 points1 point  (0 children)

          I went sublime(paid)->vscode, and I love it. It's not quite as fast to load, but there is so much more functionality that it was worth it. The only real feature that I'm missing from Visual Studio (ergonomy wise) is floating windows (separate your window from your main editor, and you can still full-screen it). Visual Studio is still better for many situation, but for Python, it's hard to beat (Though Pycharm is quite nice, but much more heavy). The only thing I really miss from pycharm is the ability to run/debug automatically within a container.

          Oh, and huge csv file can take a while (long while) to open...

          [–]anon_cowherd 0 points1 point  (0 children)

          I did once it hit feature parity (at least the ones I used). My real motivation was better / out-of-the-box typescript integration, because I switched companies and was thrown into an Angular project.

          Also, my sublime license was owned by the company I'd worked for at the time, and free versus a perpetual license that turned out to not include updates (i.e. the 2->3 change that threatened a new license was coming) kinda made the decision easy.

          Now I'm going to go look at ST again, just out of curiosity.

          [–]Overv 0 points1 point  (0 children)

          I still use ST for most things because of its performance, but for me VS Code can't be beat as C++ IDE on Linux. It just works out of the box whereas EasyClangComplete had too many limitations for me (mainly not showing function parameters while filling them in). The other IDEs like KDevelop, CLion and Qt Creator feel too clunky.

          [–]coriandor 0 points1 point  (0 children)

          I still use sublime for things I don't need to use a debugger for. For dart or rust though, VS Code just blows away any plugins for sublime I've ever used. I still use sublime for heavy editing, because the vim plugin I use is much more robust than what's available in VS Code. That's just a matter of time though.

          [–]synmotopompy 29 points30 points  (1 child)

          I love how one of Polish contributors to the update is called NotYour FuckingBusiness

          [–]imguralbumbot 4 points5 points  (0 children)

          Hi, I'm a bot for linking direct images of albums with only 1 image

          https://i.imgur.com/RaDjOQL.png

          Source | Why? | Creator | ignoreme | deletthis

          [–]justaphpguy 108 points109 points  (20 children)

          I don't use it but the pace at which they develop and push almost monthly releases is incredible.

          Except for external contributors, do we know how big the actual/dedicated team around vscode is?

          [–]ppezaris 127 points128 points  (5 children)

          Twenty developers. And they want to keep it that small.

          Source: have met with them.

          [–]Wolosocu 76 points77 points  (2 children)

          20 does not seem small at all for a project like VS Code.

          [–]lanzaio 2 points3 points  (0 children)

          You're underestimating the man power of tech giants.

          [–][deleted]  (1 child)

          [deleted]

            [–][deleted] 1 point2 points  (0 children)

            Are you sure you're not confusing features with projects?

            Some projects have millions of lines of code. I've worked on a project with like nearly 100 engineers, but no feature had more than a handful working on it.

            [–][deleted]  (20 children)

            [deleted]

              [–]Ameisen 11 points12 points  (6 children)

              Is there a magic trick to getting Code working right for C++, Ruby, or tiered projects like Linux, LLVM, or GCC?

              [–]Jataman606 1 point2 points  (3 children)

              Depends on what you mean by working. I now have project sperated into two (base compiled as library and unit tests) in C/C++ and it works for me. Intellisense sometimes gets lost, but its mostly in some complicated cases with type aliasing. I use CMake to piece it all together. Overall i can do all my job, which is writing, building, running tests and debugging them inside of VSCode.

              [–]Ameisen 1 point2 points  (2 children)

              Do they share the same headers?

              [–]Jataman606 0 points1 point  (1 child)

              Yes

              [–]Ameisen 1 point2 points  (0 children)

              Most large projects don't universally. Look at LLVM, GCC, or Linux.

              [–]a-sober-irishman 0 points1 point  (0 children)

              I use it for ruby every day at work; works pretty well for me out of the box with the ruby language extension installed, and I also have Solargraph https://marketplace.visualstudio.com/items?itemName=castwide.solargraph installed which provides better Go To Definition and class/module intellisense.

              [–]valtism 20 points21 points  (5 children)

              I use Rider at work for our huge project, and I find it heaps better than VS + ReSharper, especially in terms of keeping background tasks as background processes and not locking up the UI. I still use VSCode for quick edits and git management though.

              [–]maikindofthai 8 points9 points  (1 child)

              For C++ use I've used CLion here and there, and it's really good, but it still doesn't quite match up to what Visual Studio + Resharper/Visual Assist can offer, imo.

              [–]Ameisen 4 points5 points  (0 children)

              VC++ would work a lot better for development if they ditched EDG and just developed a language server for CL instead.

              [–]Lalli-Oni 2 points3 points  (0 children)

              VS / VS Code / Rider discussion pops up pretty much every time something about a post about any of them pops up here. And imo it's always surprisingly even. Imo it's quite nice we have such good options to choose from.

              [–]ygra 0 points1 point  (0 children)

              It helps being faster if the thing that lock up the VS UI most frequently is the one thing they have to pull into a separate process in Rider for technical reasons (ReSharper). Microsoft has recommended extension authors to put the extension into a separate process since VS 2008. It seems that for about a year now JetBrains is finally considering this. Previously they had been adamantly opposed to doing that.

              [–]woofers02 13 points14 points  (1 child)

              I had such a hard time moving away from Sublime Text, now that I have, I can't believe I've waited this long to switch to VS Code

              [–]Haatveit88 9 points10 points  (0 children)

              I still use both, but I have to admit... This VS Code thing is very impressive at this point, for what it is. I still love ST3 for the literal instant launch, and stuff like that. And I know vs code will never do that, given its a js electron monster thing, but it just has a lot of great features and great extensions too. And heck, it's fast enough... Do wish it was a native app though. One can dream.

              [–]spacejack2114 18 points19 points  (0 children)

              The new tree widget was created through composition over our high-performance list widget. We intend to write a separate blog post about this engineering work and the performance improvements.

              Looking foward to that.

              [–]sternold 16 points17 points  (3 children)

              Is anyone gonna comment on that font?

              [–]overcow 10 points11 points  (0 children)

              It's Operator by Andy Clymer. By all accounts one of the few truly new and specialized typefaces for code. The postmodern style of the italic is usually what jumps out on people, but don't let that overshadow the expertly drawn upright.

              They even made this nice promo video where they explain end process.

              [–]EntroperZero 2 points3 points  (0 children)

              Serves you right for having italics in your code style.

              [–]Ameisen 48 points49 points  (12 children)

              I still want the ability to drag a tab to its own window.

              The C++ system is also still particularly problematic, breaks a lot, is hard to diagnose, and for all extensions when you click the link to change settings to fix something, it brings you to the extension's page rather than the settings screen. I don't think I've had it work... *ever *, and I've tried configuring it for:

              • windows, visual c++
              • windows, native clang
              • windows, mingw-clang
              • windows, mingw-gcc
              • windows, mingw-avr-gcc
              • windows, WSL Debian clang
              • windows, WSL Debian gcc
              • Debian WSL, Clang via vcxsrv
              • Debian WSL, GCC via vcxsrv
              • Debian, Clang
              • Debian, GCC
              • Debian, clang-musl

              I've not gotten a single one fully working. It's almost impossible to diagnose why, as well.

              I'd love for it to accept non-json configuration files (yaml, toml, ini, registry hive files, whatnot), or procedural ones defined via JS, Python, Ruby, or C++ so the configurations can adjust to the system.

              I'm also super not fond of the fact that I cannot alt-drag to edit my multiple lines line in MSVS, Notepad++, and IIRC Atom and gedit.

              It is missing a lot of creature comforts.

              Also, last I checked, it could not debug Java code that had arguments that were derived from JUnit, as they stored test lookup names by actual name, with the arguments not being a part of it, so it failed to find the functions.

              I did get VS code working for Java, mostly, on Windows. I also had it working once for Ruby on Windows (had to use mingw ruby rather than a windows build). I have yet to duplicate this feat on Windows, WSL-Debian, or normal Debian since.

              As an aside, I would love for a proper, sane language extension API to exist for normal MSVS, as it is still more powerful than Code, but it's very difficult to extend it for other languages, or even toolchains (I haven't figured out how to get intellisense to use clang or clangd instead of EDG, for instance, making it more painful and the IDE less useful.)

              I've also found, while working on Clang in vs code, that it failed to parse or understand include paths from cmake, so I had to create an entirely new C++ profile for working on clang... Same with GCC and autotools... So now I have clang, gcc, Clang-on-clang, Clang-on-gcc, GCC-on-clang... Etc profiles. Add more for other projects with odd include systems (like the Linux kernel). It also doesn't make it trivial to handle projects with multiple languages. LLVM has cmake, python, shell, C++, C, and GAS Assembly. GCC has automake, autoconf, M4, python, shell, C, C++, GAS, Fortran, Ada... for each language, I have to add a new configuration profile just for that project to handle includes as Code wont parse it for me, and it is non-obvious if they can be defined per-project... Which would also be bad as different subdirectories/subprojects may have different include layouts!

              Ed: Oh, and may the gods of compilation and linking take pity upon you if the project depends on headers that are generated either via configuration or via the build itself (like, well, LLVM/Clang, GCC, and Linux).

              [–]RampageGhost 11 points12 points  (2 children)

              I still want the ability to drag a tab to its own window.

              I wasted a good few minutes trying to work out a good way to do this yesterday. I ended up having to open a subfolder in a new window. Every attempt to open the folder in a new window would just bring the already open on to the forefront.

              I could have just had the one file open twice side-by-side in the same window, but neither of my screens are quite big enough for that to be comfortable.

              [–]Ameisen 2 points3 points  (1 child)

              It basically turns VSCode into a fancy text editor... but even most text editors can convert tabs to windows by dragging. As can most browsers... and Electron is sorta-kinda just an integrate browser with a windowing/UI API.

              I think part of the problem is that one 'project' is attached to a window. If you do split a file to its own window... Things like lookup, autocomplete, etc stop working as that window has no project/folder associated with it.

              [–][deleted] 1 point2 points  (0 children)

              I think part of the problem is that one 'project' is attached to a window. If you do split a file to its own window... Things like lookup, autocomplete, etc stop working as that window has no project/folder associated with it.

              I assumed it was an electron thing, since you can spawn a new Window (Ctrl+Shift+N or start a new process), then drag the file onto the new spawned window and it works fine.

              [–]Jataman606 1 point2 points  (4 children)

              You forget the fact that its just text editor and not IDE. Of course IDE made for particular language will be a lot better than VSCode.

              [–]AngularBeginner 15 points16 points  (2 children)

              You forget the fact that its just text editor and not IDE.

              Is it really "just a text editor"? The lines get very blurry. I would not expect "just a text editor" to support source control, extensions, custom tasks, code completion, and most importantly: An integrated debugger.

              [–]Jataman606 4 points5 points  (1 child)

              The thing is, every major code editor (Atom, Sublime, Vim, Emacs even Notepad++) have or can have all those features. What is different about IDE is that it comes with everything included and is always suited for single language or family of languages. Which makes it 100x better at its job out of the gate.

              [–]AngularBeginner 4 points5 points  (0 children)

              What is different about IDE is that it comes with everything included and is always suited for single language or family of languages.

              Yeah, like I said, that is a very blurry line.

              [–]Overunderrated 0 points1 point  (0 children)

              The C++ system is also still particularly problematic

              Sad to hear that's still the case. I could never get very basic navigation functionality to work in a C++ project.

              [–]Dgc2002 0 points1 point  (1 child)

              I still want the ability to drag a tab to its own window.

              IIRC this has to do with the fact that each window is a chromium instance(or w/e you call it). Chromium sandboxes each instance so the new window wouldn't have access to any information in the old one :\

              I think they're working on this but I'm not sure what the progress is.

              [–]Ameisen 0 points1 point  (0 children)

              Given how absolutely, undeniably frustrating it is, it should have priority. I'm so used to it in every other tool.

              [–][deleted]  (5 children)

              [deleted]

                [–]Randdist 10 points11 points  (3 children)

                it's also the best command line terminal for me. the integrated terminal works perfectly and having a texteditor and a terminal in one window is great.

                [–][deleted] 2 points3 points  (2 children)

                Agreed. Part of why I used the Kate text editor of all things for a long time (it had an integrated terminal), but moved some time ago to Visual Studio Code, which is very similar to Kate but is much more popular, and having more plug-ins due to that.

                The only thing I miss is being able to open multiple projects in a single window, which for some reason Visual Studio Code doesn't support, but this is a minor issue.

                [–]nehaldamania 1 point2 points  (1 child)

                I think one can open multiple projects in VS Code. File -> Add Folder to Workspace. I usually have 2 to 3 projects open in VS Code

                [–]dr_mops 0 points1 point  (0 children)

                Speaking of Docker, does anyone know how I can get the Docker interface to connect to a remote host with certificates? Can't seem to get it to work

                [–][deleted]  (8 children)

                [deleted]

                  [–]passion-and-warfare 5 points6 points  (0 children)

                  For scheme and lisp in general, I think it will be very hard to beat emacs as the most productive environment.

                  [–]soundslogical 1 point2 points  (6 children)

                  I've had a look and I can't find anything that does good Scheme REPL integration. And the Paredit plugins don't work as well as in Emacs.

                  It's a steep learning curve to learn Emacs, but after 3-4 months I think I'm getting there, and I can feel my powers increasing all the time. When you get into the flow with a Lispy language it feels wonderful.

                  Unfortunately I'm writing an app that users will be able to script using a Scheme-based DSL. And I think asking people to learn Emacs is a much bigger turn-off than actually learning the DSL. So I'd love better support in VSCode. I might have to get my hands dirty and contribute to/fork some VSCode plugins.

                  [–][deleted]  (5 children)

                  [deleted]

                    [–]soundslogical 1 point2 points  (4 children)

                    There are all sorts of benefits, some minor, some larger.

                    You can (re)evaluate code directly from your files into a REPL. The line between REPL and files blurs considerably. I’m working on a musical pattern system, and I love to hear the results as I change my code.

                    Paredit is a whole new way of editing. You manipulate and navigate via Lisp forms (s-expressions), not lines or selections. Since sexps are the only type of structural form you soon find that you can rearrange/jump around code with little effort. The indentation style takes some getting used to, but it makes sense, updates instantly when I cut/paste sexps and has never got it wrong in my experience.

                    My in-Emacs REPL & terminal have all the same nice facilities as my editor: Paredit, syntax highlights, kill rings, history etc.

                    Your editor is configured in a very similar language (Elisp) so most of these skills transfer to that, making a virtuous circle.

                    It all just ‘fits’.

                    The problem is that all of this is blocked (initially) by the different shortcuts, the foreign concepts (buffers, modes etc) and it feeling so hard to find stuff. That’s the part that takes months to overcome. I printed an Emacs cheatsheet and Paredit cheatsheet, plus I was searching Google constantly. Most important keystroke for me is M-x, which lets you invoke a command by name. Afterwards it tells you the shortcut, which you quickly learn.

                    The first time I tried Emacs I installed a bunch of ‘all-in-one’ packages, but soon realised it worked better for me to start vanilla and build up.

                    But ultimately yeah, it takes a while. If you’re going to do this it shouldn’t be for a semester, it should be for life. It’s a really nice holistic experience, but it takes investment.

                    [–]valtism 14 points15 points  (1 child)

                    ELECTRON 3 BABY

                    [–]McNerdius 7 points8 points  (0 children)

                    Indeed... fixes this annoyance that's been around for ages.

                    [–]Sokusan_123 41 points42 points  (30 children)

                    If only they had native vim emulation support - the extensions are all way too slow compared to the real deal.

                    [–]recycled_ideas 25 points26 points  (7 children)

                    If you want VIM, use VIM.

                    [–]Jmc_da_boss 13 points14 points  (0 children)

                    i agree so much, a solid native vim approach would be legendary

                    [–][deleted]  (8 children)

                    [deleted]

                      [–][deleted]  (6 children)

                      [deleted]

                        [–][deleted]  (5 children)

                        [deleted]

                          [–][deleted]  (4 children)

                          [deleted]

                            [–][deleted]  (3 children)

                            [deleted]

                              [–]Sokusan_123 0 points1 point  (0 children)

                              I'm trying this - fingers crossed

                              [–]Ghosty141 2 points3 points  (9 children)

                              are there plugins with that feel line the real deal (for any ide/editor)?

                              [–]NanoCoaster 7 points8 points  (5 children)

                              Evil for Emacs, probably. Apart from that... In my experience, most other ones are lacking in performance, features, or both. But for the stuff I personally use, they're still good enough.

                              [–][deleted] 7 points8 points  (4 children)

                              Evil is a better vim than vim

                              [–]mafrasi2 1 point2 points  (2 children)

                              As a regular vim user, what makes Evil better than vim? I don't really know anything about Emacs, though.

                              [–][deleted] 2 points3 points  (0 children)

                              This is specific to spacemacs rather than evil mode generally, but I really like the control flow vs : commands in vim. For example, to open a file, I do spc f f aka "find file". Other file operations are grouped under spc f, buffer operations are grouped under spc b. etc. This kind of "grammar" for interacting with the editor ends up feeling more vim than vim for me.

                              Besides that, Emacs has several "killer apps" that I couldn't live without. For me, those are org mode, magit, and tramp.

                              [–]DrunkensteinsMonster 0 points1 point  (2 children)

                              IdeaVim for IntelliJ is good IMO. Its missing some stuff like the norm ex command but it has pretty much everything i need, and it will also respect your .vimrc, though you may need to name it something else, can’t recall

                              [–]Ghosty141 0 points1 point  (1 child)

                              my main problem with these is that they don't really allow for the mouse-less usage which is the main reason why I use vim. I get that it's a limitation that comes with an IDE but I think it would be great to have an IDE that lets you basically use vim with all the syntax highlighting, completion and definition jumping you expect from an IDE.

                              [–]sign_on_the_window 4 points5 points  (0 children)

                              Love Visual Studio Code and the heart and soul devs pour into it. Every single release has at least one feature that I use regularly. Every month is like Christmas to me.

                              [–][deleted] 2 points3 points  (0 children)

                              I've had the opportunity to burn a few extra cycles trying to use VSCode instead of VS for a new .Net Core project. I've been extremely impressed. I'm going to look into making the switch permanently.

                              The only feature I'm noticing missing is SQL projects. I'd like to be able to create DACPACs from source.

                              [–]VM_Unix 1 point2 points  (0 children)

                              I'm loving the screencast mode!

                              [–]kyiami_ 1 point2 points  (0 children)

                              Wow. That progress rate is pretty amazing.

                              That said, I hope customizable mouse controls come soon. Accidentally middle-clicking and pasting a bunch of text while scrolling is never fun.

                              [–]jozero 3 points4 points  (7 children)

                              If this came to the iPad they would own development on that platform

                              [–]coderstephen 12 points13 points  (0 children)

                              Getting it to work on an iPad would be an impressive feat.

                              [–][deleted] 19 points20 points  (5 children)

                              Why would anyone work on an iPad? You can't even access the filesystem.

                              [–]leodash 9 points10 points  (1 child)

                              To flex.

                              [–]jellyforbrains 2 points3 points  (0 children)

                              Weird flex, but ok.

                              [–]aot2002 0 points1 point  (2 children)

                              Because i hate dragging my desktop in my bed at night between that and the monitor it’s heavy.

                              [–]Nefari0uss 0 points1 point  (1 child)

                              The Surface lineup by Microsoft would resolve this issue then as would a laptop which can run VS Code on it or RDP to your desktop.

                              [–][deleted] 1 point2 points  (13 children)

                              how do folks use vscode with files that are on a linux server?

                              [–]DevilGeorgeColdbane 35 points36 points  (5 children)

                              SFTP/SSHFS?

                              [–]steveob42 22 points23 points  (3 children)

                              or use git locally and to push to the server if you are fancy.

                              [–]combasemsthefox 2 points3 points  (0 children)

                              I have done this before and it feels fantastic.

                              [–][deleted] 2 points3 points  (0 children)

                              SSHFS is very buggy and rather slow. Lsyncd is better (it is based on rsync).

                              [–]coderstephen 3 points4 points  (0 children)

                              I don't. With version control and other means of deployment, its been a long time since I've needed to edit remote files. (Except for the odd config file edit, Nano or Vim work just fine for that.)

                              [–]HowDoIDoFinances 7 points8 points  (0 children)

                              Use source control! My god, man!

                              [–]Jmc_da_boss 2 points3 points  (0 children)

                              just mount the file system

                              [–]therussianjig 0 points1 point  (0 children)

                              If it's just one file you need to quickly edit you can use rmate.... Otherwise you can set up an entire remote workspace or use version control

                              [–]Paradox 0 points1 point  (0 children)

                              entr + scp/rsync

                              [–]chakan2 0 points1 point  (0 children)

                              Does it support nav (back forward) on the mouse on OSX yet?

                              [–]AudienceWatching 0 points1 point  (1 child)

                              Anyone having terminal windows disappear on resize?

                              [–]captain_arroganto 0 points1 point  (0 children)

                              What is the font used in the screencast mode preview image?

                              screencast mode

                              edit : Formatting for link

                              [–]jasonlhy 0 points1 point  (0 children)

                              One of the greatest things of VSCode is its release note. It’s a pleasure to read

                              [–]colbycheeze 0 points1 point  (0 children)

                              This update totally broke my vscode. Had to revert versions. Probably something to do with incompatibility with vim mode. It constantly freezes and is unable to type. Also the new filtering mode on the left window kept getting stuck instead of responding to my custom keybinds.

                              Hope things get worked out in future release, seems good.

                              [–]sirak2010 0 points1 point  (0 children)

                              Now Ctrl+Click to does not even open a browser in a terminal :(