Hướng dẫn cài đặt visual studio 2023 ultimate full crack
Welcome to the June 2023 release of Visual Studio Code. There are many updates in this version that we hope you'll like, some of the key highlights include: Show
Insiders: Want to try new features as soon as possible? You can download the nightly Insiders build and try the latest updates as soon as they are available. AccessibilityAccessible ViewA new command Open Accessible View (⌥F2 (Windows Alt+F2, Linux Shift+Alt+F2)) allows screen reader users to inspect content character by character, line by line. Invoke this when a hover or chat panel response is focused. Accessibility help improvementsA new command Open Accessibility Help (⌥F1 (Windows Alt+F1, Linux Shift+Alt+F1)) opens a help menu based on the current context. It currently applies to the editor, terminal, notebook, chat panel, and inline chat features. Disable the accessibility help menu hint and open additional documentation, if any, from within the help menu. Accessibility help for notebooksA new accessibility help menu was added for notebooks to provide information about the editor layout and navigating and interacting with the notebook. Chat audio cuesThere are now audio cues for the GitHub Copilot chat experience and can be enabled via Chat accessibility improvementsChat responses are provided to screen readers as soon as they come in and the inline and chat panel accessibility help menus contain more detailed information about what to expect and how to interact with each feature. Settings editor alt text improvementsThe Settings editor (accessible through the Preferences: Open Settings (UI) command) is now less verbose when navigating with a screen reader. In particular, the Settings scope switcher announces the actual name of the scope rather than a file path, and the settings description alt text has been cleaned up to not include raw Markdown formatting. WorkbenchAuto playing and looping for previewed videosYou can now enable video autoplaying and looping for the built-in video file preview. The relevant settings are:
These settings are off by default. More help when editor is readonlyWith the introduction of in VS Code last milestone, editors can be readonly due to workspace configuration. This milestone, we enhanced the notification message in the editor when you try to type in a readonly editor and in some cases provide a link to change the
0 settings. Default file dialog locationA new setting
1 can configure the default location that file dialogs (for example when opening or saving files or folders) should show when they open. This default is used only as a fallback when no other location is known, for example in empty VS Code windows. Disable maximizing editor groups on tab double clickA new setting
2 disables toggling the size of an editor group from maximized to restored when double-clicking on a tab of that group. Control minimal width of fixed width tabsA new setting
3 controls the minimum size of a tab when
4 is set to
5. Fixed tab widths are explained in more detail in the . Editor group split sizing changed to 'auto'A new value for the
6 setting called
7 is the new default. In this mode, splitting an editor group distributes the available size evenly to all editor groups only if none of the editor groups has been resized. Otherwise, the space of the split editor group is divided in half and placed in the new editor group. The intent of this change is to not break layouts that you have created when you split, but still preserve the previous default behavior of distributing the size evenly otherwise. Search .gitignore exclude behaviorWhen
8 is set to
9, the workspace's
0 is now respected regardless of whether the workspace is initialized as a Git repository or not. The setting
1 lets you disable the max height restriction on the comments, such as those displayed for pull requests when using the GitHub Pull Requests and Issues extension. Troubleshoot issues in VS CodeThere is a new command Help: Troubleshoot Issue in the Command Palette to help you troubleshoot an issue in VS Code. The launched workflow helps you identify the cause for an issue using a special Troubleshoot profile and the feature of VS Code. Extension bisect will enable and disable your installed extensions in a binary search while you indicate whether the issue reproduces or not. This narrows down the extension causing the issue and helps you provide the right information when reporting an issue. Disable Chromium sandboxIf you have scenarios where launching VS Code desktop as an elevated user is unavoidable, for example you are launching VS Code with
2 on Linux or as administrator in an AppLocker environment on Windows, then you need to launch VS Code with the
3 command line options to have the application work as expected. Based on the feedback in issue 184687, there are now two new settings to make it easier when you need to disable the Chromium sandbox:
Note: Do not use this setting unless you are seeing issues! EditorSkip subword when shrinking and expanding selectionThe Expand and Shrink Selection commands can now be configured to skip subwords. This is done via the
8 setting. By default, subwords are selected but this can now be disabled.
This setting comes in handy when you use expand and shrink selection frequently with multiple cursors and on heterogeneous words. Improved Emmet support for CSS modules in JSX/TSXEmmet supports a new set of abbreviations for JSX/TSX files. By typing
6 in a JSX or TSX file, and expanding the abbreviation, the line
7 is added. The attribute name and value prefix can be configured using the
8 setting. By configuring the
8 setting as follows:
and then expanding the abbreviation
6 in a JSX or TSX file, you get the abbreviation
1 instead. Resizable content hoverIt is now possible to resize the content hover control. You can hover over the control borders and drag the sashes to change the size of the hover. TerminalImage supportImages in the terminal, which were previewed last release, are now enabled by default. Images in a terminal typically work by encoding the image pixel data as text, which is written to the terminal via a special escape sequence. The current protocols supported are sixel and the inline images protocol pioneered by iTerm. To test images manually, you can download and
2 a
3 example file from the libsixel repository: Or use the imgcat python package or imgcat script with a .png, .gif, or .jpg file: This feature can be disabled by setting:
Multi-line and range link formatsThere is now support for new link formats, including links that need to scan upwards in order to find the file and links that have a range (line to line or character to character).
Deprecated shell and shellArgs settings removedThe settings
4 and
5 were replaced by terminal profiles over a year ago and have just been removed. If you're still using the old
6 and
7 settings, here is an example before/after to help with migrating:
TestingTerminal output supportPreviously, test output shown in the Test Results view would always be shown in an embedded text editor. This stripped it of rich styling such as colors, styles, and symbols it may have had when run in a terminal. In this release, we show output in a real xterm.js terminal. Theme: Codesong (preview on vscode.dev) Now that the Test Results view is fully featured, the commands to Show Test Output have been redirected to open the Test Results view instead of creating a temporary terminal. Source ControlClose repository improvementsIn the past, users could close a repository either using the Git: Close Repository command or the Close Repository action in the Source Control view but there were certain actions (for example, opening a file from the closed repository) that would reopen the closed repository. This milestone we have made some improvements so the fact that a repository is closed is now persisted per workspace. Users can reopen closed repositories using the Git: Reopen Closed Repositories... command. NotebooksImproved save performance for Remote DevelopmentPreviously, saving a notebook in VS Code's Remote extension required sending the entire notebook to the extension host, which could be slow for large notebooks or slow network connections with auto save enabled. We have improved performance by only sending the changes to the notebook to the extension host, resulting in faster notebook saving and execution. While this feature is still disabled by default, we are confident that we will be able to enable it soon. To try it out, add
8 to your settings. For more details, you can follow issue 172345.Notebook global toolbar reworkThe notebook editor's global toolbar has been rewritten to adopt the workbench toolbar, allowing users greater customization of the toolbar actions. Users can now right-click and hide actions from the toolbar. Right-clicking on an action within the toolbar presents the option to hide that action, and also to reset the menu and bring back hidden actions. The toolbar continues to work with all three label strategies:
9, `audioCues.chatRequestSent`0, and `audioCues.chatRequestSent`1. You can change the label strategy via the setting `audioCues.chatRequestSent`2. Theme: Monokai Pro (Filter Ristretto) (preview on vscode.dev) Interactive Window backup and restoreThe Python Interactive Window is now fully integrated with the feature and restores the editor state between VS Code reloads. The `audioCues.chatRequestSent`3 setting no longer has any effect and was removed. If hot exit is disabled, there is a prompt when closing VS Code giving you the option to save the editor state as a `audioCues.chatRequestSent`4 file. _Theme: Bearded Theme feat. Gold D Raynh (preview on vscode.dev) LanguagesMarkdown copy image from previewA new context menu for images in the Markdown preview allows you to copy the image from the preview and paste it into the Markdown editor. When copying the image, the preview editor must be focused. Markdown format pasted URLs as Markdown linksThe new `audioCues.chatRequestSent`5 setting (default
You must enable the setting `audioCues.chatRequestSent`7 for this new setting to work. Remote DevelopmentThe Remote Development extensions, allow you to use a Dev Container, remote machine via SSH or Remote Tunnels, or the Windows Subsystem for Linux (WSL) as a full-featured development environment. You can learn about new extension features and bug fixes in the Remote Development release notes. This milestone, we have updated the Remote menu with entries to help you quickly install and get started with remote connections (SSH, Remote Tunnels, GitHub Codespaces, etc.) by installing the necessary extensions. There is also a Connect to... start entry on the Welcome page to help you get started with remote connections from VS Code desktop. We have also updated the Welcome page on vscode.dev with a start entry to connect to a Remote Tunnel. WSL over TunnelsLast iteration, we previewed connecting to WSL over Remote Tunnels. This feature is now stable this iteration. If you run a Remote Tunnel on a Windows machine with WSL installed, you have the option to connect to WSL directly from the Remote Explorer. Theme: Codesong (preview on vscode.dev) This feature now works on VS Code desktop as well as vscode.dev. If you're already running a tunnel on your Windows device, make sure to update VS Code to the latest version to enable this feature. Contributions to extensionsGitHub CopilotWe have introduced preview-only slash commands in the Chat view to help you create projects and notebooks and search for text in your workspace. Note: To get access to the Chat view, inline chat, and slash commands (for example `audioCues.chatRequestSent`8, `audioCues.chatRequestSent`9), you need to install the GitHub Copilot Chat extension. Create workspacesYou can ask Copilot to create workspaces for popular project types with the `audioCues.chatRequestSent`9 slash command. Copilot will first generate a directory structure for your request. You can then use the Create Workspace button to create and open the project directory as a new workspace. Create notebooksYou can ask Copilot to create Jupyter notebooks based on your requirements with the `audioCues.chatResponsePending`1 slash command. Copilot will generate an outline of the notebook based on your requirements. You can then use the Create Notebook command to create the notebook and fill in the code cells based on the suggested outline. Generate search parametersYou can ask Copilot to autofill the search parameters in workspace search. To do this, use the `audioCues.chatRequestSent`8 command followed by a description of what you want to find in text. These preview slash commands can be enabled by configuring `audioCues.chatResponsePending`3 setting as follows:
Copilot YouTube playlistThere is a new installment covering Copilot for PowerShell in the VS Code Copilot Series on YouTube. In case you missed the series, you'll also find other language-specific talks and guidance on effective prompting when using Copilot for development. PythonMypy extensionThere is now a Mypy Type Checker extension that provides type checking support for Python using mypy, available in preview as a pre-release version. This new extension offers errors and warnings on your entire codebase, instead of only the current file. It also uses dmypy for faster type checking. If you have any issues with this new extension or wish to provide feedback, you can file an issue in the Mypy extension GitHub repo. Debugpy extensionWhen support for Python 2.7 and Python 3.6 was removed from the Python extension, we received a lot of feedback from users who were unable to upgrade their codebase to the latest versions of Python and lost the ability to debug their applications with the latest versions of the Python extension. To work towards a solution for this, we have created a separate Python Debugger extension called Debugpy. By keeping the debugger separate from the Python extension, you will eventually be able to use the latest version of the Python extension while using an older version of the debugger (by disabling ). This extension is available in preview as a pre-release version using the latest version of debugpy. We plan to support older versions of debugpy in the near future. Give it a try and let us know if everything works appropriately. Our plan is to deprecate the built-in debugging functionality in favor of this separate extension. Pylance localizationThe Pylance extension is now localized! This means settings, commands, and other text from the extension are translated to your preferred language if you have a Language Pack installed and set to active in VS Code. Test discovery and run rewriteThis month we are continuing the rollout of our testing rewrite as an experiment. As a reminder, this rewrite redesigns the architecture behind test discovery and execution for both unittest and pytest in the extension. The rewrite is currently active for 100% of VS Code Insiders users and will begin ramping into stable this month. The rewrite will be adopted shortly, but for now the setting to opt in and out, `audioCues.chatResponsePending`4, still exists. Dynamic run results for pytest and unittestRolling out with the new experiment is dynamic run results for pytest and unittest. Previously, our test results were only returned once all tests finished running, but now with this feature, test results are delivered individually allowing you to see your tests pass and fail in real time. Index persistence for 3rd-party librariesPylance performs indexing of third-party libraries that are installed in your environment to enable IntelliSense features such as auto-completion, auto-import, code navigation, etc. Previously, Pylance would index these libraries every time you opened a workspace in VS Code. Now, Pylance persists the index for these libraries, reducing the need for repetitive indexing processes. Deprecation of Python 3.7 supportPython 3.7 reached end-of-life (EOL) on 2023-06-27. As such, official support for Python 3.7 from the Python extension will stop in three months in the 2023.18 release of the extension (which corresponds with the September 2023 release of VS Code). There are no plans to actively remove support for Python 3.7, and so we expect the Python extension will continue to work unofficially with Python 3.7 for the foreseeable future. With all other releases of Python now on an annual release cadence, we expect to stop official support for a Python release once it reaches EOL in the first Python extension release of the following calendar year. For example, Python 3.8 is scheduled to reach EOL in October 2024, so the first Python extension release in 2025 will stop official support. GitHub Pull Requests and IssuesThere has been more progress on the GitHub Pull Requests and Issues extension, which allows you to work on, create, and manage pull requests and issues.
Review the release of the extension to learn about the other highlights. Preview FeaturesTypeScript 5.2 supportThis update includes support for the upcoming TypeScript 5.2 release. Check out the TypeScript 5.2 iteration plan for more details about what the TypeScript team is currently working on. Upcoming tooling highlights include:
To start using the TypeScript 5.2 nightly builds, install the TypeScript Nightly extension. New diff editorThis iteration we finished rewriting the diff editor. The rewrite allowed us to add a couple of new features, to improve the performance, and to fix several bugs. To try out the new diff editor, add `audioCues.chatResponsePending`5 to your settings. The new diff editor is still experimental, but will eventually replace the current diff editor in a future update. All presented features require the new diff editor. Collapse unchanged regionsUse `audioCues.chatResponsePending`6 to enable hiding unchanged regions in the new diff editor. This feature is useful when reviewing large diffs with a lot of unchanged code. The borders of the hidden-lines blocks can be dragged or clicked to reveal code from the bottom or top. Show insertion/deletion markersInsertion/deletion markers indicate where in a line words were inserted or deleted, which is especially helpful when a line has both insertions and deletions. Use `audioCues.chatResponsePending`7 to enable/disable insertion and deletion markers. Improved decorationsFull line deletions/insertions now have a full width background color. This reduces noise significantly. This is an example of how the new diff editor highlights changes: This is how the old diff editor renders decorations (notice how the line 57 on the right does not have a full width background color): Synchronous diff updateWhen typing in the new diff editor, changes are heuristically applied immediately and trigger an asynchronous diff computation after some delay. In the old diff editor, changes were not applied immediately, causing visible flickering when typing. New - the diffs update immediately when typing: Old - there is some visible flickering: Move detectionThis experimental feature detects moved code blocks within a file. Use `audioCues.chatResponsePending`8 to turn it on. At the moment, only simple moves are detected, but we plan to improve this feature in the future. Once a moved code block is selected, source and target locations are aligned and a diff between them is shown. Because move detection is still experimental, expect significant changes in future updates. SecretStorage API now uses Electron API over keytarThe has been the recommended way to store secrets like passwords, access tokens, etc. for years now. Under the hood, it has been using keytar, an abstraction layer used to store secrets in the OS keyring. Due to the deprecation and archiving of keytar, we looked for other solutions for the problem, specifically looking to our runtime, Electron, for a solution. This release, we've started the move from keytar to Electron's safeStorage API. This switch should be transparent to you as secrets are retrieved from keytar and restored via Electron's `audioCues.chatResponsePending`9 API. In the future, we will remove this migration so that we can remove our dependency on keytar altogether. keytar deprecation planFor a while now, VS Code has had a large dependency on keytar, an abstraction layer used to store secrets in the OS keyring. Additionally, we have included a keytar shim in VS Code that extensions depended on before the introduction of the . keytar itself is officially archived and not being maintained... In an effort to promote good security practices by not depending on an archived piece of software for storing secrets, we are working on a plan to remove this shim from VS Code. We have already directly reached out to extension authors of popular extensions that still use this keytar shim and they are working on moving off of it. We want to communicate this here as well as in our GitHub Discussions for those we didn't contact directly so we minimize the disruption due to this change. We know this isn't the best news as we had a fair amount of work to remove our dependency on keytar as well, but we believe this is the right thing to do to ensure extensions are using secure APIs. If you are using keytar directly in your extension, there are a couple of options for you to consider:
Timeline: The current plan is to remove this shim from VS Code Insiders in early August, which means that September 2023's stable release will be the first release without the shim. Work for this is being tracked in issue 115215 and if you have any questions, feel free to ask them here in our GitHub Discussions.Improved vscode.fs.writeFile performance for local filesWhen you are using `audioCues.chatResponseReceived`0 API to write data into files (you should!), write operations to files that are local to the extension host will now resolve much faster. Previously the extension host would delegate the write operation to the VS Code client for execution, but now the operation executes directly inside the extension host, saving round trips. Tree checkbox APIThe `audioCues.chatResponseReceived`1 `audioCues.chatResponseReceived`2 API has been finalized. By default, tree items that have checkboxes will have their checked state managed by VS Code. This behavior can be changed by setting the `audioCues.chatResponseReceived`3 property `audioCues.chatResponseReceived`4 to
9. When `audioCues.chatResponseReceived`4 is set, the extension is responsible for managing checking and unchecking of parent and child checkboxes. EnvironmentVariableCollection.descriptionThis new API allows specifying a description for `audioCues.chatResponseReceived`7, displayed to the user in the terminal tab hover, to explain what exactly the change is doing.
You can see the API in action in the built-in Git extension, which now describes what the change does: Proposed APIsEvery milestone comes with new proposed APIs and extension authors can try them out. As always, we want your feedback. Here are the steps to try out a proposed API:
You cannot publish an extension that uses a proposed API. There may be breaking changes in the next release and we never want to break existing extensions. Read-only message for file system providersWhen you `mediaPreview.video.autoPlay`1, you can provide a read-only message instead of simply marking a file system as read-only. The message below is displayed in the editor when a user tries to edit a file from that provider. EngineeringName mangling of exported symbolsLast year we started to reduce our code size. We now also mangle exported symbol names, which reduces the size of our main workbench JavaScript file a further 8%. Our name mangling build step now saves a total of 3.9 MB of JavaScript across core VS Code and our built-in extensions. This reduction speeds up downloads, reduces VS Code's install size, and speeds up code loading every time you start VS Code. Checksum integrity checks for Node.js, built-in extensions, and ElectronAs part of our build, we consume binary resources from other locations, such as Node.js for our remote server and built-in extensions from the Marketplace and Electron. This milestone, we ensure the integrity of these binary resources by validating against a SHA256 checksum that is checked into the `mediaPreview.video.autoPlay`2 GitHub repository. New Linux performance machineWe take the performance of VS Code very seriously, especially the elapsed time it takes to open a text editor and see a blinking cursor. To monitor that elapsed time, we run daily performance tests on Windows and macOS. This milestone, we added a Linux machine to the test set, reporting the startup times on Ubuntu 22. Event emitter optimizationsVS Code uses event emitters extensively throughout our codebase. We've optimized these emitters this iteration, which slightly improved startup time and memory usage. You can read more about this improvement in issue 185789.Terminal pty host improvementsThe "Pty Host" process manages all shell processes launched by the terminal and several improvements were made:
DocumentationNew C# topicsYou can learn about C# development in VS Code with the C# Dev Kit extension through a new set of C# articles. There you'll find topics explaining how to get started, describing the extension's language features (code navigation, refactoring, debugging), and aiding the development life cycle such as Project and Package management. Glob patterns referenceVS Code has it's own glob pattern implementation, which it uses for features like Search file and folder filtering, letting you customize the File Explorer view, etc. To learn the details, you can review the new Glob Patterns Reference. |