Editor - Find/Replace improvements:
In regex mode:
Can now search for ^, $ or ^$ thanks to a community contribution.
Can now replace with \n or \t.
Keyboard shortcuts:
New Find settings commands: toggle case-sensitive (Alt+C), toggle regex (Alt+R) and toggle whole word (Alt+W)
Ctrl+F puts focus in the Find input field.
Ctrl+H puts focus in the Replace input field.
When focus is in the Find widget input fields, Ctrl+Down put focus in the editor.
Changed defaults and key bindings:
Changed the defaults for editor.insertSpaces to true and editor.tabSize to 4. To get the previous behavior, you can change both settings back to "auto"
Changed the default key bindings on Linux for Insert Cursor Below (Ctrl+Alt+Down), Insert Cursor Above (Ctrl+Alt+Up), Move Line Down (Alt+Down) and Move Line Up (Alt+Up)
Editor - Cursor Blinking Options:
New setting to configure cursor blinking: editor.cursorBlinking with values blink, visible and hidden thanks to community contribution.
Editor - Select Current Line Command:
New select current line command (Ctrl+I) thanks to a community contribution.
Editor - Scroll Viewport Commands:
Thanks to a community contribution, VS Code has improved editor scroll support:
Scroll by one line up (Ctrl+Up) / down (Ctrl+Down)
Scroll by one page up (Ctrl+PageUp) / down (Ctrl+PageDown)
Key Bindings for Numeric Keypad:
Added support for function keys f13-f19 and for the numeric keypad keys:
numpad0-numpad9
numpad_multiply
numpad_add
numpad_separator
numpad_subtract
numpad_decimal
numpad_divide
Improvements for non US standard keyboard layouts:
VS Code dispatches key bindings based on [keyboard codes](
https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85). In keybindings.json and in all the UI, we used to render the key codes with the produced characters under the US standard keyboard layout. We received feedback that this was very confusing, therefore, we created a new Node.js module native-keymap that is used in VS Code to render the key bindings using the system's current keyboard layout. For example, Split Editor when using a French (France) keyboard layout is now rendered as Ctrl+*.
When editing keybindings.json, we now highlight misleading key bindings - those that are represented in the file with the character produced under the standard US keyboard layout, but which need pressing keys with different labels under the current system's keyboard layout.
Finally, we added a new widget that helps input the key binding rule when editing keybindings.json. To launch the Define Keybinding widget, press Ctrl+K Ctrl+K. The widget listens for key presses and renders the serialized JSON representation in the text box and below it, the keys that VS Code has detected under your current keyboard layout. Once you've typed the key combination you want you can press Enter and a rule snippet will be inserted.
key binding widget.
ES6 is the new default:
We have made ES6 the default for JavaScript files. This means you don't need to create jsconfig.json files to enable new syntax and by default you get suggestions for ES6-types, like Promise, Set, Map, String.startsWith and much more. Thanks to a community contribution.
At the same time, the grammar used to colorize JavaScript was also updated to support the ES6 syntax.
TypeScript Update:
The TypeScript language service was updated to version 1.7.5
JSX Support:
To improve the JavaScript and JSX support, the plan is to adopt Salsa. There is good progress on the Salsa project, but until VS Code has switched over to Salsa, we can only offer a workaround for using VS Code with JSX.
Install the vscode-eslint extension and configure JSX support. This will provide you with validation in JSX files
If you are using React constructs inside .js files then you can install the js-is-jsx extension which changes the file mapping so that .js files are treated as .jsx files. Be aware that if you install this extension, you lose the existing language support for .js files.
The grammars used to colorize JS and JSX are now aligned.
Extension Debugging:
We improved extension debugging when connecting the debugger to the extension. The debugger will no longer try to reconnect to the extension when you close the 'Extension Host`. In addition, the debugger will connect faster to your extension.
Extensions Show Outdated Extensions:
Thanks to a community contribution, there is now a Show Outdated Extensions command, that shows all outdated extensions and lets you quickly install their updates.
Installed Extension Issues:
If VS Code identifies an issue with an installed extension, it will display an issues prompt on the Status Bar. Click on the issues prompt to see the extension issue details and have the option to uninstall the extension.
Extension Gallery:
There is now proxy support for the extension gallery
Extension Deactivation:
If an extension exports a function named deactivate(), VS Code now calls it on shutdown
File Picker improvements and fuzzy search:
The file picker ("Quick Open") is now able to search on file paths when you include slash (Mac/Linux) or backslash (Windows) in the search term. This allows you to list all the files of a directory easily.
A new setting filePicker.alternateFileNameMatching enables fuzzy searching for the file picker. Once enabled, the search term will match on the full path of the file by default, without having to include path separators in the query. In addition, a search term will match in a more fuzzy way on the path compared to the default. For example, a search for fb will match a file foobar because the filename contains f and b. We also added a new sorter for the picker when fuzzy searching is enabled which tries to put the most relevant results to the top. Please try out this feature and give us feedback so that we can tune the experience.
Persisted Zoom Level:
A new setting window.zoomLevel allows you to change and persist the zoom level of the window. The default value is 0 and each increment increases the zoom level by 20% similar to the effect of the View menu Zoom in command. Unlike the zoom level set with the Zoom in and Zoom out commands, the window.zoomLevel is a setting persisted across VS Code sessions
window.openFileInNewWindow:
The setting window.openInNewWindow was renamed to window.openFilesInNewWindow to clarify its purpose. You can still use the old setting but we ask you to update to the new name
Themes:
Various fixes to the default light and dark theme. Due to the move to TextMate tokenizers in the last release, there were changes in the appearance of the default light and dark theme. Some themes got far more colorful, in particular JavaScript, while other languages lost colors, e.g. Jade and XML. The goal was to stay as close as possible to what we had in the 0.9.0 release so we use a few major colors: blue for keywords, green for comments and red for strings.
Emmet:
Emmet is now supported in JSX and TSX files.
Scoped Git Services:
It is now possible to open a sub-directory of a Git repository in VS Code. VS Code's Git services will still work as usual, showing all changes within the repository, but file changes outside of the scoped directory are shaded and have a tool tip indicating the file is located outside the current workspace.
Git Status Bar Actions:
There is now a Synchronize action in the Status Bar, next to the branch indicator, when the current checked out branch has an upstream branch configured.
If there is no upstream branch configured and the Git repository has remotes set up, a new Publish action is enabled. This will let you publish the current branch to remote.
Debug Console Wraps Text:
We now wrap long text in the debug console
Debug Breakpoints Polish:
We now show breakpoints in a more intuitive way:
A red filled circle represents an active breakpoint.
A gray filled circle represents a disabled breakpoint.
A gray hollow circle represents a breakpoint which could not be successfully registered with the debugger. For languages that are transpiled to JavaScript, this could mean that source maps are missing or invalid.
JSON Schema Contributions:
Extensions can now contribute JSON schema associations. The jsonValidation contribution point takes a file pattern and the URL of the JSON schema. Alternatively, extensions can also give the path to a schema file in the extension folder.
Language Server Extensions:
The language server protocol now supports all available language features. Please see the Language Server example for details on how to implement a language server.
Debug Adapter Development:
For Node.js based debug adapter development, we've made the VS Code Debug Protocol and an adapter default implementation available as npm modules: vscode-debugprotocol, vscode-debugadapter. The source for these modules lives in the GitHub repository vscode-debugadapter-node. Both mock-debug and node-debug have been updated to use the npm modules.
Engineering:
he VS Code GitHub repository supports continued integration for branches and pull requests - AppVeyor. During this first iteration of VS Code being open source, we tuned and documented more of our development workflows. We updated Electron to version 0.34.5. This includes a bug fix for the issue on Linux where the editor font was showing blurry on certain high DPI displays.
Notable Bug Fixes:
Submitted pull request to atom/node-oniguruma in order to improve performance when colorizing long lines with multi-byte characters.