Visual Studio Code
Visual Studio Code is a source-code editor developed by Microsoft for Windows, Linux and macOS.[7] It includes support for debugging, embedded Git control and GitHub, syntax highlighting, intelligent code completion, snippets, and code refactoring. It is highly customizable, allowing users to change the theme, keyboard shortcuts, preferences, and install extensions that add additional functionality. The source code is free and open source and released under the permissive MIT License.[8] The compiled binaries are freeware and free for private or commercial use.[9]
Visual Studio Code is based on Electron, a framework which is used to deploy Node.js applications for the desktop running on the Blink layout engine. Although it uses the Electron framework,[10] the software does not use Atom and instead employs the same editor component (codenamed "Monaco") used in Azure DevOps (formerly called Visual Studio Online and Visual Studio Team Services).[11]
In the Stack Overflow 2019 Developer Survey, Visual Studio Code was ranked the most popular developer environment tool, with 50.7% of 87,317 respondents claiming to use it.[12]
History
Visual Studio Code was announced on April 29, 2015, by Microsoft at the 2015 Build conference. A Preview build was released shortly thereafter.[13]
On November 18, 2015, Visual Studio Code was released under the MIT License and its source code posted to GitHub. Extension support was also announced.[14]
On April 14, 2016, Visual Studio Code graduated the public preview stage and was released to web.[15]
Features
Visual Studio Code is a source code editor that can be used with a variety of programming languages. Instead of a project system it allows users to open one or more directories, which can then be saved in workspaces for future reuse. This allows it to operate as a language-agnostic code editor for any language, contrary to Microsoft Visual Studio which uses the proprietary .sln
solution file and project-specific project files. It supports a number of programming languages and a set of features that differs per language. Unwanted files and folders can be excluded from the project tree via the settings. Many of Visual Studio Code features are not exposed through menus or the user interface, but can be accessed via the command palette.[16]
Visual Studio Code can be extended via plug-ins,[17] available through a central repository. This includes additions to the editor[18] and language support.[16] A notable feature is the ability to create extensions that add support for new languages, themes, debuggers, perform static code analysis, add code linters, using the Language Server Protocol[19] and connect to additional services.
Visual Studio Code includes multiple extensions for FTP, allowing the software to be used as a free alternative for web development. Code can be synced between the editor and the server, without downloading any extra software.
Visual Studio Code allows users to set the code page in which the active document is saved, the newline character for Windows/Linux, and the programming language of the active document. This allows it to be used on any platform, in any locale, and for any given programming language.
Language support
Visual Studio Code has out-of-the-box support for almost every major programming language. Several are included by default, for example, JavaScript, TypeScript, CSS, and HTML but other language extensions can be found and downloaded for free from the VS Code Marketplace.[20]
Language | Snippets | Syntax highlighting | Brace matching | Code folding |
---|---|---|---|---|
ActionScript [21] [22] | No | Yes | Yes | Yes |
C and C++ [23] | Yes | Partial | Yes | Yes |
C# [24] | Yes | Yes | Yes | Yes |
Clojure [25] [26] | No | Yes | Yes | No |
CoffeeScript [27] | Yes | Yes | Yes | Yes |
CSS [28] [29] | No | Yes | Yes | No |
D (Dlang) [30] | No | Yes | Yes | Yes |
Dockerfile [31] | No | Yes | Yes | No |
Erlang [32] | No | Yes | Yes | Yes |
F# [33] | Yes | Yes | Yes | Yes |
Go [34] [35] | No | Yes | Yes | Yes |
Groovy [36] | Yes | Yes | Yes | No |
Handlebars [37] | No | Yes | Yes | No |
Haxe [38] | No | Yes | Yes | Yes |
HLSL [39] [40] | No | Yes | Yes | No |
HTML [41] | Yes | Yes | Yes | Yes |
INI file [42] | No | Yes | Yes | No |
Java [43] | Yes | Yes | Yes | Yes |
JavaScript [44] | Yes | Yes | Yes | Yes |
JSON [45] | No | Yes | Yes | Yes |
LESS [28] [46] | No | Yes | Yes | Yes |
Log file [47] | No | Yes | No | No |
Lua [48] | No | Yes | Yes | No |
Makefile [49] | No | Yes | Yes | No |
Markdown [50] | Yes | Yes | No | No |
Nim [51] | No | Yes | Yes | Yes |
Perl [52] | No | Yes | Yes | No |
PHP [53] [54] | No | Yes | Yes | No |
PowerShell [55] | Yes | Yes | Yes | Yes |
Python [56] | Yes | Yes | Yes | Yes |
R [57] | No | Yes | Yes | No |
Razor [58] | No | Yes | Yes | Yes |
Ruby [59] [60] | No | Yes | Yes | Yes |
Rust [61] | No | Yes | Yes | No |
SCSS [28] [62] | No | Yes | Yes | Yes |
Shaderlab [39] [63] | No | Yes | Yes | No |
SQL [64] [65] [66] | No | Yes | Yes | No |
Swift [67] [68] | Yes | Yes | Yes | No |
TypeScript [69] [70] | Yes | Yes | Yes | Yes |
Visual Basic [71] | Yes | Yes | Yes | Yes |
XML [72] | No | Yes | Yes | Yes |
YAML [73] | No | Yes | Yes | Yes |
Reception
In the 2016 Developers Survey of Stack Overflow, Visual Studio Code ranked #13 among the top popular development tools, with only 7.2% of the 46,613 respondents using it.[74] However, in the 2019 Developers Survey, Visual Studio Code was ranked #1, with 50.7% of the 87,317 respondents using it.[12]
Visual Studio Code is widely reviewed to be fast and lightweight, and is considered to be flexible across various domains such as Java, JavaScript, Go, Node.js and even C++.[75][76][77][78]
Data collection
Visual Studio Code collects usage data and sends it to Microsoft, although this telemetry reporting can be disabled.[79] The data is shared among Microsoft-controlled affiliates and subsidiaries and with law enforcement, per the privacy statement.[80] Because of the open-source nature of the app, it is known exactly what is collected.[specify] Upstream's binary is shipped under a proprietary licence.[81]
VSCodium is an alternative binary distribution of the software which uses only the open-source parts and omits Microsoft’s trademarks and the telemetry component, while remaining fully functional and compatible in all other regards.[82]
See also
- Brackets (text editor)
- Atom (text editor)
- List of formerly proprietary software
- Microsoft Visual Studio
References
- ^ https://github.com/Microsoft/vscode/releases
- ^ "Download VS Code Insiders". code.visualstudio.com. Microsoft. Retrieved 15 March 2019.
- ^ "Visual Studio Code Display Language (Locale)". code.visualstudio.com. Microsoft. Retrieved 17 July 2017.
- ^ "LICENSE.txt". github.com/Microsoft/vscode. Microsoft. 17 November 2015.
- ^ "Download Visual Studio Code". code.visualstudio.com. Microsoft. Retrieved 16 August 2016.
- ^ "Microsoft Software License Terms". code.visualstudio.com. Microsoft. Retrieved 16 August 2016.
- ^ Lardinois, Frederic (April 29, 2015). "Microsoft Launches Visual Studio Code, A Free Cross-Platform Code Editor For OS X, Linux And Windows". TechCrunch.
- ^ Comment on Menu license links to non Open Source license, VS Code Repository on Github
- ^ VS Code FAQ, VS Code, "VS Code is free for private or commercial use."
- ^ "Microsoft's new Code editor is built on Google's Chromium". Ars Technica. Retrieved 18 November 2015.
- ^ "Monaco Editor". microsoft.github.io/monaco-editor.
- ^ a b "Developer Survey Results 2019 - Most Popular Development Environments". StackOverflow Insights. Stack Exchange. Retrieved 10 April 2019.
- ^ Montgomery, John (April 29, 2015). "BUILD 2015 News: Visual Studio Code, Visual Studio 2015 RC, Team Foundation Server 2015 RC, Visual Studio 2013 Update 5".
- ^ "Visual Studio now supports debugging Linux apps; Code editor now open source". Ars Technica. Retrieved 18 November 2015.
- ^ "Visual Studio Code editor hits version 1, has half a million users". Ars Technica. Condé Nast. 15 April 2016.
- ^ a b "Language Support in Visual Studio Code". Visual Studio Code. October 10, 2016. Retrieved 2016-10-12.
- ^ "Extending Visual Studio Code". Visual Studio Code. October 10, 2016. Retrieved 2016-10-12.
- ^ "Managing Extensions in Visual Studio Code". Visual Studio Code. October 10, 2016. Retrieved 2016-10-12.
- ^ "Creating Language Servers for Visual Studio Code". Retrieved 2017-02-27.
- ^ "Programming Languages, Hundreds of programming languages supported". Microsoft.
- ^ "ActionScript & MXML in Visual Studio Code". Bowler Hat LLC. Retrieved 2019-02-21.
- ^ Bowler Hat LLC. "ActionScript & MXML Extension". Visual Studio Marketplace. Retrieved 2019-02-21.
- ^ "C/C++ for Visual Studio Code (Preview)". Microsoft. Retrieved 2019-02-21.
- ^ "Working with C# in VS Code". Microsoft. Retrieved 2019-02-21.
- ^ Andrey Lisin. "Clojure support for Visual Studio Code". Visual Studio Marketplace. Retrieved 2019-02-21.
- ^ Better Than Tomorrow. "Calva: Clojure & Clojurescript Interactive Programming". Visual Studio Marketplace. Retrieved 2019-02-21.
- ^ Yucheng Chuang. "Coffeescript support for Visual Studio Code". Visual Studio Marketplace. Retrieved 2019-02-21.
- ^ a b c "CSS, SCSS and Less". Microsoft. Retrieved 2019-02-21.
- ^ "6 Awesome CSS Extensions for VS Code". Scotch Tutorials. Retrieved 2019-02-21.
- ^ WebFreak. "D Programming Language (code-d)". Visual Studio Marketplace. Retrieved 2019-02-21.
- ^ "Working with Docker in Visual Studio Code". Microsoft. Retrieved 2019-02-21.
- ^ "Erlang Support for Visual Studio Code". Retrieved 2019-04-23.
- ^ "Get Started with F# in Visual Studio Code". Microsoft. Retrieved 2019-02-21.
- ^ "Go in Visual Studio Code". Microsoft. Retrieved 2019-02-21.
- ^ "Debugging Go Code with Visual Studio Code". Scotch Tutorials. Retrieved 2019-02-21.
- ^ Marlon Franca. "Groovy support for Visual Studio Code". Visual Studio Marketplace. Retrieved 2019-02-21.
- ^ André Junges. "Handlebars support for Visual Studio Code". Visual Studio Marketplace. Retrieved 2019-02-21.
- ^ Nadako. "Haxe support for Visual Studio Code". Visual Studio Marketplace. Retrieved 2019-02-21.
- ^ a b Slevesque. "Shader languages support for VS Code". Visual Studio Marketplace. Retrieved 2019-02-21.
- ^ Tim G. Jones. "HLSL Tools for Visual Studio". Visual Studio Marketplace. Retrieved 2019-02-21.
- ^ "HTML in Visual Studio Code". Microsoft. Retrieved 2019-02-21.
- ^ David Wang. "INI for VSCode". Visual Studio Marketplace. Retrieved 2019-02-21.
- ^ "Java in Visual Studio Code". Microsoft. Retrieved 2019-02-21.
- ^ "JavaScript in Visual Studio Code". Microsoft. Retrieved 2019-02-21.
- ^ "Editing JSON with Visual Studio Code". Microsoft. Retrieved 2019-02-21.
- ^ Mads Kristensen. "LESS Compiler for Visual Studio Code". Visual Studio Marketplace. Retrieved 2019-02-21.
- ^ Emil Åström. "Log File Highlighter for Visual Studio Code". Visual Studio Marketplace. Retrieved 2019-02-21.
- ^ Trix NZ. "Lua support for Visual Studio Code". Visual Studio Marketplace. Retrieved 2019-02-21.
- ^ Technosophos. "Make support for Visual Studio Code". Visual Studio Marketplace. Retrieved 2019-02-21.
- ^ "Markdown and Visual Studio Code". Microsoft. Retrieved 2019-02-21.
- ^ Konstantin Zaitsev. "Nim for Visual Studio Code". Visual Studio Marketplace. Retrieved 2019-04-07.
- ^ Henrik Sjööh. "Perl support for Visual Studio Code". Visual Studio Marketplace. Retrieved 2019-02-21.
- ^ "PHP in Visual Studio Code". Microsoft. Retrieved 2019-02-21.
- ^ DEVSENSE. "PHP support for Visual Studio Code". Visual Studio Marketplace. Retrieved 2019-02-21.
- ^ "PowerShell in Visual Studio Code". Microsoft. Retrieved 2019-02-21.
- ^ "Python in Visual Studio Code". Microsoft. Retrieved 2019-02-21.
- ^ Yuki Ueda. "R support for Visual Studio Code". Visual Studio Marketplace. Retrieved 2019-02-21.
- ^ "Razor support in Visual Studio Code now in Preview". Microsoft Blogs. Retrieved 2019-02-21.
- ^ Peng Lv. "Ruby support for Visual Studio Code". Visual Studio Marketplace. Retrieved 2019-02-21.
- ^ Will Velida. "Using Visual Studio Code for Ruby Development". Medium. Retrieved 2019-02-21.
- ^ Rust Team. "Rust support for Visual Studio Code". Visual Studio Marketplace. Retrieved 2019-02-21.
- ^ Ritwick Dey. "Live Sass Compiler for Visual Studio Code". Visual Studio Marketplace. Retrieved 2019-02-21.
- ^ Amlovey. "Shaderlab for VS Code Free". Visual Studio Marketplace. Retrieved 2019-02-21.
- ^ "Transact-SQL in Visual Studio Code". Microsoft. Retrieved 2019-02-21.
- ^ Matheus Teixeira. "SQLTools - Database tools". Visual Studio Marketplace. Retrieved 2019-02-21.
- ^ "Use Visual Studio Code to create and run Transact-SQL scripts on Linux". Microsoft. Retrieved 2019-02-21.
- ^ "Swift Development with Visual Studio Code". NSHipster. Retrieved 2019-02-21.
- ^ Martin Kase. "Swift Language support for Visual Studio Code". Visual Studio Marketplace. Retrieved 2019-02-21.
- ^ "TypeScript in Visual Studio Code". Microsoft. Retrieved 2019-02-21.
- ^ "400 TypeScript extensions for VS Code". Visual Studio Marketplace. Retrieved 2019-02-21.
- ^ Darfka. "VBScript support for Visual Studio Code". Visual Studio Marketplace. Retrieved 2019-02-21.
- ^ Josh Johnson. "XML Formatting, XQuery, and XPath Tools for Visual Studio Code". Visual Studio Marketplace. Retrieved 2019-02-21.
- ^ Red Hat Inc. "YAML support for Visual Studio Code". Visual Studio Marketplace. Retrieved 2019-02-21.
- ^ "Developer Survey Results 2016". Stack Overflow Insights. Stack Exchange. Retrieved 7 April 2018.
- ^ Kanjilal, Joydip (2015-05-06). "Visual Studio Code: A fast, lightweight, cross-platform code editor". InfoWorld.
- ^ Bisson, Simon (2018-09-11). "It's gotten a little easier to develop PWAs in Windows". InfoWorld.
- ^ Krill, Paul (2018-02-24). "What's new in Microsoft Visual Studio Code". ChannelWorld.
- ^ Wanyoike, Michael (2018-06-06). "Debugging JavaScript Projects with VS Code & Chrome Debugger". SitePoint.
- ^ "Visual Studio Code FAQ". code.visualstudio.com. Microsoft. Archived from the original on 28 August 2016. Retrieved 4 November 2016.
VS Code collects usage data and sends it to Microsoft to help improve our products and services. Read our privacy statement to learn more. If you don’t wish to send usage data to Microsoft, you can set the telemetry.enableTelemetry setting to false.
- ^ "Microsoft Enterprise and Developer Privacy Statement". privacy.microsoft.com. Microsoft. Archived from the original on 4 November 2016. Retrieved 4 November 2016.
- ^ https://github.com/Microsoft/vscode/tree/master/src/vs/platform/telemetry
- ^ binary releases of VS Code without MS branding/telemetry/licensing: VSCodium/vscodium, VSCodium, 2019-03-17, retrieved 2019-03-18