Link Search Menu Expand Document

August 2020 (version 1.49)

Editor

Only format modified text

  • There is a new setting editor.formatOnSaveMode which makes Format on Save only apply to modified lines.

Format multiple selections#

  • multi cursor aware now

Find cursor move on type control

  • control whether cursor moves on find
  • editor.find.cursorMoveOnType

Workbench

Case changing in regex replace

  • This is done with the modifiers \u\U\l\L, where \u and \l will upper/lowercase a single character, and \U and \L will upper/lowercase the rest of the matching group

Improved keybinding diagnostics

  • Developer: Toggle Keyboard Shortcuts Troubleshooting
[KeybindingService]: / Received  keydown event - modifiers: [meta], code: MetaLeft, keyCode: 91, key: Meta
[KeybindingService]: | Converted keydown event - modifiers: [meta], code: MetaLeft, keyCode: 57 ('Meta')
[KeybindingService]: \ Keyboard event cannot be dispatched.
[KeybindingService]: / Received  keydown event - modifiers: [meta], code: Slash, keyCode: 191, key: /
[KeybindingService]: | Converted keydown event - modifiers: [meta], code: Slash, keyCode: 85 ('/')
[KeybindingService]: | Resolving meta+[Slash]
[KeybindingService]: \ From 2 keybinding entries, matched editor.action.commentLine, when: editorTextFocus && !editorReadonly, source: built-in.

Debugging

  • The filter also supports exclude patterns (for example, patterns starting with an exclamation mark !).
  • The filter only applies to program output but not to evaluations run by a user.

Languages

  • ships with TypeScript 4.0.2. This major update brings support for new language features such as variadic tuple types, along with editor tooling enhancements

Convert to optional chain refactoring

  • Use the new convert to optional chain refactoring to quickly convert a sequence of expressions such as a && a.b && a.b.c() to instead use optional chaining: a?.b?.c().

Deprecated tag support for JavaScript and TypeScript

/**
 * @deprecated Use `getMode()` instead.
 */
export function mode() { ... }

Smarter auto imports

Partial IntelliSense during project loads

  • Partial mode IntelliSense will only be used while a project is loading

Contributions to extensions

Remote Development

  • Automatic port forwarding: Ports detected in terminal output are automatically forwarded to the client.
  • Remote - Containers: You can now directly clone a repository from GitHub into a container volume.

GitHub Pull Requests and Issues

  • track multiple repos

Extension authoring

  • The terminal link provider API is now stable. This API enables language/lint extensions to handle more obscure link formats that are not already supported and even support language-specific behavior.

Task detail

‘in’ operator for ‘when’ clauses

  • source: https://code.visualstudio.com/updates/v1_49#_in-operator-for-when-clauses

  • There is a new in operator for when clauses. This new operator allows for a dynamic lookup of a context key’s value within another context key’s value. For example, if you wanted to add a context menu command to folders that contain a certain type of file (or something that can’t be statically known), you can now use the in operator to achieve it.

// Note, this assumes you have already defined a command called ext.doSpecial
"menus": {
  "explorer/context": [
    {
      "command": "ext.doSpecial",
      "when": "explorerResourceIsFolder && resourceFilename in ext:supportedFolders"
    }
  ]
}

Proposed extension APIs

Webview Views

  • allows extensions to contribute webview based views to the sidebar of panel. These vieAws can offer specialized presentations of data, more advanced user interfaces, and much more.

Engineering

Electron 9.0 Update

  • Chromium 83.0.4103.122 and Node.js 12.14.1.

Copyright © 2020 Thence LLC