November 2015 (0.10.3 - Beta 2015)

Hi,

With this release, we mark our official Beta milestone and the big news is that VS Code now supports extensions (plug-ins) and is open source!

Downloads: Windows | OS X | Linux 32-bit | Linux 64-bit

VS Code Supports Extensions!

VS Code has great features out of the box but now you and the community can extend VS Code to add new features and languages.

marketplace

Extension Marketplace

Find and install cool extensions by searching VS Code's public Extension Marketplace. There you'll find new themes, snippets, languages and tools.

extension language

VS Code has two new Extensions commands (⇧⌘P (Windows, Linux Ctrl+Shift+P) then 'ext inst') to let you find and install new extensions and manage (update, uninstall) your currently installed extensions.

extension commands

The VS Code also has a Marketplace where you can browse and learn more about extensions.

Extensibility SDK

If you don't find an existing extension that meets your development needs, you can create your own. We've added extensive documentation on how to extend VS Code and a full extensibility API reference. In addition, we provide the tools that you need to create and publish extensions.

If you'd like to dive right in, you can start with our "Hello World" walkthrough where you'll have a VS Code extension up and running in a matter of minutes.

Yo Code Extension Scaffolding

We've updated the yo code generator to create a basic extension project (TypeScript or JavaScript) which has all the metadata and source files necessary for a working extension.

yo code

Extension Publishing

The vsce publishing tool lets you easily package and publish your extension. You can share your extension with colleagues by distributing a VS Code extension package or publish your extension for the community on the public marketplace.

Extension samples

If you'd rather start your extension by modifying a working example, you can find extension samples as well as the source code for many extensions on GitHub (Go Language Support).

VS Code is Open Source!

You spoke and we listened. With this release, VS Code development is now open source on GitHub.

hello code

You can now contribute to VS Code:

  • Submit bugs and help us verify fixes as they are checked in.
  • Review the source code changes.
  • Contribute bug fixes through pull requests.
  • Update and add to the documentation.

Add TextMate Snippets

Another addition to the yo code generator is the option to add TextMate Snippets (.tmSnippets) to VS Code. Run yo code, select New Code Snippets and specify a folder containing TextMate snippet files. The generator will convert them to the VS Code snippet format and create a VS Code extension for your own use or to share on the Extension Marketplace. The generator also supports Sublime snippets (.sublime-snippets).

Debugging - Debug Console Improvements

  • Colored text output to highlight diagnostic errors and warnings
  • Support file path links with line and column information for quick source code navigation.

Colored Output

Debugging - Easy Variable Selection

Directly add selections to the Debug Console and Watch window with two new editor commands:

  • Debug: Evaluate - add the text selection to the Debug Console
  • Debug: Add to Watch - add the text selection to the Debug Watch window

add to watch

Debugging - Debug environment configuration

When you create your initial debug configuration (launch.json), VS Code now asks for your specific debug environment (Node.js, Mono) and creates a launch.json specific to that environment. VS Code also detects the type of request ('launch' or 'attach').

select debug env

Debugging - Hover

Debug hover behavior has been improved: it is now possible to hover over object properties or variables that are not in the top stack frame.

Debugging - Node.js

Starting with this release, we are now launching the Node.js debug target in the internal VS Code Debug Console. This eliminates the tedious management of external console windows and brings program output and the Node.js REPL closer together. Since the Debug Console does not support programs that need to read input from the console, the external console is still available and you can enable it by setting the attribute externalConsole to true in your launch configuration.

Improved Syntax Highlighting

We updated all our syntax highlighters to emit tokens which are compatible with TextMate themes. Custom color themes now work with all languages, including HTML and CSS.

ColorSublime Batman Theme in 0.9.1:

theme-0-9-0

ColorSublime Batman Theme in 0.10.0:

theme-0-10-0

Environment Variable Substitution

You can now reference environment variables directly in your launch.json and tasks.json files through ${env:Name} (e.g. ${env:PATH}).

Language - PHP

VS Code is now using the official PHP linter (php -l) for PHP language diagnostics. VS Code will now stay current with PHP linter improvements.

There are two new settings to control the PHP linter:

  • php.validate.executablePath: points to the PHP executable on disk. Set this if the PHP executable is not on the system path.
  • php.validate.run: controls whether the validation is triggered on save (value: "onSave") or on type (value: "onType"). Default is on save.

Languages - Workspace relative TypeScript version

If you want to use a newer version of TypeScript, you can define the typescript.tsdk setting pointing to a directory containing the TypeScript tsserver.js and the corresponding lib.*.d.ts files. This setting now supports relative paths so you can easily share this workspace setting with your team and use the latest TypeScript version (npm install typescript@next).

New Difference View Settings

You can now set your diff view preferences with two new settings:

  • diffEditor.renderSideBySide - Control whether to show differences in a side by side or inline view.
  • diffEditor.ignoreTrimWhitespace - Ignore leading and trailing (trim) whitespace when showing differences.

inline-diff-view

Previously these options where available in the editor's title bar.

Notable Bug Fixes

As always we fixed many issues.

Here are a few of the notable ones:

  • Editor code completion is slow with large completion lists, e.g. 30000 suggestions.