Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows. Download Visual Studio Code to experience a redefined code. Alternatives to Visual Studio Code for Windows, Mac, Linux, BSD, Web and more. Filter by license to discover only free or Open Source alternatives. This list contains a total of 25+ apps similar to Visual Studio Code.
-->Developer Community |System Requirements |Compatibility |Distributable Code |Xamarin |Blogs |Servicing |
Click the button to download the latest version of Visual Studio 2017 for Mac. For instructions on setup and install, see the Setup and Install Visual Studio for Mac documentation.
To learn more about Visual Studio 2017 for Mac, see Mac System Requirements and Mac Platform Targeting and Compatibility.
To learn more about other related downloads, see the Downloads page.
What's New in 7.8
Visual Studio 2017 for Mac version 7.8 Releases
- May 13, 2019 – Visual Studio 2017 for Mac version 7.8.4
- March 12, 2019 – Visual Studio 2017 for Mac version 7.8.3
- February 28, 2019 – Visual Studio 2017 for Mac version 7.8.2
- February 22, 2019 – Visual Studio 2017 for Mac version 7.8.1
- February 20, 2019 – Visual Studio 2017 for Mac version 7.8
Release Highlights
This release focuses on improving the quality in Visual Studio for Mac through bug fixes, performance improvements, and reliability improvements.
We also updated the version of NuGet to 4.8, .NET Core SDK to 2.1.504, and .NET Core Runtime 2.1.8
Visual Studio 2017 for Mac version 7.8 (7.8.0.1624)
released February 20, 2019
Shell
- We fixed an issue where custom key bindings for Remove Unused and Sort (Usings) don't work.
- We fixed an issue where switching from the application and returning, does not focus on the editor correctly.
- We fixed an issue where the cursor in editor window is lost when switching applications.
- We fixed an issue where focusing out/into Visual Studio changes the default focused element on the UI.
- We fixed an issue where Visual Studio for Mac would fail to track file changes for files in certain folders.
- We fixed an issue where Visual Studio for Mac doesn't remember opened files.
- We fixed an issue where the Toolbar selector for build configuration is disabled.
- We fixed an issue where adding a new folder to a project does not allow instant renaming.
- We fixed an issue where Start Debugging after Start without Debugging results in an exception for ASP.Net projects.
- We fixed a performance issue with build output search.
- The Run Item command on the Solution Explorer has been renamed to Run Project.
- We fixed an issue where the welcome page is shown when loading a solution from finder.
.NET Core
- We updated to .NET Core 2.1.8 to include a security update.
- We fixed an issue where the create button doesn't create new project for .NET Core 3.0 preview 2.
- We fixed an issue where .NET Core 3.0 can be selected in the New Project dialog when it is not supported.
- We removed the VB.NET option from .NET Core projects.
ASP.NET Core
- We fixed an issue where the Folder profile would be created with 'Default' configuration instead of 'Release'.
Web Tools
- We fixed an issue where Publish to Azure creates a profile with the wrong name.
- We fixed an issue where application arguments are not passed to the Azure Functions host.
- We added the following additional Azure Functions templates
- CosmosDB trigger
- EventHub trigger
- IoT Hub trigger
- SendGrid trigger
- ServiceBus Queue trigger
- ServiceBus Topic trigger
- We fixed an issue where it was not possible to publish to Azure API App instances.
Xamarin
- We updated the Xamarin Test Cloud agent NuGet version.
- We fixed an issue where the View Archives command would appear in .NET Core projects.
Xamarin.Forms
- IntelliSense in Xamarin.Forms XAML files for FontFamily is now available.
Designers
- We fixed an issue where the toolbox regressed Android designer usage.
- We fixed an issue when attempting to drag and drop controls to iOS storyboards from the Tool Box after searching for controls does not work.
Xamarin.Android
- We fixed an issue where the JDK notification was shown on the welcome page, even for non-Android projects.
- We fixed an issue where launching Visual Studio for Mac without any Java installed shows 2 system prompts to install Java.
- We fixed an issue where the Android resource update could occur at the same time as a build which could then cause build issues.
- We fixed an issue where Visual Studio for Mac would fail to upload APK to Acer Chromebook R11.
- We fixed an issue where new Android apps have uppercase letters in the package name.
- We fixed an issue where 'Your project is not referencing the 'Mono.Android.Version=v8.1' framework' when AndroidUseLatestPlatformSDK is true.
- We fixed an issue where Visual Studio for Mac does not recognize
AndroidManifest
in specific build configurations.. - We fixed an issue where opening the Report A Problem dialog also displays 'Install JDK' dialog.
- We fixed an issue where the Google Play SDK warning is shown even when publishing Ad-Hoc.
Xamarin.iOS
- It is now possible to choose .pdf files for image assets that do not support vector images.
- We fixed an issue where Visual Studio for Mac erroneously indicates that a Xamarin.Mac property is unavailable.
- We fixed an issue where it is not possible to choose devices for named colors in the asset catalog.
- We fixed an issue where the iOS simulator is no longer brought to front when starting a debug session.
- We fixed an issue where Native References not working in iOS library projects and appear to be ignored.
- We fixed an issue where deleting a Native Reference does not delete the the file on disk.
- We fixed an issue where the Debugger doesn't connect to a keyboard extension on any device.
Xamarin.Mac
- We fixed an issue where .xib templates seem to need
customObjectInstantitationMethod='direct'
added. - We fixed an issue where it is not possible to change the target framework version for Xamarin.Mac full on re-opening project options.
- We fixed an issue where the project options for a Mac build (classic) shows incorrect UI.
Code Editor
- We fixed an issue where the code fix preview window is too small.
- We fixed an issue where error squiggles were not up to date.
- We fixed an issue where the editor would freeze while typing
- We fixed an issue where Changing the tab would not allow you to search a file
- We fixed an issue where Using statement indenting is incorrect.
- We fixed an issue where Roslyn throws a fatal exception (System.ArgumentOutOfRangeException).
- We fixed an issue where formatting of parameters across multiple lines is incorrect.
- We fixed an issue where the constructor generator would cause Visual Studio for Mac to crash.
- We fixed an issue where smart semicolon placement causes incorrect semicolon placement.
- We fixed an issue where typing can be slow in large files when accessibility is enabled.
- We fixed an issue where a fatal error can occur when trying to navigate inside the editor using VoiceOver.
- We fixed an issue where the caret location in quick fix margin is incorrect.
- We fixed a performance issue where indent correcting is taking up too much time on large files.
- We fixed an issue where Intellisense soft-selection is confusing.
- We fixed an issue where Visual Studio for Mac can't open .targets files.
- We fixed an issue where the display updates partially when commenting a collapsed method.
- We fixed an issue where C# syntax highlight doesn't work for some of the keywords.
- We fixed an issue where invoking some snippets from the toolbox in .cs files leads to poorly formatted code.
- We fixed an issue where pressing Down to choose the closing tag completion in XAML IntelliSense closes the completion window.
- We fixed an issue where the file 'redacted' could not be opened.
- We fixed an issue where sometimes pasting fails in XAML files.
- We fixed an issue where, when adding an attribute via Intellisense, it does not trim 'Attribute' from the name.
- We fixed an issue where code suggestion does the wrong thing when
(
is pressed after a stray arrow key.
NuGet
- We fixed an issue where Visual Studio for Mac crashes after 'Could not add packages' error.
- We updated the version of NuGet to 4.8.
- NuGet package diagnostic warnings are now shown in the Solution Explorer. Any diagnostics warnings will be rendered with a warning icon and the full text of the warning available as a tool tip.
- We fixed a set of issues with NuGet:
- problem while restoring NuGet packages which don't have stable version.
- The VS4Mac bundle nuget version is too old: 4.3.1.
- Referencing packages conditionally using variable does not work correctly.
- Xamarin.Forms app with multi target framework library referenced fail to build.
- Visual Studio Mac Csproj build not support Item contidion.
- Support conditional NuGet PackageReferences in multi-targeting projects.
- Show per-framework dependencies when multi-targeting.
- VS cannot build F# dotnet core solution.
- Nuget restore ignore build targets.
- NuGet restores the wrong version of Microsoft.AspNetCore.App.
Debugger
- We fixed an issue where the debugger would fail when running on an external console on Mojave.
Test Tools
- We fixed an issue where xUnit Fact 'DisplayName' not shown in test explorer if the name has a period at the end.
- We fixed an issue where the text editor unit test integration ('Unit test 'name' could not be loaded') would fail.
- We fixed a performance issue where the 'Test Results' pane has bad performance when very large amounts of text are shown.
- We fixed an issue where the unit test integration in the editor does not properly trigger test cases.
- We fixed an issue that could cause xunit to fail to restore.
F#
- We fixed an issue where open statements for F# must be manually added when pasting/writing code.
- We fixed an issue where new F# projects shows IntelliSense errors.
- We fixed an issue for F# projects where Visual Studio for Mac overwrites the project GUID to be lowercase instead of uppercase.
Project System
- We fixed an issue where the copy & paste of a XAML file causes a disassociation between the .xaml and .xaml.cs files.
- We fixed an issue where files are being added to ItemGroup.Compile(Remove) and this related issue - Error type of namespace not found.
- We fixed an issue where an invalid C# file is created with a new library project.
- We fixed an issue where it is not possible to create a culture specific .resx file through the 'New File ..' menu in the Solutions Explorer context menu.
Assembly Browser
- We fixed an issue where the Assembly Browser shows the wrong icon for properties.
- We fixed an issue where
System.DayOfWeek
enum (Wednesday
) does not appear to be assigned a value.
Accessibility
- We fixed a number of accessibility issues in this release, including several VoiceOver issues in the Debugger and in creating iOS developer certificates, and Keyboard issues in the Android SDK Manager.
Other
- We fixed an issue where unchecking the Organize Using > Place System directives first setting does not save.
- We fixed an issue where Visual Studio for Mac is not remembering settings.
- We fixed an issue where Checking for updates can result in multiple prompts to sign in.
Visual Studio 2017 for Mac version 7.8.1.4
released February 22, 2019
- We fixed an issue where Visual Studio for Mac becomes unresponsive when selecting two column view.
Visual Studio 2017 for Mac version 7.8.2.1
released February 28, 2019
- We fixed an issue where Debugger features sometimes don't work as expected with Unity.
Visual Studio 2017 for Mac version 7.8.3.2
released March 12, 2019
- This release contains an updated 4.8 NuGet Client, which in turn closes a NuGet Client vulnerability.
- We fixed an issue where Using Git to publish an existing project to a new remote repository was not working.
- We fixed an issue where Git remote operations were failing in Visual Studio for Mac:.
- We fixed an issue where Tooltips not being shown for F# solutions.
- We fixed an issue where The Report a Problem dialog crashes Visual Studio for Mac when entering details.
- We fixed an issue where Visual Studio for Mac crashes while using Report a Problem if the debugger connection is lost.
- We fixed an issue where Two sign in popup windows would show if you weren't signed in and tried to Report a Problem.
- We fixed an issue causing warnings about missing icons to show up in the log files when using Report a Problem.
- We fixed an issue preventing build messages from displaying in the Build Output window after building Docker Compose projects.
Visual Studio 2017 for Mac version 7.8.4.1
released May 13, 2019
- This release fixes an issue where (Visual Studio for Mac 7.8.3 crashes after loading a second solution)[https://developercommunity.visualstudio.com/content/problem/509716/visual-studio-783-build2-crashes-after-loading-a-s.html].
Feedback
We would love to hear from you! You can report a problem through the Report a Problem option in the Visual Studio for Mac IDE, and track your feedback in the Developer Community portal. For suggesting new features you can use Suggest a Feature, these are also tracked in the Developer Community.
Blogs
Take advantage of the insights and recommendations available in the Developer Tools Blogs site to keep you up-to-date on all new releases and include deep dive posts on a broad range of features.
Visual Studio 2017 for Mac Release Notes History
You can view prior versions of Visual Studio 2017 for Mac release notes on the Release notes history page.
Note: Tips and Tricks has moved to the official Visual Studio Code documentation at code.visualstudio.com.
The content is now at vscode-docs. Pull requests and documentation issues are still greatly appreciated.
The content is now at vscode-docs. Pull requests and documentation issues are still greatly appreciated.
The key bindings below may or may not be accurate with the latest build. See here for the latest keyboard shortcut reference.
Insider Version of VS Code
The Visual Studio Code team uses the Insiders version to test the latest features and bug fixes of VS Code. You can use this same version by downloading here.
- For Early Adopters - Insiders has the most recent code changes and may lead to the occasional broken build.
- Frequent Builds - New builds everyday with the latest bug fixes and features.
- Side-by-side install - Insiders installs next to the Stable build allowing you to use either independently.
Getting Started
Open the Welcome page to get started with the basics of VS Code. Help > Welcome.
Includes the Interactive Playground.
Command Palette
Access all available commands based on your current context.
Mac: cmd+shift+p or f1
Windows / Linux: ctrl+shift+p or f1
Reference keybindings
![Code Code](/uploads/1/2/6/2/126238123/315216579.png)
All of the commands are in the Command Palette with the associated key binding (if it exists). If you forget what the key binding is use the Command Palette to help you out.
Quick open
Quickly open files.
Mac: cmd+p
Windows / Linux: ctrl+p
Tip: Type '?' to view help suggestions.
Navigate between recently opened files
Repeat the Quick Open keyboard shortcut to cycle quickly between recently opened files.
Open multiple files from Quick Open
You can open multiple files from Quick Open by pressing the Right arrow key. This will open the currently selected file in the background and you can continue selecting files from Quick Open.
CLI tool
Linux: Follow instructions here.
Windows: Follow instructions here.
Mac: see below.
Open the Command Palette (F1) and type 'shell command'. Hit enter to execute Shell Command: Install 'code' command in PATH.
.vscode folder
Workspace specific files are in
.vscode
. For example, tasks.json
for the Task Runner and launch.json
for the debugger.Status Bar decorations
Errors and Warnings
Mac: shift+cmd+m
Windows / Linux: ctrl+shift+m
Quickly jump to errors and warnings in the project.
Cycle through errors with f8 or shift+f8
You can filter problems by type ('errors', 'warnings') or text matching.
Change language mode
Mac: cmd+k m
Windows / Linux: ctrl+k m
If you want to persist the new language mode for that file type, you can use the Configure File Association for ... command to associate the current file extension with an installed language.
There are many things you can do to customize VS Code.
- Change your theme
- Change your keyboard shortcuts
- Tune your settings
- Add JSON validation
- Create snippets
- Install extensions
Check out the full documentation.
Change your theme
Open the Command Palette and type 'themes'. You can install more themes from the extension Marketplace.
Additionally, you can install and change your File Icon themes.
Change your keyboard shortcuts
Keyboard Reference Sheets
Download the keyboard shortcut reference sheet for your platform (macOS, Windows, Linux).
Keymaps
Are you used to keyboard shortcuts from another editor? You can install a Keymap extension that brings the keyboard shortcuts from your favorite editor to VS Code. Go to Preferences > Keymap Extensions to see the current list on the Marketplace. Some of the more popular ones:
Customize your keyboard shortcuts
Open the Command Palette and type 'keyboard shortcuts.' You can now add your own keybindings in the file on the right.
See more in Key Bindings for Visual Studio Code.
Tune your settings
Open
settings.json
Mac: cmd+,
Windows / Linux: File > Preferences > Settings or ctrl+,
Format on paste
Change the font size
Change the zoom level
Font ligatures
Tip: You will need to have a font installed that supports font ligatures. FiraCode is a popular font on the VS Code team.
Auto Save
You can also toggle Auto Save from the top-level menu with the File > Auto Save.
Format on save
Change the size of tab characters
Spaces or tabs
Render whitespace
Ignore files / folders
Removes these files / folders from your editor window.
Remove these files / folders from search results.
And many, many others.
Language specific settings
For those settings you only want for specific languages.
Tip: You can find the language ID by typing in the Command Palette 'Configure language specific settings'
Add JSON Validation
Enabled by default for many files. Create your own schema and validation in
settings.json
or for a schema defined in your workspace
or a custom schema
See more in the documentation.
Find extensions
- In the VS Code Marketplace.
- Search inside VS Code
- View extension recommendations
- Community curated extension lists, such as awesome-vscode
Install extensions
Click the Extensions Activity Bar button. You can search via the search bar or click the More (...) button to filter and sort by install count.
Extension recommendations
Click the Extensions Activity Bar button. Then click Show Recommended Extensions in the More (...) button menu.
Creating my own extension
Are you interested in creating your own extension? You can learn how to do this in the documentation, specifically check out the documentation on contribution points. A simple 'Hello, world' tutorial can be found here.
- configuration
- commands
- keybindings
- languages
- debuggers
- grammars
- themes
- snippets
- jsonValidation
Integrated terminal
Windows / Linux / Mac: ctrl+`
Further reading:
Auto Save
Open
settings.json
with cmd+,You can also toggle Auto Save from the top-level menu with the File > Auto Save.
Toggle Sidebar
Mac: cmd+b
Windows / Linux: ctrl+b
Zen Mode
Mac: cmd+k z
Windows / Linux: ctrl+k z
Enter distraction free Zen mode.
Side by side editing
Mac: cmd+ or cmd then click a file from the File Explorer.
Windows / Linux: ctrl+
Linux: ctrl+2
You can use drag and drop editors to create new editor groups and move editors between groups.
Switch between editors
Mac: cmd+1, cmd+2, cmd+3
Windows / Linux: ctrl+1, ctrl+2, ctrl+3
Move to Explorer window
Mac: cmd+shift+e
Windows / Linux: ctrl+shift+e
Create and open a file
Mac: cmd+click
Windows / Linux: ctrl+click
Close the currently opened folder
Mac: cmd+w
Windows / Linux: ctrl+k f
History
Navigate entire history with ctrl+tab
Navigate back.
Mac: ctrl+-
Windows / Linux: alt+left
Navigate Forward.
Mac: ctrl+shift+-
Windows / Linux: alt+right
Navigate to a file
Mac: cmd+e or cmd+p
Windows / Linux: ctrl+e or ctrl+p
File associations
Create language associations for files that aren't detected accurately (for example, many config files are JSON).
Here are a selection of common features for editing code. If the keyboard shortcuts aren't comfortable for you, consider installing a Keymap extension for your old editor.
Multi cursor selection
Mac: opt+cmd+up or opt+cmd+down
Windows: ctrl+alt+up or ctrl+alt+down
Linux: alt+shift+up or alt+shift+down
Add more cursors to current selection.
Join line
Mac: ctrl+j
Windows / Linux: Not bound by default. Open Keyboard Shortcuts and bind
editor.action.joinLines
to a shortcut of your choice.Copy line up / down
Mac: opt+shift+up or opt+shift+down
Windows / Linux(Issue #5363): shift+alt+down or shift+alt+up
Shrink / expand selection
More in documentation
Mac: ctrl+shift+cmd+left or ctrl+shift+cmd+right
Windows / Linux: shift+alt+left or shift+alt+right
Go to Symbol in File
Mac: cmd+shift+o
Windows / Linux: ctrl+shift+o
You can group the symbols by kind by adding a colon,
@:
.Go to Symbol in Workspace
Mac: cmd+t
Windows / Linux: ctrl+t
Navigate to a specific line
Mac: ctrl+g or cmd+p, :
Windows / Linux: ctrl+g
Undo cursor position
Mac: cmd+u
Windows / Linux: ctrl+u
Move line up and down
Mac: opt+up or opt+down
Windows / Linux: alt+up or alt+down
Trim trailing whitespace
Mac: cmd+k cmd+x
Windows / Linux: ctrl+kctrl+x
Code formatting
Currently selected source code
Mac: cmd+k, cmd+f
Windows / Linux: ctrl+k, ctrl+f
Whole document format
Windows / Linux: shift+alt+f
Code folding
Mac: alt+cmd+[ and alt+cmd+]
Windows / Linux: ctrl+shift+[ and ctrl+shift+]
Select current line
Mac: cmd+i
Windows / Linux: ctrl+i
Navigate to beginning and end of file
Mac: cmd+up and cmd+down
Windows: ctrl+up and ctrl+down
Linux: ctrl+home and ctrl+end
Open Markdown Preview
In a Markdown file, use
Mac: shift+cmd+v
Windows / Linux: ctrl+shift+v
Side by Side Markdown Edit and Preview
In a Markdown file, use
Mac: cmd+k v
Windows / Linux: ctrl+k v
Special bonus: The preview will now sync.
Anytime, try ctrl+space to trigger the Suggestions widget.
You can view available methods, parameter hints, short documentation, etc.
Peek
Select a symbol then type alt+f12. Alternatively, you can use the context menu.
Go to Definition
Select a symbol then type f12. Alternatively, you can use the context menu or ctrl+click (cmd+click on macOS).
You can go back to your previous location with the Go > Back command or alt+left (ctrl+- on macOS).
Find All References
Select a symbol then type shift+f12. Alternatively, you can use the context menu.
Rename Symbol
Select a symbol then type f2. Alternatively, you can use the context menu.
.eslintrc.json
Install the ESLint extension. Configureyour linter however you'd like. Specification is here.
Here is configuration to use ES6.
package.json
See IntelliSense for your
package.json
file.Emmet syntax
Support for Emmet syntax.
Create custom snippets
File > Preferences > User Snippets, select the language, and create a snippet.
See more details in Creating your own Snippets.
Git integration comes with VS Code 'in-the-box'. You can install other SCM provider from the extension Marketplace. This section describes the Git integration but much of the UI and gestures are shared by other SCM providers.
Diffs
Click the Source Control button in the Activity Bar then select the file to diff.
Side by side
Default is side by side diff.
Inline view
Toggle inline view by clicking the More (...) button in the top right and selecting Switch to Inline View.
If you prefer the inline view, you can set
'diffEditor.renderSideBySide': false
.Review Pane
Navigate through diffs with
F7
and Shift+F7
. This will present them in a unified patch format.Lines can be navigated with arrow keys and pressing Enter
will jump back in the diff editor and the selected line.Edit pending changes
You can make edits directly in the pending changes of the diff view.
Branches
Easily switch between Git branches via the Status Bar.
Staging
Stage all
Hover over the number of files and click the plus button.
Stage selected
Stage a portion of a file by selecting that file (using the arrows) and then choosing Stage Selected Ranges from the Command Palette.
Undo last commit
See Git output
VS Code makes it easy to see what Git commands are actually running. This is helpful when learning Git or debugging a difficult source control issue.
Mac: shift+cmd+u
Windows / Linux: ctrl+shift+u
to run
toggleOutput
. Select Git in the drop-down.Gutter indicators
View diff decorations in editor. See documentation for more details.
Resolve merge conflicts
During a merge, click the Source Control button in the Activity Bar and make changes in the diff view. Select and accept current, incoming or both changes in just one click.
Setup VS Code as default merge tool
Pull request extension
Review pull requests inside vscode vscode-pull-request-github
Configure debugger
f1 and select Debug: Open launch.json, select the environment. This will generate a
launch.json
file. Works out of the box as expected for Node.js and other environments. May need some additional configuration for other languages. See documentation for more details.Breakpoints and stepping through
Place breakpoints next to the line number. Navigate forward with the Debug widget.
Data inspection
Inspect variables in the Debug panels and in the console.
Inline values
You can set
'debug.inlineValues': true
to see variable values inline in the debugger. This feature is experimental and disabled by default.Auto detect tasks
Select Tasks from the top-level menu, run the command Configure Tasks..., then select the type of task you'd like to run.This will generate a
tasks.json
file with content like the following. See the Tasks documentation for more details.There are occasionally issues with auto generation. Check out the documentation for getting things to work properly.
Run tasks from the Tasks menu
Select Tasks from the top-level menu, run the command Run Task..., and select the task you want to run. Terminate the running task by running the command Terminate Task...