The new Live Share function introduces powerful pair programming capabilities that enable you and your team to collaborate on the same codebase with ease and without the need to configure any development tools, environment settings and so on.Īdditionally, VS Code features a solid Git Integration, powerful Intelisense, syntax highlighting for some of the most popular languages and many more awesome features. It features a comprehensive suite of editing and debugging tools, lightweight integration with other services and it’s also very extensible. Based on the 2018 Stack Overflow Developer Survey (under Popular Development Environments), Visual Studio Code is one of the most popular code editors, being used by more than 34.9% of the developers. instead of putting everything below keyword (as your formal language definition may insist) you should think “would I want these two elements styled differently?” and if so, they should probably be put into different root groups.Visual Studio Code is a free, open-source and cross-platform code editor developed by Microsoft. you probably do not want an apostrophe to be auto-paired when inserted in strings and comments, regardless of the language you are in, so it makes sense to only set this up once.īefore going through the conventions, here are a few things to keep in mind:Ī minimal theme will only assign styles to 10 of the 11 root groups below ( meta does not get a visual style), so you should “spread out” your naming i.e. There are however conventions so that one theme can target as many languages as possible, without having dozens of rules specific to each language and also so that functionality (mainly preferences) can be re-used across languages, e.g. TextMate is free-form in the sense that you can assign basically any name you wish to any part of the document that you can markup with the grammar system and then use that name in scope selectors. This will correctly match a string like: qq( this (is (the) entire) string). This can also be used to match recursive constructs like balanced characters: patterns = ( This will give you a starting grammar which will look like the one below, so let us start by explaining that. You can create a new language grammar by opening the bundle editor (Window → Show Bundle Editor) and select “New Language” from the add button in the lower left corner. Then scope selectors can be used for styling, preferences and deciding how keys and tab triggers should expand.įor a more thorough introduction to this concept see the introduction to scopes blog post. The language grammar is used only to parse the document and assign names to subsets of this document. For example you may want a key stroke or tab trigger to act differently depending on the context, or you may want to disable spell check as you type those portions of your text document which are not prose (e.g. The purpose of this is to allow styling (syntax highlighting) and to make the text editor “smart” about which context the caret is in. Language grammars are used to assign names to document elements such as keywords, comments, strings or similar.