230 comments

[ 2.6 ms ] story [ 70.8 ms ] thread
Looks like this editor is constantly improving.

Anyone have an opinion on how this editor compares to webstorm?

Suppose I'll have to just give it a try to find out.

debugging is the best I've ever experienced. Webstorm debugging was problematic for me a year and a half ago. Visual Code has surpassed Atom by far as well, which weirdly does NOT support client side debugging for javascript (and that's a major mistake on Atom's behalf). In VSCode debugging is of course provided by 3rd party packages, but their API and rich debugging GUI seems to make it extremely easy to hook into it. In short, if you're using webpack-generated sourcemaps, VSCode is the way to go. Being able to finally debug in your actual code (rather than Chrome devtools) is a dream come true! Otherwise I love their built-in linting and git support.

Here's the chrome debugger:

https://marketplace.visualstudio.com/items?itemName=msjsdiag...

I've submitted several bug reports to its creator (a developer at Microsoft) and received prompt response as well as fixes! It lets you attach to running browser windows or launch a new one.

Next and perhaps more importantly, there's a debugger for React Native!:

https://marketplace.visualstudio.com/items?itemName=vsmobile...

And it works flawlessly, and brings along IntelliSense for React Native elements/apis, etc.

If you're a javascript developer, drop what you're doing / what you're using, and make the shift to VSCode. If you're using Atom currently, you can likely find your same themes in the VSCode extension directory, which--for me--made the shift almost seamless (the feel shares a lot in common with Atom because of its Electron roots).

Same here, but for Firefox (which I prefer for WebDev). Just switched to VSCode because it's the only editor[1] that has a working JS Debugger for it: https://github.com/hbenl/vscode-firefox-debug

[1] Though other editors might follow. Just saw that the Firefox Debugger team would be interested in integrating their new react/redux based debugger into Atom: https://twitter.com/clarkbw/status/783358566858010624

Would you say the Firefox debugger works equally well as the Chrome variant? (In terms of responsiveness, integration, overal experience). I really fancy the JS debugger of VSCode but I'd hate to drop Firefox for that.
I don't understand your question.

> Would you say the Firefox debugger works equally well as the Chrome variant?

Are you talking about the native debugger. Not sure. I only use the Chrome debugger from time to time, but mostly use the Firefox debugger. So it's ok, but since I use it all the time, I know it has its warts...

Anyway, there are completely rebuilding it using react.js at the moment: https://hacks.mozilla.org/2016/09/introducing-debugger-html/

> (In terms of responsiveness, integration, overal experience).

As said I use it (firefox and vs code) all the time as a JS developer.

> I really fancy the JS debugger of VSCode but I'd hate to drop Firefox for that.

That's the part I really do not understand. I do use Firefox (and its native devtools), and I do use VSCode plus its Firefox extension. So no reason to drop Firefox ;)

I've found vscode to be noticeably faster than webstorm and consume fewer system resources.
I tried VSCode shortly but switched back to Webstorm mostly because I couldn't find comparable refactoring/renaming options in VSCode. Also js debugging options were not as feature rich as in Webstorm.
One nitpick I have is, it's not an editor. It sure does contain an editor, but calling it just editor creates some confusion (as can be seen in the comments here). Editor should be usable to just edit files, which VS Code really isn't (starting an instance and loading the file takes ages).
I have been using VS Code as my full-time editor for a few months now and couldn't be happier. Originally I was only using it for TypeScript projects, where the language integration is top-notch, but eventually found myself using it all the time. I use the vim plugin, which is surprisingly good although it does have a few issues still.

The best thing about VS Code (and Microsoft's other big open source project, TypeScript) is the steady stream of releases. Because of the regular release cadence, small but important improvements never get blocked by some big feature that took longer than anticipated. As much as I wouldn't have believed this 10 years ago, Microsoft does open source better than almost everyone.

VS Code: developed on GitHub, written in TypeScript, great extension API, clear roadmap and regular releases. I am a very happy user.

i install every new release of vscode because i think it has the potential to become a good editor but the vim plugins are still far from good enough for me to use on a regular basis.
Hi! I'm one of the developers of VSCodeVim, and I'd really like to know about the particular pain points you're running into when you're trying to use the extension. You can tell me here or open up issues on github - https://github.com/VSCodeVim/Vim/issues - whichever you prefer.
Yes.

When they delayed the tabs I was a bit bummed, but then the next release with the tabs came so fast, I found it funny that they even mentioned delaying them.

I'm currently switching from gvim to vscode and back again every five minutes, in order to use vscode's debugger --- it's gdb integration is the best I've seen bar none [1][2]. If the vim emulation was good enough, I'd switch in a moment. Which, unfortunately, it's not, for me: the biggest omission is shift-Y/shift-P for yank and paste, which I use constantly, but there's holes everywhere.

(Also, the way the vscode's autopopup thingy grabs the escape key is really annoying, but I'm sure that's configurable.)

Two minor nitpicks:

[1] I haven't figured out how to make the debugger show a pointer as an array yet.

[2] I used to use ddd. By modern standards it's pretty rough, but it's data visualiser was unparalleled brilliance. (It allowed you to lay out structures on a canvas as boxes with arrows representing pointers.) I'd love to see that in vscode.

Damn, seriously? I'm going to be writing some C++ soon, and I'm also planning to learn gdb, so I guess VS Code it is then. Thanks for the heads up!
Which would you recommend I start with as a newcomer to the low-level debugging world - gdb or lldb? I have some experience debugging assembly in x86 real mode (yep, my class was outdated!).
I personally don't have enough direct experience with lldb to say. I've heard good things. It's on my list of stuff to try out.
I have little experience with both, but the developers of LLDB have a goal of making more informative error messages. This was successful enough that GDB devs were compelled to mimic this behavior, making their error reporting more accessible. As far as I know, LLDB still has the advantage in this regard.
You must be confusing LLDB/GDB with Clang/GCC. LLDB and GDB are debuggers, they generally do not produce many error messages. Clang has/had better error messages than GCC.
You are right; I stand corrected.
> I have some experience debugging assembly in x86 real mode (yep, my class was outdated!).

Are you kidding that is an awesome skill to have. Everyone "should" learn assembly and write a small program once.

VSCode's C++ plugin supports both gdb and lldb (at least on macOS). As for what to learn--I'd learn GDB. Pretty much every architecture on the planet has a GDB port.
Yeah GDB it is. The C++ plugin is excellent from what I've seen and the debugging UI is very pleasant to work with.
Just installed VS Code with the Vim extension and everything seems to be working pretty well for me, including yy and shift-P. I had to set "vim.useCtrlKeys": true to enable some of the keybinds that override VS Code bindings.
Yeah that's a good setting.

The parent is correct though, Y doesn't work. I thought it did, so I opened it up to check, and turns out that I didn't realize this because I tend to do Vy instead of Y.

Hi! I'm one of the core developers of VSCodeVim. Shift-Y works for me, so if you can't get it to work for some reason, could you report that here?: https://github.com/VSCodeVim/Vim/issues

If you have any other problems, please let me know. :)

Will do, and thanks for your work here. I have always wanted to try more editors, but vim plugins are (almost notoriously) full of holes, so there's always _something_ someone uses that's broken. Yours is the best I've ever come across. Seriously, thanks. Oh, and that reply to me down-thread from Tom is really heartening as well, kudos.

(I swung by the slack and mentioned the other issue I had, and have meant to open a bug about it too, I'll get on that.)

Curious, which of the five-or-so Vim extensions are you using?

I've heard there's a bit of drama in which the top-downloaded Vim extension is poorly implemented and poorly supported by the dev, and that some of the lesser-known Vim extensions are far better.

Hi! I'm one of the core developers of VSCodeVim. I think what you've heard is pretty out-of-date - we've been crazy active over the last couple of months. You can check our github page to confirm, if you want - https://github.com/VSCodeVim/Vim :)

Let me know what you think if you do try to use it.

Hi! I'm one of the core developers of VSCodeVim. Shift-Y and Shift-P absolutely work for me, so please report on our issues page if they continue to not work for you: https://github.com/VSCodeVim/Vim/issues

I would also be really interested to hear about the other holes that you're running into. Always trying to make a better Vim experience for you :)

I don't wish to derail the thread, but while I have your ear: is there any hope for using the neovim over its msgpack interface instead of implementing vim bindings from scratch?
That's a really interesting idea, but it would definitely be a different project than our Vim extension.
Whoa. Never even thought about this, but it would be completely awesome.

Speaking of Neovim, it sure would be nice to have a special mode specifically for yielding to an IDE so that all of the IDE's default keybindings can remain intact.

I just wanted to say thanks.

A Vim with intellisense that I can step through with the debugger. I've been waiting 15 years for this.

jaredpar's VsVim will give you that in Visual Studio.
True, but VS is not open source and doesn't run on Linux.
I was actually the one who submitted the feature request which you closed --- I'll reopen this. Thanks!

Update: no, I can't reopen it, so I'll open a new bug.

...aaaand they've fixed it and pushed out a new release. Thanks very much!
Hi John,

I've spoken with a few of the devs in our team having trouble with VS 2015 update 3 crashing. They'd love to switch to VSCode but ask:

1. When is there going to be decent C#/razor-intellisense, a razor generator ?

2. Will there be TFS integration (not git)?

I'm just the developer of VSCodeVim. I don't work on VSCode at all outside of that, so unfortunately I can't help you there. :)
Ok, if you can't relay it internally where is best to ask?
Probably the VSCode GitHub page has some links! I'm not affiliated with MS in any way. :)
The VS 15 Community debugging feature is incredible as well.
What do shift+Y and shift+P do? Are they the same as y and p, but in insert mode?
In insert mode? How would you type uppercase X and P then?

    :h Y

    ["x]Y                   yank [count] lines [into register x] (synonym for
                            yy, |linewise|).


    :h P

    ["x]P                   Put the text [from register x] before the cursor
                            [count] times.  {Vi: no count}
It's indeed a fantastic editor. Replaced Sublime for me and I couldn't be happier.
They've been making so much progress on the vim plugin. I was recently at a conference, and was talking to someone who works on Code. The conversation went something like this:

Me: "I wanted to use Code, but the vim integration wasn't good enough."

Her: "Oh yeah? What issues did you have, specifically?"

Me: "Let me just reinstall real quick and I'll show you."

Me: "... okay yeah this just works now. Awesome."

Most "vim emulation" plugins suck, because the vim way of thinking about things is so different from the typical GUI editor. Because of this, extension APIs often have to be wildly abused just to get even moderately decent parity with vim. Bugs and inconsistencies abound and are often impossible for the plugin author to fix.

That's why it's been extremely heartening to see releases of VS Code that explicitly add extension points to enable features for the vim plugin[1]. It's not perfect now, but given that the VS Code team seems to be making it their mission to offer an extension API robust enough to make it perfect, I'm willing to deal with the quirks for now.

[1]: https://code.visualstudio.com/updates/v1_5#_extension-author...

Is this like an advertisement? If not you should definitely looking into a possible side career writing advertising copy for developers.
Just to clarify this. I really meant this in a positive way. It made me think about giving it a try which is kind of insane since I'm a very very devoted (n)vi[m] user.
Same as Tom for both TypeScript and Go. Can't be happier (I don't use the vim plugin tho, even tho I was a vim user for many years)
I agree, and like a child comment here, used to switch back and forth between other editors(sublime, atom) and Microsofts push to win developers is working.

Huge swathes of code released, azure implementing innovative things around blockchain-- not to mention the linux offerings & other oss plugins. Even porting out powershell as well as bash integration, chakra ect.

To touch on the parebt comment, the vscode editor is one of the MS products i use most often and am most familiar with. The release cadence; compared to the very similar Atom editor, is much different in philosophy.

Atom was first(i think it even came out before vscode) to have all of the features desired in aneditor. They came at the high price of horrible petformance and a wildly unstable product.

Vscode team knew everyone wanted tabs, but they worked releasing tons of things in parrallel and rolled tabs out when they worked properly.

I wouldnt say MS has won my trust, but this product has. I trust the editor will behave as expected and continue to offer awesome plugins and a greT ecperience. I can't afford to have my editor lag snd crash, as well as overwrite or delete data.

Vscode is pretty great and has virtually everything I need with only very minor things.

"As much as I wouldn't have believed this 10 years ago, Microsoft does open source better than almost everyone."

This. They are treating vscode like its a core (cash cow) product. I'd say google embraced/adopted open source early on and now microsoft is playing catchup while now becoming one of the very best to do it.

I see Microsoft's open source efforts as a means to an end.
As opposed to all other companies that do open source for purely altruistic reasons?
Man oh man, as a long time Sublime user I downloaded it just out of curiosity and really not expecting to switch. Now its a few months down the line and its the only text editor I use, and once a month I see a new release at the top of HN and get excited. It is one of the few things where I actually read all the release notes. I feel like a fan boy.
VSCode has been my full time editor. Thanks!!
Probably the best editor for anything Javascript related. <3
For me it's also amazingly good for C and Go development.
oh that's actually really good to hear - my team has a lot of backend services in Perl (yeah..) that we're moving to Go :)
Why would you rewrite already-working services written in an expressive and battle-tested language to a fad 1970s-style language?

It's like being in the late 90s and replacing your existing infrastructure with Java hype, except with a language somehow worse but justified with Rob Pike's pseudointellectual bullshit.

depending on technical debt in Perl code (which is quite easy to incur) it might make sense if you're still making changes to the project. also single-binary deployment is always nice, though in the world where docker exists not as big of a deal as it used to be a few years ago.
> single-binary deployment is always nice

Available since Fortran and not a Go only feature.

Haha fair argument. As someone pointed out - it's very easy to incur technical debt in Perl. It's a dynamic language with virtually non-existant dev tools and lacking open source community. I personally can't wait to go back to a static language for our backend. We're looking at NodeJS (of course...), JVM, and Go. Arguably you can fake typing in NodeJS with TypeScript, Flow, etc, but my team isn't too excited about JS for our backend, I personally have an allergic reaction to Java for backend and I really want a static language, so by process of elimination, Go wins.
Perl still has an active community, it's just not as big as some others. Perlmonks.org and /r/perl are fairly active.

(I'm sure you're aware of this, I just didn't want to leave the impression there's _no_ community.)

Fair, and good response. I was kind of just venting about my general dislike for Go there….

I do think Go has a decent niche for backend services similar to Erlang but with a much easier learning curve (and more available talent). Sounds like you're actually using the right tool for the right job.

What I find to be hilariously missing is drag & drop for the selected text. I tried switching to VS code a couple of days ago and realized I couldn't do such a basic thing.

That and a decent FTP extension. No one wants to sync their entire project just to upload a single file. ugh.

Also the case for Atom, though? There are packages which provide it for Atom, though. Editing/uploading a single file could be handled via sshfs.
(comment deleted)
Never used atom, I use sublime. Also can't find any extension named sshfs. I don't want to install another FTP program and then open it up every time I want to make a change.
sshfs is a utility that allows you to mount a remote directory locally over an SSH connection.
There's also CurlFtpFS (or GVFS's FTP support) that mounts regular FTP. There really isn't a good reason a text editor should implement remote file protocols themselves. Let it be handled at a lower-level!
You use drag and drop of selections? I don't think I've ever done that on purpose --- every time I've ever dragged selected text has been by accident, followed by much cursing as I try to fix my mangled document.

I'd turn it off system-wide if I could!

I would curse too if no one ever told me I could use Ctrl-Z to fix something like that.
I used that sometimes while holding ctrl/option for copy-pasting text without altering the clipboard, is actually a feature I missed in Atom and VSCode as well.
Likewise. And the support for DnD of text really hinders usability in tools like Google Docs. If you select a wrong piece of text, it would be so much nicer to just start selecting the correct piece instead of first clearing out the selection elsewhere to avoid triggering drag event.
I don't think I've ever dragged and dropped selected text in my entire life. I didn't even know that was a thing one could do in any editor. Does dragging and dropping move the text, like a cut/paste, or does it copy the text? When would you use that? Is it faster/easier to use the mouse for this than Ctrl-C/Ctrl-V (or y/p in vim)?
Ctrl-DragSelection (Windows) duplicates the dragged text without overwriting the clipboard text, which is sometimes handy. It's Alt-DragSelection on OSX.
Ah, that's a nice thing. Back when I used a mouse most of the time (back when I mostly used a desktop rather than laptop), I really liked middle mouse button paste in X, as merely selecting text wouldn't overwrite the clipboard. I used it all the time and it was probably the biggest single thing I missed when I had to use Windows or Mac. It's super handy, IMHO.

For non-X users who have no idea what I'm talking about: In the traditional mouse button setup for X Window System, you can select text, and then paste it by clicking the middle mouse button.

I don't know if I can train my hands to be able to select/drag with a trackpad quickly...just trying it now seems very clumsy and time-consuming. But, I do often wish for the ability to copy without overwriting the clipboard.

Depends upon the key combination. It's muscle memory since I discovered it, but I believe holding Ctrl will replicate a copy/paste, but otherwise a cut/paste.
Gotta say, I'm with the rest here in that I have never done that on purpose. When I'm in the editor, having to switch to the mouse for something as simple and cutting and pasting feels like such a drag. I didn't even know it was a common feature :|
I see lots of the responses are surprised people actually use drag'n drop for text. I just want to chime in that I use it a lot, although I can't really give any concrete scenario when I do it. Sometimes it just makes sense.
I was actually happy to find out VSCode doesn't have this feature.
Just got the prompt to install, so I figured I'd check HN while it was rebooting and this was on the front page. I switched to VS Code from Atom about 2 months ago and I couldn't be happier!
I always had Visual Studio for .Net development and for everything else it changed. First Notepad++, then Brackets, Atom, then Sublime Text and since 4 months it's always been Visual Studio Code.

It's nuts how fast Visual Studio Code is evolving. Good job Microsoft, developers and the community.

My only fear is that the application would become bloated, but for now it's still blazing fast. Even when i have to much extensions on :p

Edit: I'm on HN because Visual Studio is updating for the next hour probably :) https://gyazo.com/5ec738470b265531975f2aea0834d72f

We're very committed to fight bloat, as with any large software project its always a risk so please help keep us honest
I am not sure if you are talking about Visual Studio Code or Visual Studio ( which is still updating)

I'm not talking about the IDE, the IDE runs great. Referencing Visual Studio as bloated was not my intention, i was afraid that Visual Studio Code got bloated. The only thing is that Visual Studio updates always take a long time, that's probably the only thing that is troubling me sometimes. It's been 2:30 hours updating now : https://gyazo.com/b8718354c629fbd6e0c4867dfb95e0eb

I also know Visual Studio is a very big application ( i personally use mostly Asp.Net in combination with c# and Cordova) with many developers ( i heard 1200 developers in a talk with a Product Manager of Visual Studio). But 2:30 hours updating is just a very long time :)

VSCode is awesome. You are doing an excellent job!

Please keep up the good work, it is very much appreciated.

I switched from _years_ on sublime (paid) to vscode in a hot minute for Go development. Awesome jump to declaration and linting. There is one thing it has trouble with and that is auto-complete from within sub-packages. Not sure why yet.
What is 'linting'?
I could be wrong, but I think it's a rules-based approach to enforcing code standards in javascript and other languages.
Sounds about right. More broadly said, a linter shows things that you should fix.
Thanks. That cleared things up. Wikipedia can be confusing sometimes.
In general a linter is a syntax checker, and usually one that tries to flag code quality issues well as illegal syntax (e.g. "don't declare a function in a loop!").
I'm on LiteIDE for Go - have you tried it? If so, do you know how VS Code compares to it?

I have a very multilingual project so i'm resigned to using multiple IDEs anyway (LiteIDE for Go, VS for C#, Qt Creator for C++/Qt, Eclipse PDT for PHP, Notepad++ for bash...)

Nothing beats LiteIDE's integration with the Go toolchain IMHO. However it's not a very good editor in other aspects. Plus it's so ugly it hurts my eyes.
I've not tried LiteIDE since it first came out. I did not enjoy the experience at the time. The toolchain in VSCode is really nice. You can run tests from your cursor, the file, or the package. There is a built in terminal if you want it. Jump and peek definition for stdlib and imported packages. GoImports works, but so does a cmd+p prompt where you can ">Go: Add Import" and specifically add the import you want so autocomplete just starts working for it. The linting catches me all the time when I type fmt.Println instead of fmt.Printf or have the wrong format types in the string. You have to mouse over something to get its method signature or type, but I've gotten used to it. I even have found myself using its git diff viewer. It also has delve debugger integration, but I've not had the chance to use it yet.

I also use VSCode for bash, python, perl, HTML, markdown, and probably a few others that I'm forgetting. However, I primarily use it for Go.

I'd like to switch from Atom but a few little niggles make me keep going back. I like how Ctrl+K has the emacs-style behavior in Atom, and there's an annoying bug in VSCod's tex mode which stops commenting and uncommenting of lines from working.
(comment deleted)
You can override any key combination.
I looked into it, but it wasn't obvious how to:

(i) make Ctrl+K put the deleted line into the paste buffer.

(ii) allow repeated applications of Ctrl+K to delete multiple lines.

Is Ctrl+X what you're looking for? Maybe you can change the binding of that.
Thanks, that is what i was looking for. Feel a bit silly for not noticing it, but it seems like an unusual behavior to associate with the 'cut' shortcut.
I think they got that from Sublime Text ;)
But not key/mouse combinations, unfortunately. I'd like to remap the insert-additional-cursor action to cmd-click on a Mac instead of alt-click (I think it's cmd-click in both Sublime and Atom, but not VSCode), but they left click events out of the keyboard remapping (at least so far).
I've recently switched to VS Code full time for C# and Python development and I couldn't be happier. While I miss some of the more intelligent intellisense from full VS, I love that I can do all of my dev on OS X. Its integration with .NET Core makes my life easy; really can't complain at all.
I was curious to know how it worked for Python. I might have to give it a serious go...
I wish it did a bit more in the way of completing methods on objects (it sometimes will, but only in super clear-cut situations), but outside of that it's solid. Completely replaced Sublime for me, outside of the subl command line.
Really, for c#? I assumed that the type-inferencing in and extension methods would make proper IDE support of C# on a "light" platform like vscode impossible. How do you manage your vcproj file?
I figured the same! But it handles type inference, extension methods, using static, etc like a champ. Even does completion for project.json. I don't use vcproj since I just use dotnet core.
I thought project.json got mothballed? Did they take another kick at it and make it work?
Don't recall ever hearing it got mothballed during development - though I do believe they've bent over and are going to support csproj files with .NET Core in the future as well.

Here's the relevant page on project.json: https://docs.microsoft.com/en-us/dotnet/articles/core/tools/...

Edit: I need to be better about deep reading through links. https://blogs.msdn.microsoft.com/dotnet/2016/05/23/changes-t... looks like project.json will be mothballed. Kind of.

Project.json is getting pitched, but until the successor arrives, it's still the only way to do .Net Core dev.
Seconded, I've been writing c# with asp.net core solely on OSX for a few weeks now, I've not run into a single thing that I miss from full Visual Studio yet, living the dream!
I switched from Atom to Visual Studio Code for my new project (TypeScript frontend and Go backend) and I am really impressed.

Although the Go support is really good in Atom (missing a few things like debugging and jump to definition via mouse), the TypeScript support is significantly slower than in Visual Studio Code.

There are few things missing Visual Studio Code though: Multiple top-level folders, customizable UI (font size in particular), a few essential extensions that Atom has and probably other things I forgot.

You can customize the font face and font size. It even supports proportional fonts!

You just have to hand-edit settings.json to do it. Go into File/Preferences/User Settings and copy the editor.fontFamily and editor.fontSize lines from the left panel to the right and edit them to what you want.

What bothers me about the font rendering, though, is that for some reason they have disabled ClearType! Everything uses grayscale antialiasing instead of subpixel antialiasing. So for my eyes the text is harder to read than Visual Studio and all my other apps.

I know a lot of people don't like ClearType, but I took the time to go through the ClearType tuner and adjust it to my taste - mostly going with darker, heavier rendering than the default - and now ClearType text looks wonderful on both my high-DPI displays.

Yes, the editor font can be changed. The interface font (menus, sidebars) not so much. The only thing you can do is scale the whole UI which feels awkward at best.
I love so many thing about VSCode but multiple top-level folders is a necessity in order for me to use this as my daily editor.

Microsoft pls

Started with brackets, moved to Atom and settled at VS Code. Like their monthly release with useful features
Can I use VS Code to work with remote files? I almost always work with remote files for development at my day job and would like to switch to VSCode for its better JS support. Right now I am using SublimeText3 with the rsub plugin to edit remote files.

What workflow do you guys use when working with remote files?

That's a good question. I usually use remote drives."sshfs" is usualy the easiest option to setup on a linux box. And when well configure the speed is great
I stopped doing that in the nineties. Are you working life on production systems, do you need some really special dev environment, or why wouldn't you work locally or at least in a local VM?
We use Unison[1] to keep a local copy in sync with remote, then just pop open the local copy in any editor.

It sits and watches both the local and remote filesystem for updates, it's fast and efficient, even in large projects. Downside is that it needs to be installed on both ends for the filesystem watching to work.

[1] https://www.cis.upenn.edu/~bcpierce/unison/

I've been using VSCode for a few months now, I'm finding it to be really powerful. Main downsides for me:

* The Flow support (via an extension) is pretty far behind the TypeScript support, which is understandable but not ideal.

* It doesn't yet have the critical mass of mindshare for it to be primary target for extension authors, i'm hoping that changes.

* The lack of ability to customise/theme the UI means I can't do anything about the fact that my syntax theme looks totally out of place in the UI.

I love VSCode. Sublime still trumps it in two places though - multi-cursor support in VSCode isn't quite as powerful as Sublime I particularly miss the middle click, drag, select rectangle [1].

The other area is that global search/replace isn't as powerful or nearly as quick.

I'm hoping both of these are things they fix in time.

[1] http://jdon.at/19OUp

Middle-click and drag is a game-changer! Thanks for the heads up.
I love VS Code (we're pretty invested in TypeScript, so it was a natural fit), but the one thing I really miss from Sublime is that code preview thing that shows a bird's-eye view of the current file and lets you click around to any part of it. Any idea if there is or will be a way to enable the same functionality in VS Code?

Edit: Apparently this is called the "minimap" and is a popular feature request, so guess that answers that.

And speed. Sublime beats it in speed by a huge margin sadly.
(comment deleted)
I only miss a code minimap. It's my choice for code editor since its release, replacing Atom.
I've honestly never found a practical use for that. But then, most of my code files are either at most 2-3 pages long, or things like long .json files in which a minimap doesn't really help much.
I moved to VSCode 2 month ago, after 6 years with Sublime. Really happy so far. Their team does an amazing work.

If interested, this is the list of extensions that I use for JS development:

- Eclipse theme (a theme with a decent color scheme for ES6+, JSX and Flow types) - https://marketplace.visualstudio.com/items?itemName=tdtp23.e...

- Nomo Dark Icon Theme (icons) - https://marketplace.visualstudio.com/items?itemName=be5invis...

- Path Intellisense (local imports autocomplete) - https://marketplace.visualstudio.com/items?itemName=christia...

- Npm Intellisense (3rd libs imports autocomplete) - https://marketplace.visualstudio.com/items?itemName=christia...

- Typings autoinstaller (3rd libs types) - https://marketplace.visualstudio.com/items?itemName=jvitor83...

- Auto Close Tag (close JSX tags, not perfect but better than nothing) - https://marketplace.visualstudio.com/items?itemName=formulah...

- Flow for VSCode (to support Flow types) - https://marketplace.visualstudio.com/items?itemName=flowtype...

- ES6 snippets - https://marketplace.visualstudio.com/items?itemName=xabikos....

- React snippets - https://marketplace.visualstudio.com/items?itemName=xabikos....

This is very helpful, thanks!
The Python coding experience in VS Code is very nice. Regarding to debugging Python code, can't say much about it just because I started using it yesterday. Even so, was a pleasant experience too.
I started using it last week for Python. My experience was also good. Configuring venv to work with the integrated console was very simple.
Did they ever fix the DPI scaling issues?
What do you mean by DPI scaling? I'm using VSCode on Windows on retina-y display with something like 200% scaling and no issues.
I don't have any scaling issues on my Win10 4k 175% scaling setup. But unfortunately text rendering is still blurry compared to native editors due to the underlying Electron/Chromium renderer. Hope this will get resolved soon :'(

https://github.com/Microsoft/vscode/issues/1896

I guess that's what they meant. While the scaled-up result has the correct size and avoids other artifacts of broken high-dpi rendering, it's, well, blurry.

However, I suspect that this is more a Chromium/Electron issue than one for VS Code and other applications built like that. Heck, not even Chrome scales properly on high-dpi displays, which is pretty poor in my eyes.

Hmm, Chrome looks perfectly fine on my high-DPI display (4k 150%), but both Atom and VSCode have major issues. Possibly an Electron issue I suppose, but I can't say for certain. Pretty ridiculous that almost every other app I run scales perfectly now, but text editors don't. Of course, Emacs, Notepad++ and Sublime all work perfectly so it doesn't impede me much.
It works okay on my X1 Carbon, but it's still not perfect because the interface font size cannot be changed. That means you have tweak your editor font size and zoom factor to get a good result.
If any of the VS Code developers are reading this, I have a few suggestions:

When I open a single code file with VS Code, I'd like the workspace to automatically get populated with the other files in the same folder, or at least have a simple option to do so. I like that VS Code use the folder structure instead of a special project file like .sln, but this is a small annoyance since I often open single files before deciding that I want to continue to work on the whole project.

Make it easier to run Python code. I don't think there's an easy way to run my script and see the output in a terminal without filling in some json file? Please correct me if I'm wrong.

I'd really like support for Jupyter notebooks. They're already web based, so it makes sense.

For new users or users that only use it rarely it seems a bit opaque with json based settings, and a lot of things hidden behind a command palettes. It's great to be able to do everything with the keyboard, but maybe surface some of the things in a GUI too?

Visual Studio with Python tools are my IDE of choice for Python, so there's every chance the VS Code will become a great Python development tool too.

> Make it easier to run Python code. I don't think there's an easy way to run my script and see the output in a terminal without filling in some json file? Please correct me if I'm wrong.

There are multiple extensions that run code without any setup for almost any language. I use https://marketplace.visualstudio.com/items?itemName=formulah...

Is it possible to open the same file in multiple tabs, yet? You can split screen a file but that gets cramped on a notebook display...
does it still not have flexible split window feature? argh...
What exactly do you mean by "flexible split window"?
split 'em however you want.. not just the 3 columns or 3 rows layouts
Ah, I see. It's not even in Sublime2 (there's only 2 by 2 layout). One full height column and one split does sound useful.
it is in sublime 2, via the More Layouts plugin
Is there an option/mode to simply highlight matching parentheses for plain text or files that don't have their own language modes?
I want the appearance of the bracket matching to be specifiable as a preference, so I can make it as visible as I want to make it and not have to just live with what someone decides is best for me and hardcodes.
Now MS just have to seamless integrate their Ubuntu Bash filesystem with the Windows filesystem so I can create files in VSCode and access then in the ubuntu shell. They will build the best dev environment.
An environment that doesn't match your production server is far from being the best one (this doesn't apply to all cases but you get the idea)
Agree 100%. Ubuntu desktop and server is gaining market share among devs (those who prefer working on bare-metal) for precisely this reason.
What are you missing specifically there? The windows filesystem is already mounted in bash for windows, so you can access files created from Code there.

However I didn't found that of too much use since I can't run windows executables from there and so WSL is pretty isolated. Instead I still use msys/cygwin for the shell which has it's quirks (file path magic) but works. In combination with docker for windows and volume mounts there I can even cross compile Linux executables on the windows shell, which is pretty cool.