Webcode 1 2

broken image


Update 1.28.2: The update addresses these issues.

  1. Web Code 1 2 Sharkbite
  2. Web Code 1 201
  3. Web Code 13974636
  4. Web Code 1 2 0

General education code provisions 1 - 32500 title 2. Elementary and secondary education 33000 - 64100 title 3. Postsecondary education 66000 - 101060. Website design, Web design hosting and cloud services. Website builder tools and Wix expert. Wix discount coupon. Website designer and SEO consultant. SEO Expert Digital marketing, social media manager. Effective social activity and content.

Update 1.28.1: The update addresses these issues.

Downloads: Windows: UserSystem | Mac | Linux 64-bit: debrpmtarball | 32-bit: debrpmtarball

Welcome to the September 2018 release of Visual Studio Code. As announced in the September iteration plan, we focused on housekeeping our GitHub issues and pull requests. Across all of our VS Code repositories, we closed (either triaged or fixed) 3918 issues. While we closed issues, you created 2187 new issues. This resulted in a net reduction of 1731 issues. The main vscode repository now has 2472 open feature requests and 625 open bugs. In addition, we closed 212 pull requests.

  1. Code Black is a heart-pounding medical drama that takes place in the busiest, most notorious ER in the nation, where the staggering influx of patients outweigh the limited resources available to the extraordinary doctors and nurses whose job is to treat them all—creating a condition known as Code Black.
  2. DEVELOPER HOME WebCode 1.2 WebCode is an HTML editor designed to allow you to work on the pages in your site without needing multiple windows, or switching to finder. It also supports dragging of images and html files to insert a link or image with a relative url. You can also create files into the files list, allowing you to add another page.
  3. CS is more important than ever. Let's build the future we want.

It was great to see how much you care about our progress. Benjamin Lannon published a personal site with a live tracker of the issue numbers in our main repository. It nicely shows the progress we made since September 11:

It also shows what happens as soon as we stop paying attention to reducing issues. Below are the last three days of last week while we were getting ready for this release. As you can see, there will be more issue grooming iterations in our future.

During this housekeeping milestone, we addressed several feature requests and community pull requests also resulted in new features. Here are some of the release highlights:

  • Custom file icons - VS Code file icons reflect file type in your OS explorer.
  • Project level snippets - Tune your snippet collection per workspace.
  • Editor Tab completion - Use Tab to easily cycle through IntelliSense suggestions.
  • Jump to last edit - New command to go to the location of your last edit.
  • Save without formatting - Save a file without changing the existing formatting.
  • Git improvements - Better delete conflict handling, new rebase on sync option.
  • Rename via import path - Rename a JS/TS file through its import path.
  • Convert to async refactoring - Quickly update a function to use async and await.
  • Better Markdown folding - Collapse code blocks, multiline lists, and embedded HTML.

If you'd like to read these release notes online, go to Updates on code.visualstudio.com.
You can also check out this 1.28 release highlights video from Cloud Developer Advocate Brian Clark.

Insiders: Want to see new features as soon as possible? You can download the nightly Insiders build and try the latest updates as soon as they are available.

Workbench

Custom title and menu bar on Windows by default

The custom title bar and themable menus described in previous release notes are now enabled by default on Windows. The setting 'window.titleBarStyle' was defaulted to 'custom' for the entire last month on Windows in Insiders, and we are now ready to make this the default experience.

File icons per file type

On macOS and Windows, VS Code registers as the default editor for well-known file types. VS Code now ships custom icons for the some of the common VS Code file types. These icons will show up in the OS explorer when the size of the icons is configured to be medium to large. For small icon sizes, we decided to preserve the VS Code logo as the icon.

Project level snippets

Snippets can now be scoped to a project and shared with your team. Simply use the Preferences: Configure User Snippets command or create *.code-snippets file in the .vscode folder. Project snippets work just like other snippets, they show up in IntelliSense and in the Insert Snippet action where they now have their own category.

Snippets also now support multiple prefixes. If you cannot decide if your copyright header snippet should be prefixed as header, stub, or copyright, you can have them all. Simply use a string array as the prefix property.

Symbolic links support when opening folder

For a long time, VS Code has been resolving the symbolic link to a folder when opening. This meant that even though the symbolic link was there for a reason, VS Code was ignoring it and always opened the resolved link path. We have decided to change this behavior and preserve the symbolic link.

Note: Certain features will work with reduced functionality when opening a folder as a symbolic link (for example debugging and Git integration).

Record and search keyboard shortcuts

In the Keyboard Shortcuts editor (⌘K ⌘S (Windows, Linux Ctrl+K Ctrl+S)), you can now search for keybindings just by typing keystrokes instead of typing out the key name (example 'shift'). Turn on the Recording Keys mode and type the keystrokes you want to search for.

You can also enter into the Recording Keys mode using ⌥⌘K (Windows, Linux Alt+K). Press the Esc key to exit from Recording Keys mode.

Toggle panel changes

We decided to revisit the behavior of our commands for toggling panels (Terminal, Output, Problems, Debug Console). You can follow issue 19400 for the background on the change.

The old behavior was:

  • Panel shows if not visible.
  • Panel hides if visible.

The new behavior is:

  • Panel shows if not visible.
  • Panel hides if having keyboard focus.
  • Panel gets focused when visible but not focused.

To get back the previous behavior, you can configure a keybinding to close the panel when the related panel is active.

For example, for Output panel:

The list of panel identifiers is:

  • terminal - Integrated Terminal
  • workbench.panel.markers - Problems panel
  • workbench.panel.output - Output panel
  • workbench.panel.repl - Debug Console panel

Copy Relative Path

The command to copy a file path as relative path is now more prominently exposed in the context menus of the File Explorer as well as editor tabs.

Exclude recently opened files from Quick Open

A new setting search.quickOpen.includeHistory allows you to control if files that were recently opened should be part of the Quick Open file picker. By default, files that were recently opened will appear to the top of the search and other files from the workspace below. If you would prefer to not see recently opened files on top, you can change this setting to false.

Disable trash when deleting files

If you are seeing issues when deleting files from the Explorer when they move to the OS trash, you can now set files.enableTrash to false to never use the OS trash when deleting. Doing so will change the Delete action and keybinding on the File Explorer to bypass the OS trash and delete permanently. You will still see a prompt before the delete happens.

Prompt to open workspace file if detected

When opening a folder that contains one or more .code-workspace files in the root, VS Code now shows a notification to ask if you'd like to open the workspace file instead. Opening a workspace file will usually provide a better experience than just opening the folder. You can learn more about multi-root workspaces in our documentation.

Do not restore view state when reopening a file

VS Code has always remembered the view state (cursor location, folded sections, etc.) of a file even after the file was closed. There is now a new setting workbench.editor.restoreViewState to drop this view state when a file is closed. This allows you to always start at the top of the file after reopening it.

Close a file across all editor groups

A new command Close Editor in all Groups (workbench.action.closeEditorInAllGroups) allows you to close the currently active file across all editor groups.

Problems panel

Show error codes

The Problems panel now shows the error code of a problem if it has any.

Improved keyboard navigation

The Problems panel has become more keyboard friendly:

  • You can start typing to filter when the panel has focus.
  • You can use ⌘F (Windows, Linux Ctrl+F) to give focus to the filter box and ⌘↓ (Windows, Linux Ctrl+Down) to give focus to the problem list from the filter box.

Output channel for telemetry events

In the July release, we added a feature where all telemetry events sent by VS Code also get logged to a local file when you set the log level to Trace using the Developer: Set Log Level... command. You can now view the contents of this file in the Log (Telemetry) channel of the Output panel. As before, you can view the file directly, using the Developer: Open Log File... command.

Give focus to a custom view

You can now use a command to give focus to a custom view. There is a separate command provided for each custom view.

Linux URL handling

Once a feature limited to Windows and macOS, now you can also open VS Code URLs on Linux! These URLs are useful for many different features such as automatically installing extensions, for example vscode-insiders:extension/vscodevim.vim.

Editor

Tab completion

Editor Tab completion can now complete all kind of suggestions. After setting 'editor.tabCompletion': 'on', pressing Tab will complete any prefix, not just snippets. Also, pressing Tab will insert the next suggestion and ⇧Tab (Windows, Linux Shift+Tab) will insert the previous suggestion.

Navigate to last edit location

A new command Go to Last Edit Location (workbench.action.navigateToLastEditLocation) was added to quickly navigate to the last location in a file that was edited. The default keybinding is ⌘K ⌘Q (Windows, Linux Ctrl+K Ctrl+Q).

Save without formatters

The new command Save without Formatting (workbench.action.files.saveWithoutFormatting) can be used to save a file without triggering any of the save participants (for example, formatters, remove trailing whitespace, final newline). The default keybinding is ⌘K S (Windows Ctrl+K Ctrl+Shift+S, Linux Ctrl+K S). This is useful when editing files outside your normal projects, which may have different formatting conventions.

IntelliSense locality bonus

Suggestions can now be sorted based on their distance to the cursor. Set 'editor.suggest.localityBonus': true and you'll see, for example, function parameters showing up at the top of the IntelliSense list.

Emmet

We have made a few improvements to the Emmet features this iteration:

  • If you have enabled Emmet in JavaScript files, then you can now have Emmet abbreviation expansion inside the </code> tags in an HTML file.</li><li>The <strong>Emmet: Wrap with Abbreviation</strong> feature is no longer restricted to files with the <code>.html</code> extension.</li><li>The <strong>Emmet: Balance (inward)</strong> feature now works on current node even if there is no selection.</li><li>The bug of wrongfully considering CSS selectors with a <code>#</code> in SCSS files as valid abbreviations is now fixed.</li></ul><h2>Source Control</h2><h3>Change SCM commit keybinding</h3><p>You can now change the default keybinding to accept a commit message in the SCM view, using the <code>scm.acceptInput</code> command.</p><h3>SCM status bar tracks active file</h3><p>The SCM Status Bar contribution in the bottom left now tracks whichever repository the currently active file belongs to. This reduces confusion when editing files across your multi-folder workspace.</p><h2>Git integration</h2><h3>Better handling of deletion conflicts</h3><p>Deletion conflicts have always been detected by VS Code. Now there is a better UI flow for handling them, you will see the undeleted version when opening the change and you get to decide what happens to the file when staging it: keep it or delete it.</p><h3>Configure long commit message warning threshold</h3><p>The <code>git.inputValidationLength</code> setting now lets you configure how long a commit message must be before a warning appears as you edit it.</p><h3>Add folder to workspace after 'git init'</h3><p>After initializing a Git repository, VS Code will now ask you whether you'd like to add it to the current workspace.</p><h3>Configure branch validation rules</h3><p>You can now control how branch name validation works with the powerful <code>git.branchValidationRegex</code> and <code>git.branchWhitespaceChar</code> settings. See issue 50241 for more details.</p><h3>Always rebase when running Sync</h3><p>The <code>git.rebaseWhenSync</code> setting will let you configure the <strong>Sync</strong> command to always use rebase instead of merge when running.</p><h3>Disable progress reporting</h3><p>With the <code>git.showProgress</code> setting, you can now disable showing progress during Git operations.</p><h3>Push --force</h3><p>There are times in your development day-to-day in which you just feel like taking a risk. Running <code>git push --force</code> is a great example! VS Code now lets you forcefully push commits to a remote without the need to go into a terminal. Use the <code>git.allowForcePush</code>, <code>git.useForcePushWithLease</code> and <code>git.confirmForcePush</code> settings to control this behavior. See issue 53286 for more details.</p><h3>Stash apply</h3><p>The following <code>git stash apply</code> commands are now featured in the global Command Palette: <strong>Git: Apply Stash...</strong>, <strong>Git: Apply Latest Stash</strong>.</p><h3>Always visible Staged Changes section</h3><p>You can now always keep the <strong>Staged Changes</strong> section visible in the SCM view, even when empty, using the <code>git.alwaysShowStagedChangesResourceGroup</code> setting:</p><h2>Terminal</h2><h3>Define keybindings to send custom sequences</h3><p>The new command <code>workbench.action.terminal.sendSequence</code> has been added which lets you send custom sequences directly to the active terminal. This allows things like sending arrow keys, enter, etc. using the <code>u</code> format for sending Unicode characters.</p><p>You can read more about this on the website.</p><h3>Find improvements</h3><p>Find in the terminal has been improved and now behaves more like find in the editor:</p><ul><li>Support for regex, case sensitivity and match word.</li><li>The standard find next/previous keybindings (F3, shift+F3) now work.</li><li>Find results that are wrapped across lines are returned.</li></ul><h2>Languages</h2><h3>TypeScript 3.1</h3><p>VS Code 1.28 ships with TypeScript 3.1.1. This release brings new language features such mappable tuple and array types, along with a number of tooling improvements, and bug fixes.</p><h3>Rename import path</h3><p>Realize that an imported file could use a better name? Now can you rename the referenced file just by renaming the import:</p><h3>Convert to async function</h3><p>The new <strong>Convert to async function</strong> suggestion for JavaScript and TypeScript rewrites functions that use <code>.then</code> Promise chaining to use <code>async</code> and <code>await</code>:</p><p>Note that this feature requires that the setting <code>javascript.validate.enable</code> is set to true.</p><h3>New settings for JS/TS suggestions</h3><p>We've cleaned up the settings names for JavaScript and TypeScript suggestions, and added a few additional settings that provide finer grained control:</p><ul><li>All suggestion related settings are now under <code>javascript.suggest.*</code> and <code>typescript.suggest.*</code>.</li><li><code>typescript.useCodeSnippetOnMethodSuggest</code> has be renamed to <code>javascript.suggest.completeFunctionCalls</code> and <code>typescript.suggest.completeFunctionCalls</code>.</li><li><code>javascript.nameSuggestions</code> has been renamed to <code>javascript.suggest.names</code>.</li><li><code>typescript.autoImportSuggestions.enabled</code> has been renamed to <code>javascript.suggest.autoImports</code> and <code>typescriptscript.suggest.autoImports</code>.</li><li>The new <code>javascript.suggest.enabled</code> and <code>typescript.suggest.enabled</code> let you completely disable JS or TS suggestions.</li></ul><h3>Semicolon as a commit character for JS/TS</h3><p>Semicolon is now a commit character for JavaScript and TypeScript suggestions. This means that you can accept that current suggestion just by typing <code>;</code>. Existing commit characters also include <code>.</code> and <code>(</code>.</p><p>You can disable commit characters by setting <code>'editor.acceptSuggestionOnCommitCharacter': false</code>.</p><h3>HTML and CSS path completion excludes dot files</h3><p>Files that start with <code>.</code> are now excluded from path completion results.</p><h3>Better Markdown folding</h3><p>Multiline lists, fenced code blocks, and raw HTML are now foldable in Markdown files:</p><h3>Markdown preview now opens links to local files in the preview</h3><p>In the Markdown preview, clicking on a link to a local file will now open that file's preview:</p><p>This makes browsing documentation easier. Use the <code>markdown.preview.openMarkdownLinks</code> setting to configure how links are handled. Valid settings values are:</p><ul><li><code>inEditor</code> - Open local Markdown links in an editor.</li><li><code>inPreview</code> - Open local Markdown links in the current preview. This is new default behavior.</li></ul><h2>Extensions</h2><h3>Search filtering improvements</h3><p>You can now use the <code>@category</code> filter along with other filters for installed extensions like <code>@installed</code>, <code>@enabled</code>, <code>@disabled</code> and <code>@outdated</code> to compose your extension search query. For example, you could search for installed themes, using the query <code>@installed @category:themes</code> or installed extensions that contribute snippets, using <code>@installed @category:snippets</code>.</p><h3>Disabled extensions not counted as outdated</h3><p>The badge on the Activity Bar for the Extensions view that shows the count of outdated extensions will now exclude disabled extensions. The intention of this badge was to let you know that there are outdated extensions that you may want to update. Since disabled extensions aren't currently being used, including them in the count would only be a distraction.</p><h3>Extension Host unresponsive</h3><p>VS Code executes extensions in a separate process called the <strong>Extension Host</strong>. This process communicates with the renderer/UI process using message passing. We have added better tracking of the messages to the Extension Host and if a message is not acknowledged within 10 seconds, we will show the following notification:</p><p><strong>What does it mean</strong>: Most likely an extension is doing CPU intensive operations that end up <strong>blocking the Extension Host process for more than 10 seconds</strong>.</p><p><strong>What to do</strong>: One option is to <strong>wait</strong> for the completion of the operation and simply ignore the notification. Another option is to <strong>investigate</strong> which extension is causing the high CPU usage by going to the <strong>Running Extensions</strong> view and start profiling the Extension Host. You can then create an issue directly against the problematic extension. Finally, if you believe the extension has entered an infinite loop, and it does not appear that it will recover, you can <strong>restart</strong> the Extension Host.</p><h2>Engineering</h2><h3>Extensions and webpack</h3><p>We have continued our webpack effort and now most of the bundled extensions are webpack'ed. As a re-fresher: this helps to reduce the startup time for extensions because there are fewer files to load and less source code to parse. It also helps to reduce the install time because fewer files need to be extracted and written to disk.</p><p>This milestone we have trimmed the bundle by another 2803 files. In July we started with 9000 files, by August we were down to 4650, and in September we have 1847!</p><h2>Preview Features</h2><p>Preview features are not ready for release but are functional enough to use. We welcome your early feedback while they are under development.</p><h3>Continued Electron 3.0 exploration</h3><p>During this milestone, we continued to explore bundling Electron 3.0.0 into VS Code. This is a major Electron release and comes with Chrome 66 and Node.js 10.x (a major leap forward compared to our current version that has Chrome 61 and Node.js 8.x). We plan to push out the update to our Insiders users in the near future to gather additional feedback. If you are interested in helping out, make sure to install VS Code Insiders.</p><h2>Miscellaneous</h2><h3>Blurriness on macOS Mojave</h3><p>If you have updated to macOS 10.14 (Mojave), you might have noticed that fonts in VS Code look blurry if you are not using a high-DPI monitor.</p><p>A workaround for this is to run:</p><p>from a terminal followed by restarting your computer.</p><p>Note that this change is global for every application and not specific to VS Code. See issue 51132 for the related discussion.</p><h3>Electron update</h3><p>In this release, we updated from Electron 2.0.7 to 2.0.9. Most notably, this allows VS Code to run again on ArchLinux (issue 55934).</p><h2>Extension Authoring</h2><h3>Handling URLs for uninstalled extensions</h3><p>Back in July, we released the URI Handler API for extensions to handle system-wide URIs. With the latest release, VS Code can even handle URIs for extensions which are not yet installed. Once a user opens such a URI, VS Code will search for the extension in the Marketplace, propose the user to install it, and launch VS Code passing in the URI. This allows extensions to have a smooth startup flow which takes users from a webpage to running the extension with certain state.</p><h3>Diagnostic error codes</h3><p>Since diagnostic error codes are now surfaced in Problems panel, it is no longer necessary for extensions to add error codes to the <code>Diagnostic.message</code> property.</p><h3>Better configuration when clauses</h3><p>When authoring keybindings or menu visibility, when clauses are used. In a when clause, you can reference a configuration (setting) value by prefixing it with <code>config.</code>, for example <code>config.editor.tabCompletion</code>. Only boolean configuration properties had been supported but with this release, you can also use string and number values.</p><h3>Change the language of a text document</h3><p>There is a new API function to change the language mode of a document, <code>vscode.languages.setTextDocumentLanguage</code>. The API takes a document and the language identifier you want to use. To know what language ids are available, use <code>vscode.languages.getLanguages</code>.</p><h3><code>workspaceContains</code> activation</h3><p>Extensions can use the <code>workspaceContains</code> activation event to be activated when a workspace is opened that contains a file matching some pattern. For example, a PHP extension might ask to be activated when a workspace with a file matching <code>**/*.php</code> is opened. This isn't new, but users have pointed out that the search process can run for a long time and use a lot of CPU when a large workspace is opened.</p><p>We made a couple changes to make these searches less impactful. The first is that these searches will now respect the users' <code>files.exclude</code>, <code>search.exclude</code>, and <code>search.useIgnoreFiles</code> settings. In other words, if the user is not able to find a file in a normal text search or file search via Quick Open, a <code>workspaceContains</code> pattern won't match on that file. This greatly reduces the number of files that we have to search for <code>workspaceContains</code>, and reduces incorrect activations when it matches a file that isn't really part of the project, for example, some file buried in <code>node_modules/</code>.</p><p>The second change is to impose a 7 second limit on these searches. If the search has not completed after 7 seconds, we kill the search process and activate the extension anyway.</p><p>Overall, this should reduce cases of your laptop mysteriously heating up after opening a large workspace in VS Code.</p><h3>New theme colors</h3><p>There are new theme colors:</p><ul><li><code>menu.separatorBackground</code>: Color of a separator menu item in menus.</li><li><code>sideBarSectionHeader.border</code>: Side bar section header border color.</li><li><code>inputValidation.infoForeground</code>: Input validation foreground color for information severity.</li><li><code>inputValidation.warningForeground</code>: Input validation foreground color for warning severity.</li><li><code>inputValidation.errorForeground</code>: Input validation foreground color for error severity.</li><li><code>editor.snippetTabstopHighlightBackground</code>: Highlight background color of a snippet tabstop.</li><li><code>editor.snippetTabstopHighlightBorder</code>: Highlight border color of a snippet tabstop.</li><li><code>editor.snippetFinalTabstopHighlightBackground</code>: Highlight background color of the final tabstop of a snippet.</li><li><code>editor.snippetFinalTabstopHighlightBorder</code>: Highlight border color of the final tabstop of a snippet.</li><li><code>activityBar.inactiveForeground</code>: Activity bar item foreground color when it is inactive.</li></ul><h3>Debug API</h3><p><strong><code>resolveDebugConfiguration</code> needs to explicitly return <code>null</code> to open <code>launch.json</code></strong></p><p>Previously, if <code>resolveDebugConfiguration</code> returned a launch configuration that did not have a <code>type</code> attribute, VS Code would automatically open an underlying <code>launch.json</code> file. After feedback from extension authors, we decided to give extensions more control over this scenario.</p><p>Now <code>resolveDebugConfiguration</code> has to explicitly return the value <code>null</code> to prevent the debug session from starting and open <code>launch.json</code> instead. Returning the value <code>undefined</code> simply prevents the debug session from starting. As before, returning a configuration with a <code>type</code> attribute will start a debug session.</p><h2>Proposed Extension APIs</h2><p>Every milestone comes with new proposed APIs and extension authors can try them out. As always we are keen on your feedback. This is what you have to do to try out a proposed API:</p><ul><li>You must use Insiders because proposed APIs change frequently.</li><li>You must have this line in the <code>package.json</code> file of your extension: <code>'enableProposedApi': true</code>.</li><li>Copy the latest version of the vscode.proposed.d.ts file into your project.</li></ul><p>Note that you cannot publish an extension that uses a proposed API. We may likely make breaking changes in the next release and we never want to break existing extensions.</p><h3>Debug API</h3><p><strong>new <code>DebugConfigurationProvider.provideDebugAdapter</code> replaces <code>DebugConfigurationProvider.debugAdapterExecutable</code> commands</strong></p><p>Previously we added the proposed API <code>DebugConfigurationProvider.debugAdapterExecutable</code> so that an extension can return a dynamically calculated path (and corresponding program arguments) for the debug adapter about to be launched by VS Code. In this milestone, we are revising the initial design based on the feedback received (for example #45220, #56646, #57706, #54465).</p><p>The new API method is called <code>provideDebugAdapter</code> and now we pass in the debug session, the workspace folder, the executable information from the <code>package.json</code>, and the resolved launch config. With this information, an extension has the 'full picture' when being asked to create the debug adapter.</p><p>In addition, we now support more ways for starting and connecting to the debug adapter implementation. For this, a descriptor object can be returned from the <code>provideDebugAdapter</code> method:</p><ul><li>A <code>DebugAdapterExecutable</code> descriptor can be used to launch the debug adapter as an external process per session and communicates with it via stdin/stdout. With the new API, it is now possible to specify the working directory and environment variables for the debug adapter.</li><li>A <code>DebugAdapterServer</code> describes a server process that handles multiple sessions and communicates via a socket.</li><li>A <code>DebugAdapterImplementation</code> can be used for an in-place implementation that has no communication overhead. This option relies on a small modification to the Node.js based client library for DAP and is planned for October.</li></ul><p>Please note that this is proposed API and cannot be used in extensions published on the Marketplace. However, we'd appreciate your feedback for <code>DebugConfigurationProvider.provideDebugAdapter</code> on issue 45220.</p><h3>Comment editing and deletion</h3><p>In the last iteration, we introduced the <code>DocumentCommentProvider</code> to allow extensions to create and manage comments within the editor. We have added new methods to this provider to support the editing and deletions of comments. Comments themselves now also have flags that indicate if they support edit or delete. If the extension sets one of these flag and provides an appropriate edit or delete method, actions to edit or delete the comment will be shown when hovering or focusing on a comment within the editor:</p><h2>New Commands</h2><table><thead><tr><th>Key</th><th>Command</th><th>Command id</th></tr></thead><tbody><tr><td><span><span>⌘K ⌘Q</span> (Windows, Linux <span>Ctrl+K Ctrl+Q</span>)</span></td><td>Navigate to the last location edited</td><td><code>workbench.action.navigateToLastEditLocation</code></td></tr><tr><td><span><span>⌘K S</span> (Windows <span>Ctrl+K Ctrl+Shift+S</span>, Linux <span>Ctrl+K S</span>)</span></td><td>Save file without running save participants (formatters, etc.)</td><td><code>workbench.action.files.saveWithoutFormatting</code></td></tr><tr><td>Close the active file across all editor groups</td><td><code>workbench.action.closeEditorInAllGroups</code></td></tr><tr><td>Toggle diff editor inline and side-by-side mode (deprecates <code>toggle.diff.editorMode</code>)</td><td><code>toggle.diff.renderSideBySide</code></td></tr></tbody></table><h2>New Documentation</h2><h3>GitHub Pull Request extension blog post</h3><p>You can read Kenneth's recent blog post announcing the new GitHub Pull Request extension and discussing the collaboration between VS Code and the GitHub Editor team.</p><h3>Using Azure Pipelines blog post</h3><p>In Visual Studio Code using Azure Pipelines, VS Code engineer João Moreno describes how VS Code is now using Azure Pipelines for its build and continuous integration (CI) infrastructure.</p><h3>New PowerShell topic</h3><p>PowerShell in Visual Studio Code shows the PowerShell integration through the Microsoft PowerShell extension. The extension supports powerful language features such as IntelliSense, Go to Definition, and Find All References as well as debugging and code snippets.</p><h3>New Python Django tutorial</h3><p>There is a new Use Django in Visual Studio Code tutorial showing how you can quickly create, edit, and debug a Python Django web application in VS Code.</p>
Web code 1 2 0

Notable Fixes

  • 48051: After formatting you need to scroll left
  • 31619: Must tab through deleted tab stops in snippets
  • 58327: Debug toolbar buttons disabled
  • 35935: 'Clear Recently Opened' should also clear editor quick pick history
  • 58799: Reveal untitled file when saving
  • 29553: Preserve quick open input on Escape
  • 58222: UriDisplayService is missing remote share path name
  • 54213: Mechanism to abort the debug launch without showing launch.json
  • 52511: Debug Hover Widget - Enable the widget resizing for long items whose overflow is hidden
  • 50569: Conditional breakpoint prompt should offer to enable breakpoints if breakpoint is already disabled
  • 42737: Extensions: allow to right click to bring up gear menu
  • 58434: Use --force arg to prevent prompts while installing extensions from CLI.

Thank You

Last but certainly not least, a big Thank You! to the following folks that helped to make VS Code even better:

Contributions to vscode:

  • Sribalaji M (@1AmNegan): Center viewport for nextChange/previousChange using keybinding PR #51235
  • Agustín Rodríguez (@agurodriguez): styles for diff on Markdown preview PR #59289
  • Andrew Casey (@amcasey): Add GDPR annotation for typescript-language-features/languageserviceerrorresponse PR #57182
  • Andy Li (@andyli): override Ubuntu's default integrated terminal font options (#_35901) PR #56429
  • Aliaksandr Stelmachonak (@ava1ar): Added ARM64 build support PR #52119
  • Beau Allison (@beauallison): Align GIT light colored check icon with dark PR #50526
  • Andre Wachsmuth (@blutorange): fix promise polyfill, chaining promises works PR #57723
  • Bruno Finger (@brunofin): Replace brackets as well upon creating a branch PR #57374
  • David Staheli (@DavidStaheli): Use the new VSTS YAML syntax PR #57745
  • Dave Williams (@davnicwil): New config to turn off TypeScript autocomplete suggestions PR #58011
  • Dustin Campbell (@DustinCampbell): Update C# grammar PR #57451
  • Eric Amodio (@eamodio): Image uris with querystring not being detected properly PR #58314
  • @Git-Lior
    • Hide dirty-diff decorator when inside the diff-editor PR #58373
    • Improve no user.email/user.name config error message PR #58174
  • Guy Waldman (@guywald1)
    • Fix dirty setting update logic PR #58926
    • Add smarter filename suggestions, #57528 PR #58009
  • Jay Rodgers (@headmelted)
    • Adding missed dependency libxss1 PR #59181
    • Adding electron ARM and ARM64 tasks for cross-compiling PR #58436
  • Eric Gang (@Hirico): Preserve the revealed area after using 'Open File' from git-diff editor (fix #53465) PR #54867
  • Jatin Sandilya (@jats22): Remove absolute path for python PR #56943
  • Jason Bright (@jgbright)
    • Add Markdown list folding, #57104 PR #57899
    • Git rebase detection PR #57651
  • Jim Hessin (@jhessin): Update language-configuration.json PR #44566
  • JYX (@jjyyxx): Fix inaccurate description in tsconfig.schema.json PR #58582
  • Jonathan Perret (@jonathanperret): Fix typos in workbench.editor.labelFormat PR #59155
  • Konstantin Müller (@konstantin-mueller): #54204 Add commands to apply stash PR #54300
  • limerick (@limerickgds): Generator method of class autocomplete causes star(*) to be add… PR #51557
  • Luis Zuniga (@luiszun): Check the path for spaces before sending. Avoids filenames to be inte… PR #56966
  • @lzmkony: Delete the duplicated function PR #57700
  • Muhammad Azeem (@manixate): Prevent scrollbar to be considered as a drop target for drag-and-drop PR #49747
  • Matt Hardcastle (@MattHardcastle): Do not auto-close when ending with open PR #55315
  • Maarten Fonville (@mfonville): Update Electron to 2.0.9 PR #58382
  • Marat Abdullin (@mshoho): An option to copy only plain text to clipboard. PR #54155
  • Néstor Hernández Ojeda (@nesukun): Add support for force push and force-with-lease PR #53286
  • Nilesh Kevlani (@njkevlani): Added new command for sending custom sequence to terminal PR #56962
  • Noam Yogev (@noamyogev84): Allow snippet json prefix to be an array to support multiple prefixes for the same snippet PR #59092
  • Alexandre ZANNI (@noraj): Add more Markdown extensions PR #58072
  • Sardorbek (@oneslash)
    • always show create a branch button PR #58731
    • add copy relative path as separate item like in other IDEs PR #57602
    • check only dot at the end of a branch PR #58825
  • Karthikayan (@ParkourKarthik)
    • improve handling fallback of theme colors in terminal PR #57100
    • add option for input validation foreground color PR #57734
  • Chi Wang (@patr0nus): Fixes the 'Invalid start index' error PR #57617
  • Morten N.O. Nørgaard Henriksen (@raix): Add branch name validation and whitespace config PR #50712
  • Rik Smeets (@rik-smeets): Add missing access keys (mnemonics) for menu items PR #58412
  • Rodrigo Varas (@rodrigovaras): Fix to make the EH debugging to work when live share proxy the debug adapter PR #58227
  • Segev Finer (@segevfiner)
    • Try to checkout a new local branch when checking out a remote branch PR #54897
    • Add URL handler support for Linux desktops PR #56727
  • @sucicf1: Fix#35905 PR #58380
  • Thomas Basche (@tombasche): Allow empty git commit PR #56048
  • tsangint (@tsangint): Fix typo PR #57192
  • Alexander (@usernamehw): Fix tab focus related issues PR #57821
  • Winner Crespo (@wistcc)
    • Allowing disable the submodule auto detection warning PR #51111
    • Fixing text when reverting changes for deleted file PR #55975
    • Adding the git.syncRebase setting PR #52527
    • Adding the git.showStagedChangesResourceGroup config property PR #55976

Contributions to language-server-protocol:

  • Tyson Andre (@TysonAndre): Fix more typos PR #568

Contributions to vscode-languageserver-node:

  • Mathias R. Jessen (@IISResetMe): Fixed error msg misspellings of 'received' PR #414

Contributions to debug-adapter-protocol:

  • Antonino Perricone (@APerricone): Added harbour language by APerricone PR #6

Contributions to vscode-recipes:

  • Daryl Knowles (@darylknowles): Debug End-To-End should start local server with ng e2e PR #122
  • Karuppasamy M (@karuppasamy): Add recipes for Ruby on Rails PR #59
  • Trivikram Kamat (@trivikr): Added recipe for debugging node-tap tests in VS Code PR #128

Contributions to vscode-chrome-debug:

  • Sasha (@stristr): Use nullable targetTypes property for advanced debugging. PR #727

Contributions to vscode-chrome-debug-core:

  • @digeff
    • Update logging mechanism to not log sources PR #355
    • Fix first line bp chrome 69 PR #352
    • Fix break-on-load to make breakpoints on attach work PR #332

Contributions to localization:

There are almost 1200 members in the Transifex VS Code project team with about 100 active contributors every month. We appreciate your contributions, either by providing new translations, voting on translations, or suggesting process improvements.

Here is a snapshot of contributors for this release. For details about the project including the contributor name list, visit the project site at https://aka.ms/vscodeloc.

  • Bengali: Anisuzzaman Khan, abm_prottoy, Mushiar Khan, Mehedi Hassan.
  • Bulgarian: Любомир Василев.
  • Croatian: Nikša Mihaica.
  • Czech: Vít Staniček.
  • Danish: Kenneth Greig, Johan Fagerberg, Martin Fruensgaard.
  • Dutch: Gerald Versluis, Marco van den Hout.
  • French: Antoine Griffard, MayakoLyyn, Smrman, Etienne Blanc-Coquand.
  • German: J.M., Carsten Kneip, Volkmar Rigo, SetTrend.
  • Greek: Nikolaos Maliakkas.
  • Hindi: Ashwini Gupta, Shaswat Rungta.
  • Hungarian: Tar Dániel.
  • Chinese Simplified: Joel Yang, 子实 王, pluwen, Chris Pan 潘冬冬, danyeh.
  • Chinese Traditional: Duran Hsieh, Poy Chang, Alan Tsai, Han Lin, Shih-Ming Tung, Will 保哥.
  • Indonesian: G-RiNe Project, Wildan Mubarok, Rizki A. Wibowo, Riwut Libinuko, Azhe-kun, rodin, Febrian Setianto (Feber).
  • Italian: Luigi Bruno, Luca Bruni, Alessandro Alpi, Emilie Rollandin, Pascal Brax, Andrea Dottor, Riccardo Cappello.
  • Japanese: Satoshi Kajiura, Shunya Tajima, Yuichi Nukiyama, yoshioms, daisuke osada (daiskeh).
  • Korean: Kyunghee Ko, jaeyeon Kim, Junseong Jang, Jisan Oh.
  • Lithuanian: Martynas Jusys.
  • Malayalam: Kiren Paul.
  • Norwegian: Espen Klein Nilsen.
  • Polish: Artur, Patryk Brejdak, Adam Borowski, Mateusz Wyczawski.
  • Portuguese (Brazil): Roberto Fonseca, Bruno Sonnino, Danilo Dantas, Marcelo Fernandes, Thiago Custodio, Rodrigo Crespi, Marcelo Andrade, Alessandro Fragnani, Lucas Miranda, Otacilio Saraiva Maia Neto.
  • Portuguese (Portugal): António Santos,Diogo Barros, António Lourenço, jp2masa, Ruben Mateus, Henrique Silva, André Vala.
  • Russian: Ivan Kuzmenko, Roman Slauta.
  • Spanish: Jorge Serrano Pérez, José M. Aguilar, Alberto Poblacion, Carlos Mendible, Alejandro Medina, Andy Gonzalez,Carlos Herrera.
  • Tamil: Vijay Nirmal, rajakvk, Anand AV.
  • Turkish: Mustafa Turhan, Fırat Payalan, Selim Ata.

This is the fourth of a new series of posts on ASP .NET Core. This week, we'll be looking at the use of HTTPS in ASP .NET Core projects (using HTTP/1.1 today) and also HTTP/2 support for future ASP .NET Core projects.

HTTPS and SSL

If you're reading this blog post, you're probably familiar with HTTPS and the little lock symbol that appears on websites that have a valid SSL certificate. It's actually TLS these days, and you can read more about SSL, TLS and HTTPS here:

  • SSL, TLS, HTTPS: https://www.websecurity.symantec.com/security-topics/what-is-ssl-tls-https

Recently, the popular Google Chrome browser received an update that automatically displays a 'Not Secure' message for any website that doesn't use SSL. To address this, I updated this blog site to ensure that all embedded content use HTTPS when the site is loaded with HTTPS. I took it one step further and always enabled SSL so that site visitors going to WakeUpAndCode.com (with just HTTP) will be redirected to https://WakeUpAndCode.com.

This site is a WordPress site, so I was able to make the last change by installing a free plugin called Really Simple SSL.

If you're not convinced you need SSL, just read this thread on Twitter:

I so often get re-explaining from others that 'localhost doesn't need local https'. eyeroll.

Web Code 1 2 Sharkbite

this is not universally true. this tweet thread is the last time i'm gonna explain. henceforth it will just be linked to.

— getify (@getify) July 28, 2018

EDIT: If you need another nudge in the right direction, here's a gentle reminder from Troy Hunt, a well-known influential computer security expert in the Microsoft world. Troy highlights an anti-HTTPS debate that illustrates why it doesn't make sense to be against it.

Ah, the memories! This just came across my timeline again today, I've since been blocked for this and those tweets were deleted. Some people are *really* passionate about (not using) HTTPS! https://t.co/2wcVrbX175

— Troy Hunt (@troyhunt) November 6, 2018

HTTPS in ASP .NET Core

For years, it has been too easy for ASP .NET developers to build Web Apps and Web APIs without any HTTPS during development. It wasn't uncommon for web application developers to make excuses about not running their web apps with SSL on their local development environments, even if the application needed to be deployed to production with SSL (which production app doesn't?).

So, what's changed now? ASP .NET Core 2.1 has made it really easy to get started with SSL from Day 1. Depending on your development tool and your operating system, the steps may vary.

On Windows or MacOS, you can simply type the following CLI command:

You should see a popup asking you whether you want trust the certificate or not. Confirm the popup to install the development certificate.

For more options (including the removal of a dev cert), use the –help option, as shown below:

What about Linux? For Linux, you'll have to perform distro-specific steps for trusting the dev certificate, since there isn't a standard way to do this across various Linux distributions.

To get an SSL certificate for use in production, refer to your SSL instructions in your web' host's documentation. For documentation on IIS7 or Azure, see the following instructions:

  • IIS7: https://docs.microsoft.com/en-us/iis/manage/configuring-security/how-to-set-up-ssl-on-iis
  • App Service: https://docs.microsoft.com/en-us/azure/app-service/web-sites-purchase-ssl-web-site

SSL (TLS!) in Visual Studio

EDIT: As mentioned at the beginning of this article, it's actually TLS these days, even though people talk about SSL and SSL certificates. You may revisit the aforementioned Symantec article on SSL, TLS and HTTPS. Thanks, Jon Galloway, for reiterating this during the ASP .NET Community Standup on Tue Oct 30, while kicking off the standup with this blog post. 🙂

Visual Studio 2017 makes it even easier to create an SSL certificate for use with ASP .NET Core projects during development. When you create a new project in VS 2017 using any of the templates, there is an option to 'Configure for HTTPS'. Unless you have some unusual reason not to enable SSL, you should leave this option on to enable SSL.

When you create a new project using VS 2017 or dotnet new, the following code should be included within the template-generated project, inside the Configure() method of the Startup.cs class.

The call to app.useHsts() is typically used in a Production environment, and should be wrapped in the else portion of an if statement that checks whether you're in a Development environment or not. To learn more about HSTS, check out the following documentation:

  • Using HSTS while enforcing SSL: https://docs.microsoft.com/en-us/aspnet/core/security/enforcing-ssl?view=aspnetcore-2.1&tabs=visual-studio#http-strict-transport-security-protocol-hsts

The call to app.UseHttpsRedirection() is what allows your application to always force HTTPS usage by redirecting site users to the HTTPS version of your site even if they attempt to browse the HTTP version of your site.

To see this in action, check out the Startup.cs file from my earlier sample projects, from my previous blog posts, e.g.

MVCWebApp from PagesDemo: https://github.com/shahedc/PagesDemo/blob/master/MvcWebApp/Startup.cs

SimpleUpload: https://github.com/shahedc/SimpleUpload/blob/master/SimpleUpload/Startup.cs

HTTP/2 in ASP .NET Core

Before we wrap up, let's cover some high-level information on HTTP/2. First of all, what is it and why should we care? HTTP has been around for decades, without any push for a major upgrade since 1.1. Until now. With HTTP/2's introduction in 2015 and browser support pouring in since then, dev tools and web servers are also allowing any developer to make use of the features that HTTP/2 has to offer.

On the roadmap for ASP .NET Core 2.2, it mentions support for HTTP/2 in Kestrel and HttpClient:

  • ASP .NET Core 2.2 Roadmap: https://github.com/aspnet/Announcements/issues/307

While Kestrel's HTTP/2 doesn't have everything you would expect in HTTP/2 at this time, the ASP .NET Web Dev Blog has a good writeup on this:

  • ASP .NET Blog: https://blogs.msdn.microsoft.com/webdev/2018/08/22/asp-net-core-2-2-0-preview1-http-2-in-kestrel/

Web Code 1 201

Benefits of HTTP/2 include header compression and fully multiplexed streams over the same connection. According the above documentation, this 'allows multiplexed streams over the same TCP connection' which is coming in ASP .NET Core 2.2, so stay tuned!

For more on HTTP/2, check out Daniel Roth's video on 'What's new in ASP .NET Core?' from .NET Conf 2018 (September 2018), in the following video. You may jump straight to 39:00 to get to the part about HTTP/2 in ASP .NET Core.

Web Code 13974636

  • HTTP/2 @ 39:00: https://youtu.be/DDBmvOPfqzA?t=2340


The corresponding source code can be obtained on Github:

Web Code 1 2 0

danroth27/Http2Test: https://github.com/danroth27/Http2Test

  • What's coming in ASP.NET Core 2.2: http://www.talkingdotnet.com/whats-coming-in-asp-net-core-2-2/
  • ASP.NET Core 2.2 Roadmap: https://github.com/aspnet/Announcements/issues/307
  • HTTP/2 in Kestrel: https://blogs.msdn.microsoft.com/webdev/2018/08/22/asp-net-core-2-2-0-preview1-http-2-in-kestrel/
  • Developing locally with ASP.NET Core under HTTPS, SSL, and Self-Signed Certs – Scott Hanselman: https://www.hanselman.com/blog/DevelopingLocallyWithASPNETCoreUnderHTTPSSSLAndSelfSignedCerts.aspx
  • Enforce HTTPS in ASP.NET Core: https://docs.microsoft.com/en-us/aspnet/core/security/enforcing-ssl?view=aspnetcore-2.1&tabs=visual-studio
  • How to make an Azure App Service HTTPS only: https://blogs.msdn.microsoft.com/benjaminperkins/2017/11/30/how-to-make-an-azure-app-service-https-only/
  • Securing an Azure App Service Website under SSL in minutes with Let's Encrypt: https://www.hanselman.com/blog/SecuringAnAzureAppServiceWebsiteUnderSSLInMinutesWithLetsEncrypt.aspx
  • Bind an existing custom SSL certificate to Azure Web Apps: https://docs.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-custom-ssl




broken image