Hacker News new | past | comments | ask | show | jobs | submit login
Visual Studio Code 1.8 (visualstudio.com)
407 points by kentor on Dec 14, 2016 | hide | past | web | favorite | 190 comments

I recently moved from EMACS (after using it for ~10 years & ~6 languages) to VSCode. There are loads of things that I miss but overall it's been a fairly smooth transition.

I'm moving because I spend most of my time writing javascript and felt that no combination of emacs modes allowed me to keep up with a proper IDE. Emacs is a tool to learn once and use for a lifetime (and I will continue to use it for other editing tasks) but I found that I was increasingly having to learn outside tools in order to gain the benefit that IDEs could hand me for "free" (free like a puppy, retraining your fingers takes months).

Things I love:

- Intellisense is immediately superior to anything I've used in EMACS.

- Debugging from my editor. This was available in emacs for C, PHP & Java using GDB or similar but it never made it's way to javascript as far as I can tell.

- Goto definition.

- Good typescript and Flow integration

Things I miss:

- IDO Mode (FML I hate Finder for moving through directories)

- Creating files with just the keyboard (probably possible but I haven't figured it out yet).

- Kill ring

- Moving around the code with just a keyboard (ctrl-v and the sort).

- Non-intellisense completion. When your caret is at the end of a word, Command-\ in EMACS completes to another word from the same buffer that has the same prefix and continue to swap through words on subsequent presses. Very useful in a dynamic language.

I love VSCode and Flow but to be honest, the Flow integration could be better (and I'm sure it will be, it's just a matter of time).

There is a bunch of annoying bugs waiting to be fixed, e.g. the one about the imported types [1].

In the other hand, I don't blame the maintainers. The Flow team is a really small team and the VSCode extension is obviously not the priority. :)

If you guys see this message, thanks for the amazing work on Flow!

[1]: https://github.com/flowtype/flow-for-vscode/issues/23

I tried Flow but ended up using Typescript for my current project. If I were to go hard on Flow I'd probably be using Atom with Nuclide instead of VSCode.

I actually like Flow slightly better but the community created type libs for TypeScript convinced me to go that direction.

I gave another try to Atom recently because of Flow and Nuclide, but I definitely prefer VSCode.

By the way, the Flow extension for VSCode is a port of Nuclide, so it's almost the same end result I guess.

> - Intellisense is immediately superior to anything I've used in EMACS.

For JS maybe. Irony with irony-clang is the best C++ autocomplete I've found. VSCode's C++ Intellisense is crap.

I have unfortunately not done much C or C++ development since uni. I know that SLIME always seemed far and away the best lisp editing experience.

It's funny about SLIME: it's arguably even better than using Emacs for Emacs Lisp!

Do you have any experience with rtags? Is irony really better at auto complete?

How does it compare to resharper C++ in case you have tried both?

Do you use any extension to use emacs keybindings? I've tried out VS Code a couple of times and wasn't able to find an extension for emacs keybindings that had everything I use in it. When I tried out Atom, one of the packages for this worked fairly well (although I have other issues that prevent me from using Atom as my full-time editor)

They just introduced keymap modes, including emacs.

Oh, not sure how I missed this! I'll have to try it out

EDIT: On trying it out, it seems to have reasonable support for most of the editing functionality, but the shortcuts for handling split buffers (C-x 0, C-x 1, C-x o, etc.) is completely non-existent. I'm unsure right now whether I'd be able to define them on mine own or whether I'd be willing to stick with it if I couldn't.

If it's missing functionality you need you could request by filing an issue to https://github.com/hiro-sun/vscode-emacs

It turns out the changes were pretty trivial (partially due to vscode apparently not allowing vertical split), so I just put them in my keybindings.json.

For anyone interested: https://gist.github.com/saghm/6f97aea92029fec62067e658c6f02f...

I didn't know this! I just created a few keyboard shortcuts that I commonly use manually. Not perfect but it's gotten me over the hump. I may check out the emacs bindings on a slow day.

As a long-time emacs user, I have recently taken a look at VSCode, and while I am not ditching emacs anytime soon, the experience was a lot more pleasant than I would have expected. I plan to use it for some toy project over the holidays, see how that works out.

> Moving around the code with just a keyboard (ctrl-v and the sort).

That is something I have missed in pretty much every IDE I have ever used, except OpenWatcom's, which allows to use vi-keybindings. (Okay, so Eclipse supports Emacs-ish keybindings, too, but it felt really weird using those.)

I think, there is a plugin/package for VSCode that implements emacs-style keybindings, but I could not get it to work properly. :-(

Creating files: Command palette -> New file. There's also a new plugin called Advanced New File.

For completion: Ctrl-space will force a completion at your current location.

The command palette seems like the sort of thing that'll have more power than I'm currently giving it credit for. How do you create a file outside of the directory that you're currently editing?

The Advanced New File [1] plugin lets you type a relative file name.

[1] https://github.com/dkundel/vscode-new-file

If you create a new file, when pressing save, you get a save dialog. In there you can navigate to the folder where you want to save the file.

I'm aware. If you follow the thread, we're talking specifically about creating a new file using the command pallet. Also, I mentioned above that, while I'm aware of the ability to create a file using finder, I'd rather not.

For the IDO part: If you open a folder in VS Code, then you can use Ctrl+P or Ctrl+T (I keep forgetting which), and that allows you to type part of the file name, and then it will find it. The best is, it searches the entire subtree of the folder you opened.

I use this often in vscode. It's good for finding files but ido-mode is everywhere.

Emacs doesn't do go to definition? Eeek

Installing tern-mode from MELPA makes M-. for JS work in Emacs.

Didn't know this, will try!

It does for languages where you can find a mode that supports it. I never found one for Javascript. Honestly though, while I like the feature, I never notice that it's not there when I'm using Emacs. I can get around in a JS code base.

The only environment that I've been in where it was critical was large Java projects. I would have been lost without being able to goto def though maven dependencies. Having to read XML to figure out where stuff is would have driven me insane.

Vim doesn't either. You have to use third party plugins.

Visual Studio Code itself doesn't either.

Umm yes it does.. @ symbol accessible via keystroke

It does for me. I haven't installed any plugins.

For any language? Doesn't work for my Perl code...

hmm at least for JS.. that for sure

VS Code is, along with Typescript and Vue, one of my favorite things to have entered my world in the past 6 months. They have been rapidly improving VSC and I am exceptionally happy with it.

The debugger changed how I code. So much better than any other node debug solutions.

How is it better than the one in IntelliJ/webstorm?

I don't know, I don't use intelliJ and I don't want to pay for webstorm. Somebody else probably knows.

Anyway I like how low-memory-on-the-disk and low RAM usage VScode is, so I probably wouldn't enjoy intelliJ and webstorm for those reasons. I felt like even sublime was too bulky for me. Maybe they're good for other people and that's fine, but vscode just ticks all the right boxes.

Well, then it's kind of a far stretch to claim vscode debugging is better than ANY other solution if you haven't tried them all. Not even the most popular once like webstorm.

Out of curiosity, what is the reason, you don't want to pay? Is it your financial restriction or that there is something philosophical about sticking with free stuff whenever possible?

Once you figure that if anything makes your days better by spending $10 or so a month, not choosing the best tool for the job sounds simply dumb.

I have a friend who sticks with plain vim uncustomized because he doesn't want to deviate from the default in fear of not being able to seamlessly use other environment sounds utterly stupid wasting productivity for 99% of the time being on his own machine.

I'm all about paying for things that add value - I haven't been convinced webstorm will add value.

I am very fortunate in my means right now, but I come from a poor family, and spending money is emotionally trying for me. I gain pleasure from pushing my monthly expenses down as tight as I can. It seems melodramatic but paying for webstorm might just stress me out - I'd constantly feel a need to justify it, like when I tried subbing to World of Warcraft - I'd catch myself calculating fun per dollar. Euck.

Anyway I'm a simple front end dev so I don't think it's necessary for now. As I branch out into Python perhaps Webstorm's tools will add tremendous value, I have seen some cool stuff but I just don't need it for now.

It's not better. I'd say that the Jetbrains integrated debugging is superior.

I find them to be very complimentary. I switch between VSCode (for writing, code editing) and PHPStorm (refactoring, debugging). Beyond webdev, VSCode offers excellent Markdown support. With auto-previews, custom styles, and many great extensions, it's worth installing just for the Markdown support alone. https://code.visualstudio.com/docs/languages/markdown

If nothing else, the editor itself is a lot snappier

I'm confused. Did javascript people not use a debugger before VS Code?

I don't know why there are so many non-answers or flat out incorrect answers to your question.

Yes, js devs use debuggers and have for years. Firebug was created and popularized for browser js 10 years ago[1]. Node.js was released 7 years ago, got a debug option one year later using node debugger. It was CLI based and a bit shit. Tools which leveraged Node's debug protocol and Chrome's developer tools (node-inspector) for example were started 5 years ago[2]. Most recently some group associated (maybe on?) the Chrome team started creating a cleaner debug protocol and integrating directly with the Chromium project[3]. That's become the gold standard and is the standard way of debugging for Node 7+[4]. VSCode uses that protocol to offer debugging directly from the editor.

1. https://en.wikipedia.org/wiki/Firebug_(software)

2. https://github.com/node-inspector/node-inspector

3. https://github.com/nodejs/node/pull/9028

4. https://nodejs.org/api/debugger.html

It was console.log() all the way

The Chrome based dev tools have been an option for years using node-inspector. Had all of the basics that you would expect from a debugging. Breakpoints, step into/out/over, variables available at that location in the stack, REPL console etc.

It was kind of a pain in my experience to use the Chrome debugger to be your main editor. I've not used VSC for this, but I imagine it's nice to not have to flip back and forth between tools.

I was responding to the claim that it console.log was the only way.

You can't be serious.

printf-debugging is a fine way to debug a ton of cases, especially programs with concurrent components. The process of debugging step by step isn't necessarily superior or faster.

I'm not sure why not. AFAIK that's still your only option if you want to debug NodeJS code headlessly.

What about conditional break points, call stack, time travel, watch list, live editing, etc?

Wow, there are actually people using any of these?

More like all of these every day?

Running 'node debug script.js' will drop you into the command line debugger. It's a little painful though as the command line debugger does not have support for moving up/down stack frames.

I am pretty to the javascript/node world. The debugging situation is pretty pathetic in my view. Most people I know use a ton of logging like we did with C/printf 25 years ago.

Using awareness of how to use a debugger is a reasonable interview technique WRT javascript devs. In general, ignorance is not a pejorative but if a candidate walk into an interview claiming to be an expert and I find out that you debug in anger using console log, I'm calling bullshit. They're either very green or too lazy to have investigated the tools available. Jr devs are, obviously, another story. Read up on how to use node --inspect for newer versions of node or node-inspector for older versions.

One common need that is a sad state of affairs in the Node world is performance tooling. It's available and competent professionals should invest in it once it becomes necessary but is a pain in the ass to setup and run.

>In general, ignorance is not a pejorative but if a candidate walk into an interview claiming to be an expert and I find out that you debug in anger using console log, I'm calling bullshit.

Some of the best programmers advocate for printf over debuggers...

And some of the crappiest programmers run around the debugger for hours with no idea what could be wrong in the program, stepping blindly here and there...

To explain this further, I think printf is more focused and direct than running around in the debugger. You need to have a clearer idea of what you're looking for in advance and know how to exclude parts of the program as possible culprits, which I think helps with debugging in general.

And, come to think of it, with hot code reloading, printf can be just as immediate, but more direct and focused, than using the debugger. Shame that few languages/environments offer hot code reloading...

Using printf on everything is basically the same as debugger but a lot slower. People also tend to commit those added lines (sometimes commented for future uses) which clutters code base. I think that using permanent logs on higher verbosity plus debugger is a lot more productive.

It sounds like you are trying to sell lack of a debugger as a feature that forces devs to to be more aware and more precise. Then we should maybe go back to writing code on paper first, create punch cards, submit to the mainframe and get the result next day? Then you have an even better idea of what your program does.

Debuggers are a valuable tool that nowadays should be standard.

>Then we should maybe go back to writing code on paper first, create punch cards, submit to the mainframe and get the result next day?

Just because someone advocates taking a step back in some particular issue (and for specific reasons they argue about) doesn't mean it logically follows that they advocate going all the way back.

Two things: "slippery slope" fallacy and "marginal returns".

I'm pretty sure we can find some ways in which you yourself advocates NOT using some modern language feature in favor of an older practice (e.g. you might be against visual programming languages). Does that mean you are ultimately in the same "punch cars" camp as you suggest I am?

I agree. The best printf debugging I've seen is Mike Conley from Firefox Live Hacking. He has quite a few debugging tricks up his sleeve.

[1]: https://www.youtube.com/channel/UCTDXvmarLFnox4AO0w2NuiQ

As usual in this industry there is a whole new generation of devs coming up that have forgotten stuff that has been standard for a long time. Then somebody implements this old stuff for the new tech and people think it's major innovation. I am sure soon somebody will create a node profiler.

Sounds like a profitable model (introducing new devs to best practices).

You can debug in Chrome (or any other browser). For node, you can run node-inspector which uses a browser for debugging.

Some of us used debuggers way WAY back in 2002. Venkman was the new hotness: https://en.wikipedia.org/wiki/Venkman

Firebug quickly became the defacto later on. But telling your average web designer about breakpoints, stepping over and stepping into would cause their eyes to glaze over.

For client code I'd use the chrome debugger constantly. I mean for debugging a node server.

Maybe there was some way I didn't know about. There's the 'inspect' flag in node 6 now that prints out a link you can copy into your chrome browser to debug server node code.

Is vsc's debugger better than chrome devtools?

How is it better than the chrome one?

I wasn't aware it was possible to debug a running node server in the chrome browser until the addition of the 'inspect' flag in node 6. Maybe it was possible, I'm not superleet or anything.

Do you use typescript with vue? I had researched it at one point, though admittedly not too far in depth, but came away with a conclusion that vue doesn't lend itself well to types.

vue-class-component[0] seems to be adopted by vuejs org, and I'm planning to use it in my next project.

[0]: https://github.com/vuejs/vue-class-component

EDIT: Just saw this on twitter: https://vuejs.org/v2/guide/typescript.html

Not yet -- I'm using TS for an unrelated project to my Vue projects; but I've read that support is on its way.

Is there more work to be done besides the reference made in this announcement?

> vue core, vue-router and vuex 2.0 all have TypeScript typings shipped in the npm packages


Why are people using this instead of WebStorm? It seems like:

- It a little faster for Typescript (but no better TS features from what I can see).

- A lot of people are trying it because it's new, or because they like MS tools.

- It's free

On the other hand WebStorm still has more functionality overall, a few less rough edges, and a more standard UI (some people don't like how MS Code doesn't have a tabbed doc UI).

My personal calculus is that WebStorm is so cheap, I would not allow my primary tool to be even 1% worse to save money. Also I like those crazy guys - they have been pushing out features very fast for years now.

I upvoted your comment because your points are accurate (I have both WebStorm and Visual Studio Code open all day every day for my current project) and informative, but mostly because what the fuck are adiranlmm and plexicle going on about.

From my experience, I would just add that while WebStorm is indeed far more powerful in terms of features that it has, it:

- is actually slower even than VS Code for many operations (both of which are, when compared to a native editor like Sublime or TextMate 2, objectively slowww at basic operations like launching and opening windows)

- it comes with a shopsack full of shit enabled by default, that most people will need to scale back, adjust, or turn off before getting productive. E.g., on the Mac, all the text editing keyboard shortcuts are wrong, drag and drop doesn't work like any other app, some windows can only be docked or floating windows (wtf!) and can't be put in the background, and all sorts of spurious code-linting and annoying popup suggestions are enabled by default. It's the UI equivalent of somebody shouting all sorts of commands and suggestions at you, while when you first open VSCode its a fairly minimal rectangle of text that you can work with right away and gradually learn the advanced features when you are ready to.

So one answer to "why people use this instead of WebStorm" is probably that, especially on Mac, many people's first response to WebStorm is to groan "bleeeccch! yuck!" and close the window and drag the app to the trash.

(I did that a few times, too, but in the end the WebStorm the code completion and intelligent navigation was so much better than anything else that I decided to endure the UI atrocities and stick with it.)

If someone's trashing an editor which can be configured to fit your need to be less verbose, I guess that's just that.

That "full of shit", which is useful to some, I just go to plugins and uncheck them, once.

> some people don't like how MS Code doesn't have a tabbed doc UI

VS Code has had tabs for over half a year now, since the 1.3 release in June. Beforehand, the "active documents" acted more or less as nerfed tabs, but I agree the real tab support was desperately needed before 1.3.

> they have been pushing out features very fast for years now.

WebStorm gets major updates 2-3 times a year, VS Code gets major updates 12 times a year. I'm pretty sure you can't really call WebStorm "very fast" on that front given that metric.

I've never used WebStorm so I can't really comment on the other points, but you're also being very vague. What are some examples of more functionality and less rough edges?

WebStorm has both Intellisense-like autocomplete and word completion. Its "Jump to definition" helped me become a better programmer because jumping into library code became a habit - be it Ruby or Javascript (I use RubyMine). They were one of the first editors to fully support JSX, and before that they came first in supporting Angular v1 and its directives. They let you refactor code in dynamic languages, does it silently and safely when the scope is clear, and asks you when not.

When I had to work on a Java project, using IntelliJ was a dream. The same environment, but with sturdier refactoring. Plus it taught me Java idioms by whispering gentle suggestions while programming.

In Rails, when you rename your controller it renames your routes. It has a great debugger integrated that just works. It has support for your rake tasks, at par with the deep integration into all environments it support.

When they changed their subscription model to an yearly fee, I was happy to be giving more money from my limited paycheck to this company. It is the kind of software I'd write love letters to. I make tools for developers, and one day I want them to be of the calibre of JetBrains' products.

Couldn't agree more, intellij is my favourite piece of software ever.

I can't believe I never tried Jetbrain's product until I used Android studio after becoming the default for Android dev.


    - FREE
    - faster
    - source is on github
    - easy to write, fix plugins in javascript
    - javascript intellisense is better
WebStorm is a good product but it doesn't really do anything that much better than vs.code that I would go back to it. Was a long time WebStorm user.

I would rather beg MS to write many of the popular plugins. These free editors with flexible plugin system is only good if the plugins' quality stay above average.

Stuff like Atom, I dig a dozen plugins only to keep 3 or so in the end, because they're written by random people with random quality, which is not much of use.

Because competition is healthy and without it you'd be wishing there was an alternative to WebStorm.

Also because some of us don't like WebStorm. My experience with it has been very poor. I actually bought a license and invested time in trying to "like" it, but for my use case it was not quite there. E.g. I write a lot of Flow/TypeScript and it has always lagged behind or required me to use bleeding edge versions which were a) free anyway, so my license was unnecessary for that time span, and b) very buggy, which defeats the purpose. For vanilla JavaScript, it has the best autocompletion out there, but when you're using TypeScript or Flow there's just no advantage since practically any decent editor will give you the expected suggestions.

Boot up times are important for me because sometimes I'm in the terminal and I want to open a file, work with it, then quit (`cmd+q` or `:q`) when I'm done. WebStorm is not my friend in those cases. Vim is. Surprisingly VSCode is as well.

In WebStorm's defence, I believe the Vim plugin is one of the best out there (perhaps just second to Emacs evil mode). Other than that and its JavaScript IntelliSense... I can't really think of any other advantages. I hear some of my colleagues talk about git diffing / merge views, but to be honest I already have tools for that and I never do any git stuff in my editor unless it's Emacs + magit.

Refactoring JavaScript code might be neat with WebStorm as well but I haven't used it enough to have an opinion on it. I don't know how well it performs with TypeScript / Flow / Elm codebases but I'd be interested to see it in action, since those seem to be easier targets for refactoring than JavaScript.

I recently switched from PHPStorm (which I already buy license for) to VS Code, and for me the main problem was Java engine on Windows which PHPStorm runs on. I just didn't have a luck to make it work smooth enough, while my computer is quite strong in and of itself. Those occasional hiccups when the editor or whole IDE just frozen for a few seconds driven me crazy sometimes.

So for me, VS Code is a lot faster, not just a little bit. Also command invocation is faster via F1 key.

Apart from that, VS Code just feel a bit more "modern", for example in the areas:

- git integration is more straightforward, or "just better".

- settings are also better organized, no more browsing various dialogs, everything is in one json file.

Make sure to run PHPStorm with 64-bit Java on Windows if you are on 64-bit platform. Much better experience.

PHPStorm on Windows ships with 32-bit Java. You have to install 64-bit Java yourself and change your Windows shortcut to point to the 64-bit PHPStorm exe. It also has it own vmoptions file.

If you install Jetbrains Toolbox App you can tell that run 64-bit for you and also set java heap size.

Not saying Electron is the pinnacle of performance, but IntelliJ and the whole Java Swing stack is just abysmal in my experience. I much prefer VS Code, it feels way 'snappier'.

I only code in Go these days and it has become my default editor.

WebStorm on OS X has been slow and laggy every time I've tried it on a machine that can handle Atom and VS Code with no problems.

Downvotes? Would be interested to know which points were inaccurate.

Downvotes are not limited to inaccuracy; a post can fail to add value to a conversation without being inaccurate.

I would personally never use an IDE for any of my (non-mobile) development. No way no how. That makes things like WebStorm or whatever DOA for me personally.

My best guess for your downvotes is that your comment isn't only nonsense and inaccurate, but also pretty churlish.

Nonsense and churlish?

How is it mean spirited to post observations about something people were asking about?

And if something is incorrect why not just say what it is?

Go away Jetbrains.

What does that even mean? People were asking about it in comments so I added information.

Are you accusing me of secretly living in the Czech Republic while hanging out HN to astroturf for WebStorm?

Was there a mistake in the comment?

Or, I hate to even ask, is this some sort of childish fanboy thing?

Cut it out with the "shill" accusations. Unless you have proof that somebody is astroturfing, it's a lazy accusation that is quickly becoming meaningless.

Anybody know how many people are on the VSCode team? They're moving so fast in adding useful stuff with very few hiccups...I'm lovin' it.

About 10.

From one member: "VSCode has a relatively small team compared to the size of the product" - https://github.com/Microsoft/vscode/issues/13138#issuecommen...

Makes me happy that getting rid of stack ranking allows small elite teams to now be functional.

Before, everyone would've been stepping on each others' toes because only two out of ten people would always be rated top performers and two more would be forced onto "performance improvement plans" (aka "you're about to get fired").

Erich Gamma (Gang of Four - Design patterns) is part of the team.

"co-author of the influential software engineering textbook, Design Patterns: Elements of Reusable Object-Oriented Software. He co-wrote the JUnit software testing framework with Kent Beck and led the design of the Eclipse platform's Java Development Tools (JDT)"

And here's me writing code that creates csv files, that get copied from one server to another server (on another continent) - without anyone reading them.

The Just my Code debugger support, where stepping through callbacks can just skip all the in-between functions handled by third party libs looks fantastic.

Especially with await / yield-promise type stuff, I could imagine this will make debugging much nicer.

[0] https://code.visualstudio.com/updates/v1_8#_just-my-code-nod...

Being able to hide the activity bar puts VSCode into a class of editors I could imagine myself using. I tried it a couple of times in the past, and that damned big ass bar of useless icons bugged me too much (I work on a laptop screen 95% of the time, so giving up that much real estate for something I'd rather do with hotkeys is just painful). It sounds silly to dismiss it over such a small UI thing, but well...my screen is small, my eyes are getting older (so even though I have a 4k display, I can't shrink everything down without eye strain), and vim and Atom don't eat up the screen in the same way. So, I use vim and Atom (mostly vim, as old habits die hard). But, will give VSCode another try.

It looks pretty good congratulations to the team.

There is an issue though that I find so annoying and I just hope they fix it.

I set up the external terminal to git bash on windows and sometimes when I'm deleting commands with the backspace it doesn't really delete the full word, hard to explain but as an example if I type "nani" and then press backspace "nani" stays but I know it has been deleted because it kinda flicks so I type "o" now I have in the terminal "nanio" and sure enough if I now type the name of the file it edits it.

Hope this makes sense, I put up with it because I'm really enjoying the product and the speed of development.

Big congratulations to the team.

I'll be looking into this for 1.9, the issue tracking this is https://github.com/Microsoft/vscode/issues/14613

Thank you, I didn't feel like I could explain it properly that's why I didn't open a issue.

You guys are fantastic

I know they're working on styling, but now that the titlebar is black, too (on Mac), I really, really would appreciate if the status bar would blend in, too.

Can't upvote this enough. One dev mentioned in a GitHub issue that the blue color is for branding reasons [1]. This is so absurd, it hurts. That status bar is the most distracting and annoying thing ever.

See link for suggestions how to mitigate. I use the tip from the person named sysrpl. VSCode is unusable with that blue color for me.

1: https://github.com/Microsoft/vscode/issues/1884

We do have a plan to enable this - unfortunately it did not make 1.8 but we plan to work on it in 1.9. So you should have some additional options soon.

Sean - VS Code Team Member

Is it possible to add for a way for the user to have a custom CSS file? I really like how Atom provides such great visual customization by just giving the user a less file that they can edit.

On the other hand, you can toggle it off by View -> Hide Status Bar.

I never even noticed that it was blue as a branding thing. You can toggle it off with Super-K Z now.

Neither did I. When I first opened VSCode, I thought it wanted to tell me about something important going on. Maybe color coded an update message or something like that.

> Terminal copy and paste key bindings on Windows have changed to Ctrl+C (when text is selected) and Ctrl+V respectively.

So happy.

> JavaScript improvements: IntelliSense for paths in import

Does that mean we don't need those extensions anymore?

- Path Intellisense: https://marketplace.visualstudio.com/items?itemName=christia...

- NPM Intellisense: https://marketplace.visualstudio.com/items?itemName=christia...

(I have not updated yet)

It depends on what you need. The new built-in path intellisense only applies to JavaScript and TypeScript files for require or import statements. The path intellisense extension specifically is much more general and offers additional functionality that you may find helpful.

I work on the VSCode team on JS and TS support, so please let us know if you run into any problems with the new path intellisense feature or have ideas on how it could be improved.


Hey! I just tried the feature and I've an issue: Intellisense suggests everything, not only paths.

e.g. if I start typing './c', it suggests me every symbol in the current file starting with 'c'.

I would love to have only the paths available in the project (like the "Path Intellisense" extension does).

I will post my feedback on GitHub, in case you don't see this message. :)

Thanks for the info. :)

Anyone using Visual Studio Code for Rust development? If so, how is it?


Going by feature set alone (plugins included) it appears like a good choice, though I've yet to try it myself.

I'm an Emacs user, so that's what I've written most of my Rust in, but I tried out VSCode and setting up all of the Rust integration, and it was pretty easy to set up and seemed to work pretty well playing with it briefly. Didn't seem to be worth switching from Emacs for, but I was fairly impressed, and will likely recommend VSCode for anyone looking for a Rust IDE who doesn't already have a strongly preferred editor or IDE.

It's decent, but far from perfect. Working are: Intellisense, go to definition, some type information on hover.

Sometimes, however, autocomplete doesn't work. (If the file is too big, or if you use macros, both of which are very common in rust.) I found the type info tooltips to not be super precise. There's no live error checking, or at least I couldn't get it to work. I also couldn't get auto formatting to work, but I didn't try much. (Since I can just do it from the command line, anyway)

I wish it had more documentation-related features.

Haven't really tried debugging yet, but should work fine. (I believe it uses GDB)

I have been but I don't put much stress of the fancier features of the IDE, mostly I just use it as a tabbed text editor with syntax highlighting and git support.

Racer (intelligent auto complete) has always been a bit flaky, but other than that it's been great.

Finally, we get hot exit. :)

Hot Exit is one of those features that I didn't think I needed or wanted...until I started using Sublime like a notepad to store text, but not save it. I'm excited that this feature is now in VSCode now, and it also works with files that have never been saved just like Sublime.


Now I only hope they add in hot-disk support.

Sublime Text 3 checks to see if the currently opened version differs from the file system. If it does, it prompts the user to keep the current version or replace it with the disk version. VS Code just replaces the current version with the disk version and doesn't retain history so you can't undo this.

I lost about an hour of work yesterday because I had a file open in both VS Code and Sublime Text. Pressing save in Sublime Text wiped out all changes. :(

FYI that's being tracked here https://github.com/Microsoft/vscode/issues/15749

Thanks Tyriar!

Sublime's updates are dismal. https://www.sublimetext.com/blog/ I had to switch to Atom just because the development is stagnant. I liked Sublime very much. But it's been 2 years already..

But what is missing in sublime?

The official download page says "Sublime Text 3 is currently in beta" It's been like that for years. First build is from January 2013, it's almost 4 years already. I don't know what specifically is missing there, I just know I'm not comfortable using beta version (with little hope it will ever come out of beta) of a product for daily work. I see it as even developers don't consider it stable enough.

I think that sublime text 3 beta is like debian testing, they are more solid that some others lts products.

VScode and Atom are constantly receiving new features. So we can say that they are still in beta too.

Beta is just a word.

I wished they had this feature 2 days ago... I spent 3h writing issues in VSCode before submitting them on Github issues, then my laptop ran out of battery (and of course it was in an untitled file so it was unsaved)... I just wanted to cry.

BTW, really awesome job VSCode team :) I love what you're doing!

Agreed. This is my favourite new feature. It didn't hold me back from using it at all, but now I can get rid of my other "scratchpad" editors.

Agreed. And now I hope they could improve the startup speed.

+1 ... been waiting for this. Just the support for large files now and I can drop Sublime.

(I use it to edit a very large JSON test fixture file)

Isn't just better to enable autosave? (VS Code has that as well). I learned its usefulness from PHPStorm, where it is switched on by default. So I just not explicitly save anymore, it is done automatically and immediately.

Hot exit is still useful when auto save is on as it works with untitled files. Crash recovery also comes with hot exit regardless of whether the feature is on or off. (I'm on the vscode team)

I really like the improvements to the settings system. It's a lot easier to use now while still keeping it a simple json file!

Also, I did not know how much I needed Zen mode in my life.

The pace of development on VS code is impressive! I'm really looking forward to the JS improvements

Agree, this patch note is so big! Bravo to the team.

  JavaScript Intellisense in HTML
This is awesome - I was just this week looking at using Vuejs for a new project instead of React, but the lack of Intellisense in "Single File Components" with VSCode was a deal breaker for me, better to stay with JSX. I've used all kinds of things before the associated tooling is really up to par, and it's one of those things I often regret later. At least it's still not too late to revisit the decision!

Still waiting on docblock support or plugin for PHP, then I'm going to give it a shot. Till then I'll stick w/ sublime.

Though I've been trying vim again, maybe I'll finally jump into it.. I mean I jumped into Arch linux + i3wm(tiled window manager), moving into the console for everything seems next logical transition toward becoming part computer.

You should have separated the PHP comment with the "becoming part computer". I would like to upvote just the latter.

is that a knock on php? it gets the job done, I also am working on some phoenix side projects, but Laravel is my main bread and butter currently and what I excel at. Would love to do more/become better at using elixir/haskell in some future apps, but I only see them really mattering when I need lots of concurrency.

Has anyone been able to get decent JS Intellisense working on VS Code? I recently switched to (and decided to pay for) WebStorm, despite the fact that it's debugging experience is slower, because it will properly inspect my project, automatically get the typings .tsd's for all of my node_modules and Node core and put them somewhere out of my way (i.e. not in my project root directory!).

I can then properly refactor my code. I can 'go to definition' and it actually works! Also the editor automatically telling me a 'variable is unused' being switched on by default without some plugin? This should be standard.

Having been a C++ and Java dev before this Node gig, these things were essential for me.

This and the fact that it has lots of tools built in persuaded me to make the switch.

I still keep an eye on the VS Code releases hoping one day I can hop back.

Worth noticing that VSCode currently have the biggest ever active community on Github https://github.com/Microsoft/vscode/issues/17125

Over 1500 people, monthly, contribute to the project!

Is VSCode a good tool for someone that is just starting to learn software development?

My plan is to become a front-end developer. I am learning Javascript now, then go back a little and learn more deeply CSS, then make some projects with NodeJS and on and on.

I use Notepad++ today and it looks good enough for me. So I wanted to ask more experienced developers: a more powerful tool at this early stage of the learning curve help or confuse?

I don't do front end dev work, but I do use VSCode. With all the community extension for VSCode, I would say that if it doesn't work better than Notepad++ for you, it would at least be even.

I'd think that it would work better for you though.

How do VSCode features get ported to the Monaco Code Editor[1]?

I was interested in using it but noticed the last commit for Monaco was in October.

[1] https://github.com/Microsoft/monaco-editor

the monaco editor code is part of vscode. They do a scripted copy to the repository every now and then. Definitely file an issue if its a bit too old.

We usually update the Monaco Editor npm bits shortly after the monthly VS Code release. So this is still on our list.

But I just downloaded the previous version. I am really impressed about the speed of deliveries.

Is it possible to first open a file, and then easily open the folder that contains the file?

Amazing pace and progress between each minor version


I have high hopes for a sublime-style "whole document" scroll bar in future releases.

It's in progress, see [0] this issue. Scroll to the bottom for an update from a few days ago.

[0] https://github.com/Microsoft/vscode/issues/4865

ah, i see a lot has happened since the last time i looked. Can't wait!

You mean mini map?

yeah. that's the phrase i was grasping at.

I miss the minimap too but if I honestly think about it I like the highlighted edits/changes in the scroll bar more. a git diff minimap might be interesting.

I do almost 100% js dev these days, and I've been switching back and forth between Sublime and VSCode for the past few months. The one major issue I have with VSCode is lack of completions for strings and words which Intellisense doesn't understand. Sublime's CodeIntel dose an excellent job of picking up all the "words" I've used in open files and saves me a lot of typing and typos.

Maybe there's some config I'm unaware of, since VSCode's site does mention "words" as a type of completion, but I've never seen it work for js files.

Can you give an example? It seems to work great for words at least in the same file.

Fantastic update. The node debugging tools are some of the best out there.

I use VSC for Go stuff and the extension (lead author Luke Hoban) for it is excellent. I haven't gotten debugging working properly yet, but I so rarely need it, it's hard to justify configuring it.

I might have to make a few actions to do it, and I'm too busy being productive with the go toolchain tools so nicely integrated with the extension.

Hot exit is finally here. I missed this feature when I moved from SublimeText. And very useful on desktops

I wonder how much of VS Code's community momentum over Atom is due to TypeScript vs Coffee. Personally, I find code bases with great language tooling easier to jump into.

Is there anyway to get user-defined macros? Sublime and JEdit handle them well and was wondering if there is something coming or a preferred extension?

No built-in support yet, but this new extension is worth trying https://marketplace.visualstudio.com/items?itemName=geddski....

The vim extension (https://marketplace.visualstudio.com/items?itemName=vscodevi...) also supports vim macros

Let us all not forget that with the move from Chrome 52 to Chrome 53, this version of VS Code supports full-color emoji.

I never thought that I'd like a Microsoft product again, but VSCode is really neat and has become my editor of choice.

I switched to VS code today and I love it! Looking forward to JS improvements. Thank you to the Microsoft team! :)

I <3 VSC because it isn't a bloated IDE.

I worry that it will eventually be a bloated IDE.

The non-native taskbar drievs me nuts. At least I can turn it off.

mini-map is the only thing stopping me from jumping to VSCode.

What use does a mini map have, if you can only see the "shape" of your code?

Never used it on sublime text. Genuinely curious.

I'd use method listing which is visually more distinguishable.

And a git diff gutter which also displays the original code when hovered. Ever since I started using them I almost literally can't write code without it.

Why all editord lately become black themed?

Can it ctrl navigate to html import?

is this any good for python ?

I've been using it to code and debug python for a few months now, support has been getting better and better. I'd recommend this extension for debugging and extra bells and whistles.


The python plugin is excellent. Intellisense and debugging are top-notch. I absolutely love it.

I actually find Atom more pleasant to look at.

Loving the work done.. now we just need a more complete VIM mode implementation!

I want to love you, VS. Your name would look so good on my resume.I'm going to try one more time.

I don't work on vscode directly, have contributed bug fixes and features but if you'd like to be considered for a team inside visual studio working on web diagnostics, please ping me.

What is "web diagnostics" about ?

Chrome devtools equivalent of edge browser: F12 Developer tools.

I've just started using VSCode in my python codecamp where 90% of students use sublime. Between the integrated terminal + git, intellisense, and debugger, my proficiency has gone up considerably since I made the switch.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact