Ask the Team: Visual Studio Code | COM01

All right, welcome everyone This is the ask the team session for Visual Studio Code A few things to expect today from the agenda is what to expect to be the first thing, then we’re going to introduce some folks from the team Will have open question and answer and there will be a closing at the end You can sort of ask questions along the way, so let’s go on to the next slide here so you’ll see a chat box on your session Use that to ask any questions A posting honestly or use your name and if a question is approved then we will move it to the section where everyone can see it would like if you could upvote your favorite questions ’cause those will help us guide which questions we can answer We have a few folks online that we can answer questions sort of verbally on the screen and others on the team will answer questions through the meeting, chat and again we will answer the most popular questions 1st and we’re expecting to see a lot of questions coming through so My take is a minute to get going, but once we do we should be OK So we’re recording this section internally up Please don’t record the session Don’t record, don’t spam the chat session There’s going to be I don’t know There’s almost 1000 people online right now, so there’s going to be a lot of questions that come through So help us out by not spamming that an asking some concise questions Of course, what we want to do is it here to the Microsoft Code of conduct Here it is a large block of text for you to read, but basically it says be cool, don’t Don’t um could be rude Uhm, you know all the normal things that you kind of expect So if we find that that people are not respecting the code of conduct that we’re going to dismiss the questions and move on to the next one So we really appreciate you following those Alright, so let’s start by meeting the team No, not everyone is going to be on the on the call, but there are a bunch of folks that are online, so we’ll go through those kind metal He is engineering engineering manager in Redmond for Visual Studio Code Burke Holland is a cloud advocate on the team I love that picture of Berk Matt Burner is engineer on the team Matt Hernandez The other mat on the team as a program manager He covers things like Azure tools and extension ecosystem and things like that Miguel Solorio is our UX designer on the team So if you love the look of Visual Studio Code You should thank my Miguel Alessandro is our product manager He’s on the call live as well Son are do you wanna say hi to everybody? Let me send your picture live there we go say Hi SANA All right? Cool um, and then we also have Let’s see. Rob Lawrence, another engineer on the team and Eric Amodio if anybody’s ever used git lands, you want to ask questions of Eric, go ahead Rob. He’s got great answers on, say, the settings UI remote SSH extension Uh, so yeah, so that is the team and what we want to do now is move into the question answer session So here is just kind of a set of things Feel free to ask us about an we will start looking at the questions that come in and then publish them and start answering Alright so yeah product road map anything that we’re working on That you can find on our page on GitHub remote development So if you’re doing remote SSH or containers at WSL or just do your code spaces Of course, there’s a great talk later on this afternoon that I’ll do on remote development Any integrations with Azure or GitHub? How we do development out in the open? Happy to answer questions on that Like I said, there’s the UI UX The product Miguel is here to answer questions on, and what do you want to see? So let us know OK, so we got a bunch of questions coming in so far Let’s see when Here’s the first question When will we have pin tabs like we do in Visual Studio 2019? So, uhm, they are being worked on right now Um, I think they are available in the insiders built But yeah, it’s definitely something that’s being worked on right now And so hopefully either it’ll be out next month or the month after whenever we land on the right experience or people Once we move it out of inside moving into stable All right? So next question, what are the best

extensions for any language for VS code? Ah. That’s a tough question, sunny Have any thoughts on that one? What are the best extensions for any language envious code I think get lines is very popular one It’s actually made by someone on our team Eric Amodio. He was used to be a code stream so it provides you the full history that you need You can go to any line and see the commit and go back in time in the timeline and see how the file has changed overtime So basically supercharges already integration with git that exists in the product, so that’s one of the most popular extensions we have as well Yeah, there are a ton of attack, great extensions. It’s hard to pick, but the best ones are if you go into the marketplace there are thousands and thousands of extensions and you can sort them by the most popular, which usually gives you a good idea of which ones to go and install and try out And if you find something that works for you, give it a good rating and that’ll help sort of surface it up higher into the marketplace list Alright, next question Yet VS code team is doing a great job Out of curiosity, how many people are working on this? How many teams? Uh, let’s see So the core team of Visual Studio Code is about 27 or 28 people Uhm, actually we just have a couple of interns just started this week, so maybe up to 29 now and the team is split across Zurich, Switzerland, Redmond We have a couple of remote people as well, but that’s just the core part of Visual Studio Code If you think it makes the product as a whole, it’s really a combination of the core Plus all the different sort of key language extensions, and so is the team that works on the Python extension The Sequel Extension C Sharp, and so if you sort of wrapped your arms around all those extensions it can easily get up to a good hundred 150 people across the division that are working on the core of the product and then you can go even further if you look at sort of the Azure extensions or GitHub extensions Things like that It’s quite a few people that all come together to deliver the product All right? Next question Where is the VS teams biggest focus right now Tools and productivity enhancements or platform support, so that’s another good question Let’s see probably the best place to go and look to see what was going on or what’s going on with Visual Studio Code is in our public road map and that’s on the GitHub repository So if you go to github.com, Microsoft Vscode, Wack Wiki, Wack road map, you will find our full road map there Uh, usually looks at about 6012 months, and I’d say that there’s sort of a mix of things that we are working on from productivity features to integrations with Say GitHub and your get experiences and things like that Remote development, a lot of work with the code spaces team to bring basically Visual Studio code into the browser Some of the newer things that we’re working on our notebook support in the core of Visual Studio Code, and so you could have a great notebook experience where each cell is basically an editor that can leverage all the extensions that exist in the marketplace, and problems and debugging and all good stuff like that So it’s kind of a whole broad spectrum of things that we’re working on, but the Road map if you go there and it’ll it’ll give you a pretty good idea of what that looks like I said, Do you want to handle the BS code settings one? Oh sorry, you did. Alright cool In fact, I could probably demo and show it. I can share my screen All right? Alright, cool Cool, so you see I’m currently on vias, code insiders Uhm, and currently the setting sync experience is available and insiders Care about your screen here will send that live. And there you go I think everybody should be able to see your screen now Cool. I’m envious code insiders, which is our daily build an this is the one where we ship to every day So if you don’t currently have it, please install it, give us feedback It helps his dog food and so the settings sync experience is currently available in insiders So I can go over here to this little account icon and you can see I’m currently signed in with GitHub I can turn on preferences,

sync and this will allow me to choose what it is I actually want to sink So right now I have everything sinking I can turn it on and associated with the account I’m currently signed into Having trouble, uh, issues, so they can go into my settings that Jason, Um Or into my settings. You might also try turning it on from here This is still a sort of an experiment, and we’re getting feedback, so if you want to help us, try it out and help us You know what is able to sink or what is it you can see they will have some issues, but please let us know and try it out and insiders today Awesome very cool alright Want to see the next question looks like Sandra answered that one, but I’ll answer it here online Live for everybody. Actually, maybe I can demo that one here Just give me 1 second Alright, Oh Oh, you stop sharing your screen, that’s what happened. Sorry about that OK, let me share my screen now OK, one of the questions was what was the The GitHub pull request extension that was demo’d in an earlier session and so it is the GitHub pull requests an issues extension that you can go and grab from the marketplace and when you install that Actually, no, you won’t get that little icon ’cause I drug draw a drag and drop that around It will install a new icon, a new view it over here on the left hand side which will show you it’s basically a pull request Icon, but then what you can do is you can take these is one of the new features you can actually take these and then drag them into other explorers now So now what I can do is actually have GitHub issues GitHub pull request all living inside my source code control viewlet and once I log in I have access to my GitHub issues I can start working on them or I can start creating and working on pull requests all at the same time So that’s the answer to that question Alright, let’s go back, what’s next? OK, so here’s a good one What’s the long-term vision of Visual Studio versus Visual Studio code? Seems like this code is replacing BS in many workflows, so this is a good question Basically, Visual Studio is a family of products and each product is designed for a different developer audience Along five years ago Actually, the Visual Studio code birthday was last week or the week before where we are five years old now But when we start up Visual Studio code, what we try to do is produce a new tool that we didn’t have is compared to Visual Studio which is an editor And so this kind of a spectrum of tools There’s one end of the spectrum We kind of think of editors like this code or sublime or notepad plus plus at the other end of the spectrum a rides like Eclipse or Visual Studio and what Microsoft didn’t have at that time was something that sort of sat on the editor side of things We only had the IDE tool, so that’s why we build Visual Studio code To act and behave and be more of an editor where it was very, UM, keyboard driven, terminal driven, lightweight Whereas there’s no project system, it’s just you’re working on a folder and files There’s no sort of magic that happens around that, and that’s kind of the tool and the focus of Visual Studio code Whereas Visual Studio IDE is really, this is the magic that comes from the IDE where everything sort of understands and knows everything that’s going on in the tool So when you open it up and you open up a solution, then it understands All sorts of things about that about that project in solution, whereas an editor really kind of looked at the files and folders on your machine and extensions can make that richer, but they’re definitely two different focuses, and now you think about the Visual Studio family It also includes Visual Studio for Mac as well as Visual Studio code spaces, which is a BS code running in the browser, so we’re going to continue on having multiple products in the in the family of Visual Studio products and Each one sort of being targeted towards an IDE where everything is all encompassing or tordsson editor or browser based tools or whatever it is that you that you need instead of making sort of, you pick one tool and have it be the same thing for everyone OK Let’s see Osuna. Here we go

Here’s a good one for you Let me send you live, uh, so, son, how do you handle Accessibility? With envyus code? You have an A 11 Y team, or is it handled by each individual developer? Yeah, we definitely Accessibility has become one of the most important priorities we have for our product We want it to be usable by all developers and we actually have a really active ally or Accessibility community that helps us every release Give us feedback Open issues on GitHub Uhm, we having you get her community where specifically for VS code Accessibility So if you want I can actually reply to that comment and share the link to that So if you’re particularly passionate about Accessibility or you want to help us Test on different kind of screen readers Please let us know and we love your feedback Every release we have more and more features where we try to make open for screen readers and so you can check them out in our release notes and also if you go to the GitHub repo and look at the Accessibility label you can see that we’re constantly working on it every every iteration Awesome OK, so we got another question here It says how much dog fooding do you do? Do you do much of the work obvious code within DS code and actually we do all of our development of this code in VS code So one thing you can see up here I’ve got this code running and there’s the green icon on the upper left hand corner and this is what we call the insiders build of Visual Studio Code And this is the build that we use to develop these code It ships every single day, sometimes multiple times during the day And it’s always the basic The latest off of master, so it has the latest features and fixes in it and so this is the one that we use Let’s see I can show you how to grab that and download it So let me bring up my browser here And so you can see it Here we go Alright, so there we are at code.visualstudio.com and if you want to download the insiders build if you come over here with the download for Windows Button and if you’re on a Mac or Linux so so the appropriate operating system and you click on the dropdown You’ll see there’s another column here called insiders and this is where you can grab the insiders build right if you want to go to the other downloads, there’s an insiders build link as well, so you can go and use the same build that we use now You might think, well, that’s crazy Sort of being on the bleeding edge Obvious code, but since we’re using it to develop this code, it is almost never sort of on the ground or on the floor, and if it is then were fixed it because were blocked and because we have teams that are both in Europe and in North America, we generally have 24/7 coverage, so if something happens, well, everybody in Redmond sleeping The folks in Zurich are up and then I’ll I’ll pick, then they’ll push a new build If necessary, and it’s just like the same, every other, uh, sort of update you get from BS code kind of happens in the background to try to be as least intrusive as possible Now if something does go wrong with the insiders build, there’s a couple of things that you can do to sort of work around that One of them It is you can actually in settings, and I can bring up my settings file over here You can say you can change what the update mode is You can say it’s manual Or it is the default text everyday? Oh yes OK, uhm An A or none so it never updates Uhm, and So what you can do is you can say all right? Well I can control how often I get a copy of insiders or worst case scenario, you could run the stable at the blue icon build side by side with the insiders, and they’re completely separate And then so if something goes wrong with inside, you always have this table build to go back to. OK, so that That question. Oh, let’s see Alright son, a got one for you Put you on spot What is your personal favorite underrated extension for VS code? Let me send you live and then I’m gonna do my personal underrated favorite for VS code Alright, let me let me pull it up. Let’s see I don’t like sharing my screen cool Screen life hang on I’ve got to look through my installed extensions Uhm, let’s see actually what I really like is Peacock If most of you it’s not under, it’s pretty pretty popular

But if you haven’t heard of it, it actually changes the border of your windows so often If you have multiple VS Code windows open, you have a hard time kind of differentiating which one is running which app or which work you’re doing, which window This let’s you create new Windows with a different color So for instance, I can change the border of each of these, so I’m going to quickly reinstall it Alright cool and search for Peacock again Alright, I guess it’s not liking me today, but if you if you search for the Peacock Extension and install it, you can see that once you install it and create a new window, you can change the border of it and it will be easy to maintain different windows Awesome, alright, so let’s see. I’m going to now share my screen again Will send that live and give my 2 favorite underrated extensions The first one is one is called close all And this is an extension by Ben Passero who is a uh engineer over in Zurich And if I install this extension and I go and I open up a couple of files, who is a package that Jason and say split it off into a separate panel? What this extension does it add? This close all button? So if I’ve got see multiple files over in that? Well, let’s see a couple of years and I want to clean that up I can usually just hit the close all button Boom, they’re all gone, right? So that’s my number one favorite extension, so it works across well Is the second one I’d be remiss if it didn’t say it as one by me Yes, and this is the open folder context menu So if we install this one, what you get is, let’s say you open up a folder inside this code and you want to sort of focus into a particular folder instead of having the whole thing open But what this does is adds a context menu or to context menu commands Over here, open new work bench here or reopen workbench here So if I say reopen Workbench, it’s just going to open it up on that views folder and sort of focus the entire environment down Those are my my two uh under rated ones Uh, that I love the most Great, let’s see what’s next All right? Here is one. Just fun What are the security risks, if any, of using Visual Studio code extensions from unknown third parties? Well, it’s a good question because there’s you have to think about it like you’re downloading code in any development tool in Visual Studio, Eclipse, whatever If you’re taking extensions which are coming from the Internet from someplace you’re downloading them to your machine and you’re letting them run on your machine So there’s always this sort of remote possibility or something But we have a lot of protections that are in place for this type of this type of scenario, so the first layer of detection or prevention or protection I guess is the right word is in the marketplace itself, where the community can go and rate extensions and provide feedback on So if you go up there and you see an extension that has a very poor rating, lots of comments Maybe she’s doing something wrong Obviously don’t install it and then the next level of sort of protection we have is The report abuse button on extensions in the marketplace, and if you find an extension of somebody in the community, finds an extension, then you can click on that report abuse button It comes to us Do we take these very very seriously? And what we will do is will go investigate the problem and if it is a security issue or some sort of destructive thing, we have the ability to pull that extension from the marketplace immediately And if it is severe enough, we actually can Um, send out so I send out, but we can Uhm, uh, basically post a Jason file that we host Visual Studio Code will look at periodically and say hey if that extension is found on the machine, delete it from the machine immediately so we have this ability to sort of say right This is a very bad extension This code go delete it should not be there so it kind of quarantines

it and puts it aside So those are kind of like the social way that we protect and then the mechanical way that we can go and make sure that machines are not her But the the most sort of secure way that you can protect yourself is to use a one way It’s very secure to protect yourself I should say it’s not the most the most would be to just not use any extensions, but you can use docker containers as basically an isolated development sandbox where extensions and runtimes or anything or all contained or built into that container So it creates the sandbox that it can’t reach out to the rest of your machine so Extension could be isolated and run inside that container and sort of stay in that place and if it is misbehaving and only misbehave inside that container So that’s that’s kind of the different levels of protection that that are four did 4 ecosystem extensions which bind far is productive and adds value to the tool But occasionally there is the potential that there is a misbehaved extension out there and we have some protections in place to make sure that we contain it or you have the tools in place to contain it yourself OK, what’s the next one? Oh, here’s one son I’ll take this one then I’m gonna softball you the next one Where can I learn to use this code to its Max? One of the guys on the team, Matt Burner is actually creating a every single day of the calendar year 2020 Just the highlight of 2020 So far I have to say a tip of the day for Visual Studio Code and he’s actually produced a tips and tricks video This code, which is, uh, uh, some of his favorite sort of tips and tricks He’s been playing together and so if you go on Twitter and you follow matter, you’re part of this code Twitter handle then you will get access to all of those and he’s got a YouTube channel where you can go and and see all the different tips and tricks To me, that’s kind of like the best way to get most productive is to really sort of understand, sort of the ends and outs in the keyboard shortcuts to being really productive with the tool So Matt is the guy All right? Let’s see Alright, so now do you want a question? Yeah. I’ll let you Actually you can pick and then you can answer it Send me softball I’m throwing you once they like you don’t You don’t see him coming right. There is one Thanks, Chris is really generous What are some key shortcuts in quality of life? Tips to know as a beginner this is this is a fun one Let me share my screen again Cool, so there’s some really important ones If you’re just starting out and you want to make your quality of life in VS code a little bit better, one of the most important ones is the command palette So command, shift P or control shift P depending on what you’re on Everything in VS code, every sort of action you can take is mapped to a command, so anything you want to do you can just search for it so new window open a new window like anything you can do, even with extensions, extensions are able to Contribute commands to this list So this is a great one if you just want to try something another key one is opening and closing and toggling this Explorer so command Uh, command shift? Uh, sorry? Command B I might have my shortcuts metal differently Um, another one is to open the terminal so command Alright, sorry, I think I have some different keyboard shortcuts for my insiders I’ll do it on my stable so controlled toggle will toggle the terminal control B will toggle the Explorer as well, and then there’s different keyboard shortcuts for all of these as well, so those are some of the main ones The terminal, the Explorer, and the command palette All right? Let’s see, let’s go to the next one 7 Live Alright, I’m trying to see if I can’t Here we go I want to answer this one question and I’m just trying to pull up the screen so I can kind of give a little bit of background So one of the questions is if you’re a dev on Villa’s code for developing this code on BS code, how did it start before BS code existed? Which is a really good question So when we started vias code, uhm, it was really all about the core editor,

right? So when you’re writing code that editor that you see, it’s called the Monaco editor and in order to develop that editor what the team wanted to do was dog food Developing the editor is the kind of the best way to create a code editor is to use the code editor to create it So what happened was and so we’re trying to do this in the browser We decided to create one call, a little work bench around It’s a little note application that ran locally. It had an Explorer An editor had, I think it had a terminal, but it all ran locally and it had source code control and all around locally on the machine and we use that to go and build the Monaco editor from scratch, and so we were able to dog food that way If you look before that, which regular text editors to at least boot strap strap this whole process, but we got into a situation where we could dog food, building the tool as soon as possible, and we in fact Shipped that Workbench in Azure, so let me go and share my screen ’cause it’s still there in small places and so let me Send my screen live OK, So what we see here is actually, uh, this is an Azure function and one of the things that you can do with an Azure function is coming back up here You can edit the Azure function live in the Azure portal So so, um, here it is Sorry over here on the left hand side of my Link here says app service editor preview and if you click on that you’ll actually bring up this Very very very old version of this code running in the browser and this is the original Monaco editor right there, and you can always tell it’s Monaco editor when you do a selection It has nice rounded corners, so that’s how we sort of dog food dog food in Visual Studio code before it existed and then at one point we moved to having it be an electron based application running locally and then last year we just moved back into the browser with Visual Studio code spaces OK, you wanna take one center? Yeah, let me take a look at the list There’s so many. Wow, uh All right, this one is this one’s a good one What do you think is the best argument to convince my colleagues to switch to VS code as an ID? So I think if you think about the current sort of State of editors and I’d ES, you have editors on one end that are more lightweight like sublime text in notepad and then you have sort of heavier ideas on the other end, like Eclipse or some other ones, and you can kind of think of VS code as leaning towards more of an editor, so it’s still as lightweight and fast, but you can kind of specialize it To include some of those features from an ID like debugging, formatting, like all these extensions, I can kind of make it as powerful as you want it to be So I think that the key are human about trying out VS code is just that It’s really flexible, and then you can kind of personalize it So my VS code looks different from your VS code and it behaves differently too, but that’s sort of the extensibility and flexibility is like one of the best parts of it Good answer, good answer I want to follow up on one of the questions that was asked really about pin tabs and I said I’m pretty sure it’s in the UM In the insiders build of VS Code, and I just brought it up and confirm that it is and so I’ve got insiders and I can right click on a tab and I can say pin and then it will stay pinned So we’re still working on the the design of it again. There’s a There’s an issue in this code repository, probably just search for pin tabs and then you can contribute to the discussion there OK, let’s see what’s next You wanna take one? Yeah, let’s keep looking uhm. There is a question earlier I I can’t find If I remember I saw it about um VS code coming to an iPod That’s going to be possible, so it’s not going to be a native mobile app, but if you haven’t heard of Visual Studio code spaces yet, there was mentioned Probably in a bunch of keynotes today, but VS code code spaces would be able to be ran on an iPod, so that’s still currently in beta But hopefully you will be able to try it out too OK, let’s see the next one Where did it go? Alright, Here’s one, uh, let’s see, is it difficult from an infrastructure

point of view to manage an open source tool with literally over 1000 contributors? It it takes a lot of So, so the engineering team has gotten really, really good Um at sort of managing all the different channels of information that come into the tool I wouldn’t say that it’s easy It takes a lot of discipline to do it But really, what we try to do is write tools that help us sort of manage the flow So we talked about earlier in the core of this code There is some 2728 focus on the team Um got millions of users You can look at the number of issues that come in on GitHub, and so the challenge is that what we want to do is we do something The phrase We use zero distance from the customer, the developer, and so we want to say as close as possible to the developers ecosystem that’s out there So we have a person We rotate this through every week One engineer on the team we call the inbox tracker and their responsible for looking at every single issue that comes in through GitHub and they respond to them closing them or signing out to someone So we’re always on top of what is coming into the system Parallel that we have what we call a Twitter tracker Who is responsible for looking at every single tweet that comes in or references VS code? Finding any issues trying to answer them or putting people in the right direction So here’s a doc or go Um reporting issue here? Are there? Uhm, so we have people that are sort of code on the frontline managing that inflow Other thing we do, you’ll notice in the BS code repository there are a lot of bots and so it makes it easy for us when we start triage different issues You can just put in a quick comment in The bot will come through and dispose of it If we think that it’s a duplicate of something. If we need more information, it will actually make a post in there and say Hey we need more information to resolve this particular issue And it’ll even look at say you know if there’s no I think it’s 30 days or 60 days Now if there’s no more information that comes in because we need more info to actually read the problem or something like that, it will go and triage and closeout the issue for us So we try to do a combination of people working on it and a collection of tools that help us manage inflow of it So yeah, it’s it’s challenging, but it is also rewarding work to do, but we’re getting We’re getting better at it Especially is the bots The infrastructure grows and get smarter It really helps us manage the flow and from a pull request perspective, we try to take as many as we can We try to thank everyone That that provides pull requests? Uhm, yeah, so it’s challenging But it is definitely fun to do All right, Sonny, your turn. Yeah, let me take a look at the the list There was a question earlier about how we prevent code bloat because there’s just so many people working on the editor and we add more and more features So we are the mindset is trying to ship some features as extensions instead of adding them to VS code cores that we can prevent bloat there as well as provide some new APIs so that other other author is an extension Authors can start using them in their extensions as well Um, we also like Chris mentioned, have a team where we are able to rotate roles so we have in most iterations have a debt week where we do a lot of that code cleanup as well I think in terms of like the mission and what we’re trying to add in core versus extensions We want to keep it lightweight, but also make sure that as we mentioned, if you wanted to kind of have more specialized experience, you’re able to choose the extensions that you want to add that extra power, but disable them are uninstall them if you don’t want to use them anymore, so that’s something we were trying to do Awesome alright Alright, Yeah cool So there is a question about how VS code in GitHub Integration, so we actually recently had done a lot of work here, so there is a GitHub pull request extension that’s been existent for like a year or so We added some new integration to that Now it’s a GitHub pull requests an issues, so if you search for in VS code today, you can play around with it So this is kind of bring some of the functionality in GitHub where you can No, do code reviews Merge P Rs, create PRS and also create issues from your code So for instance you’re able to create a issue out of to do comment and then tag someone else in it

So we’re trying to make VS code sort of more aware of your GitHub presence and this way you have a tighter loop between what you can do on GitHub and what you can do in this code Awesome alright I gotta I gotta couple here I can handle let’s see. Uh, it’s another one about, uh, sort of the the tool itself, the development of the program and its tentacles seem Rapidan Explosive How are you attempting to prevent code bloat and mission cohesion? I don’t know what mission cohesion is, but um, tell you about how we sort of think about what gets added to the tool itself So there’s a constant sort of focus on ensuring that Performance is as fast as possible, so we have constant measures of performance, and looking at the code size and all that stuff so it’s something that we take very seriously They were always looking at Probably More importantly is that we try to build the tool As a set of extensions right and then as the features come online, if they can get them as an extension, and that’s where the functionality comes from, then it’s something that you as a user can then add in and customize on your own, sort of having it be for every single user gets it in the core of the product, so that I was talking about earlier There is a GitHub pull request and issues extension and I showed earlier all that functionally functionality exists as an extension so that you as a user can customize how you want the tool to Maybe there’s another things too, like you can actually go in and see all the quote built in extensions for VS code These like the core extensions for like language services You can turn those off if you want So there’s lots of different ways to sort of customizing in Germantown, but it’s a constant focus of the teams to make sure that performance stays stays great The size of it stays lean as much code as we can rip out We will rip out Ben on the team a couple weeks ago, overhauled the quick pick Experience, which is when you hit command P and you get that drop down and he was able to go and remove it was a few 1000 lines of code and so whenever that happens that’s great, although sort of you know Bells and whistles go off around the team so that we all cheer that there’s less code in there ’cause it helps not only from a size perspective from a download, but also from maintenance perspective So constantly trying to stay clean and keep clean and that’s one of the things that we do And that’s sort of the iteration plans of VS code is we ship every month, but it’s not like a fixed for week or five week or three week iteration It’s whatever the calendar lines up to be And then in between milestones we have something we call a debt week Uh, where the individual engineers are able to go in and fix and clean up and do whatever it is that they want to sort of keep their area or parts of the product clean and so they can go through and sort of pull out unnecessary code and keep it lean and mean Right? Now the question, will this code always be an electron app, uhm? I don’t see anything in our future that says it’s not going to be an electron app We invest heavily So the reason I say that is, you know, in 10 years from now, there could be a new thing out there we can’t even imagine what it is and we decided that that’s the thing to do But we actually invest quite heavily in electron Have one engineer on the team whose sole job is to work an electron and the integration of these code into electron with all the other big sort of partner teams Inside Microsoft and outside of Microsoft, who are dependent on electron as well So it’s we consider it a key part of the app and we continue to focus on it and will make it better Make it faster Make it leaner Yeah, so it’s a It’s a key part of what we’re doing so we don’t have any immediate plans There’s nothing saying like yeah, on the road map, we’re going to move off electron, its electron app, and it’s been working out really well for us so far Alright, so now your turn alright Cool um. So there is a question on who won the team edge Is the majority of the Microsoft published extensions? I owe them a beer Yeah, that’s right, uh, we’d all of them beers So like Chris said, there is a like a core team for VS code But then at Microsoft we also have a bunch of teams for each of the extensions and so together we’re all sort of making the product better one and so, for instance, there is a Python team that manages the Python extension from Microsoft or a docker extension for Microsoft, and if you actually go to the extension in VS code And go to the repository You can create issues and interact with those teams as well So for instance, if you have an issue or a feature suggestion for any of the language published, Microsoft extensions, you can go to each other repose

They’re all open source and you can create an issue or give a feature suggestion Alright, I got one Let’s see let me send me live Actually I’m going to send my screen live OK, so where did it go up? Can you recommend any tutorials or docs for Authoring BS code extensions? Yes I can, so we zoom in here on the browser little bit So here’s the DS code website up here In the top is on a Linksys API and so this is all of the extension documentation that we have It is a great place to come in and get started with extensions There’s your first extension It’s super easy to do You run a quick command line tool Boom, you get set up your ready to go and Under a minute and so this is the best place to Start learning about extensions from there But a lot of people do is they go and they look at the marketplace and for extensions that are open source, including extensions that ship from Microsoft, there’s a bunch of extensions you can see how things are done there There’s a repository It’s called the VS code dash extension samples repository, which has a whole bunch of different extensions samples that you can go in And try out and learn from and then we even run what we call a extension author is sort of slack channel that you know if you’re getting deep into it then you can go and join that and get A much tighter collaboration with the team Matt Hernandez and Erica modio Or running that and so yeah So there’s lots of different ways to get get started with writing extensions and lots of examples out there to pull from And what’s cool about it is like I said before, since we try to write everything that we do in this code as an extension, everything you see in the tool you can generally create an extension that plugs into it in some fashion, so that’s pretty fun. All right? Let’s see one more I’ve got here Is there a any collaboration with the BS IDE team? If So what are the feelings between the teams we love the VS IDE team? But no, seriously, there is a ton of collaboration that goes on across all the developer division working on VS code and Visual Studio, Visual Studio family of products Of course you know there are two different code bases their written in two different languages and so we want to share and collaborate So what’s the best way for us to do that? And the way that we sort of collaborate the most today is through language services and debuggers and so with this code if you’re with Language service like C++ or Python There’s something called a language service that runs that knows how to sort of work with Python right? And it communicates with these code through something called the language service protocol The LSP and Visual Studio is adopting the LSP protocol as well, so that means that the same language service that can be used for type script or Python over India’s code can also be used in Visual Studio as well And the same thing for debuggers Since we have a debug adapter protocol Which means that the debuggers that that are written for various languages and platforms that are extensions of this code will also be able to be used in Visual Studio itself, and so we try to collaborate where it makes sense on those boundaries where we can sort of talk through protocols and then the customization of the experience really happens in the tool as it should, and then we can reuse code on the back ends of those for the language service to the debugger, which is appropriate You don’t have to write the Python language service one for Visual Studio, one provision for Mac, one for VS code They all can sort of use the same language service to get the same experience across all the different tools Alright, it’s 1238 son and we’ve got about what 7 minutes left Yeah, I can take a couple uhm, so there’s one about Sorry, I just lost it, just scrolled Is there anywhere from made an extension that utilized VS code in a way that you did not think was possible? Yeah, it happens all the time People are making some really interesting extensions so I can there’s a couple of really cool ones that are held like visualize things in VS code so I know for it’s a good one for education here TS student called the debug visualizer that was pretty cool that let’s you kind of visualize data structures And then as you add them, You can kind of see No, an extra node being added or being removed so that was a really

cool at one that took advantage of web views and BS code Let’s see another question, uhm? Is it possible to go through GitHub dips in VS code? Definitely So if you can try sharing my screen here Alright, let me know Alright, can you see my screen? I’m gonna send it live you got it yeah cool So if I have a file open for instance and you just make some difference Hello from build this is you’re able to definitely see diffs so I can Sorry, sorry, sorry I say again the the git Sorry they get lens tool help you do that as well but I can see dips like this I can also see the changes I’ve made in a file You can kind of change the view to be a split view or a sort of inline view of the diff So that’s definitely really possible Alright, I gotta couple I can handle here sanna Let me see you Not showing anything Let’s go here to my screen Get back so I can see the question OK here we go Uh, I’ll share my screen while I’m talking so curious how code spaces will compare with the full downloadable version so you can see my screen over here on the left hand side I’ve got a code space open in the browser and on the right hand side actually have the exact same code space open in VS code, right? This is the cat said no node version and it is the same one over here and so the Um, at the end of the day, the functionality between the two is just about identical, and that is because we’re running basically the phobias code, either in the browser, on the desktop It has both have full access to the extension ecosystem, so it flashes the marketplace Debugging all of that just works in code spaces, we can do port forwarding and all that goodness, and so the idea is that you get the full development experience you get In Visual Studio code on the desktop The same way that you get a full development experience with Visual Studio Code in code space is obviously the differences are like if you’re working on something locally and you’re maybe going after Raspberry Pi or something and you don’t have access to it from the code space, then you can’t do that from the browser But if you’re working locally and you can access it from this code, then you can do that there, but other than that they should work almost identically OK, so. Is the next one? Uh, let’s see what is the most challenging problem? You, the BS code team is faced with in the last five years The last five years is our entire lifetime But I mean there there are a lot of different fun problems have been out there I think the most interesting one that we tackled over the past couple of years is remote development and being mean by remote development is the ability to use this code locally on your machine, but connected, say over SSH to a VM running some place in the cloud or to the windows subsystem for Linux, or into a docker container Or even in this case into a Studio code space and that sort of core infrastructure that we put in place which separated out the UI process of Visual Studio Code and the extension rose process into a server piece has enabled us to have this whole breadth of experiences from the desktop to the browser to the back end Running VMS to containers to WSL so that core piece of work that the engineering team spent a ton of time on has enabled a whole bunch of scenarios that we wouldn’t be able to do today Most notably with code spaces having this fluidity between having an entire development experience that you can access from either the desktop or the browser, work together from wherever you want at anytime, and so that’s been sort of the most rewarding and useful piece of Well, everything is useful, but it’s been one of the more challenging ones that is paid off for the past couple of years Yeah, I think and add something else to that I think another interesting and challenging problem our team us had is more on the customer end Like like you’ve seen in the last five years, we’ve scaled a ton, and as our community grows bigger and bigger, where super fortunate to get feedback from them But managing all that feedback is distantly become a challenge So for instance, one thing that we do Is on our GitHub repo We have a team member Jackson, who’s been working on GitHub,

but for instance to help us triage issues An feedback coming in We’re almost at We get hundreds of issues on GitHub a day, so sort of manage in that in helping us categorize them so we know what to tackle Has been a challenge to Alright, it is 1244 and some amount of seconds so I think we have to wrap up Thank you everybody for spending time with us Let us know how we did Obviously connect with this follows that code on Twitter One of the coolest handles that is out on Twitter issues at Microsoft github.com/microsoft code Download the tool and yeah, thank you so much I hope you enjoy built and I will see you soon bye Try thank you, thank you