Main

🔴 VS Code Livestream | Release Party v1.78 🎉| Pylance, Devcontainers, Drag and Drop, Copilot Chat

Live event and Q&A with the VS Code and Jupyter teams to discuss highlights from the April 2023, 1.78 release including Pylance, Devcontainers, Drag and Drop and Copilot Chat. Chapters: 00:00 Livestream begins 00:37 Welcome to the VS Code Release Party v1.78 01:58 VS Code Day On-demand 2023 https://aka.ms/VSCodeDay/OnDemand 03:03 Thank you to our contributors 04:36 New Feature: Drag and Drop 07:50 Copy Paste preview 09:23 New Feature: Fixing spelling errors in commit messages 11:35 Copy and paste - VS Code Insiders -Try and give us your feedback 13:17 New Feature: Pylance 17:42 New Feature: Devcontainers 19:04 Demo https://aka.ms/devcontainers/spec 28:11 New Feature: Copilot Chat https://aka.ms/vscode-chat-waitlist 50:23 Wrap Community links: Github Copilot Waitlist https://aka.ms/vscode-chat-waitlist Devcontainers/spec https://aka.ms/devcontainers/spec Devcontainers feedback https://github.com/devcontainers/spec/issues/236 Pylance Release https://aka.ms/pylancerelease VS Code Day OnDemand https://aka.ms/VSCodeDay/OnDemand Featuring: Olivia Guzzardo (@OliviaGuzzardo), Christof Marti (@christof_marti), Matt Bierner, Rob Lourens (@roblourens), Courtney Webster #copilotchat #code #pylance #devcontainers #dnd

Visual Studio Code

Streamed 10 months ago

[Music] thank you [Music] hello hello everyone welcome to release party Thursday I am so excited to have you here I love getting a chance to come on to these um and chat with some of the engineers and PMs so y'all can see and hear firsthand from the people who work on these features what's latest in the most recent vs code update um so Tech stick hello thanks for being here you got here early too love it um today we have a great lineup um if you all haven't already started checking out the most
recent vs code update it went live last week so hopefully you've had a chance to test out some of those features let me know in the chat what your favorite has been so far um and we've got a great lineup today before we kick off I do just want to do a couple of quick plugs um wherever you are watching the live stream from today so whether that's twitch or our YouTube channel definitely make sure to tune back in tomorrow at 11 A.M Pacific time because we will have the python pulse which is a mont
hly dream we do with Dawn wages she is absolutely amazing and she'll be talking about data Wrangler with Jeffrey Mew tomorrow Dawn's awesome if you all haven't checked that out yet already definitely tune in to tomorrow's live stream as well um Don is one of my favorite people we actually hosted vs code day together a couple weeks ago so one more plug I want to do if you all haven't already checked out our vs code date on demand content definitely make sure to do that we've got the link on the s
creen here and then also if you're on our YouTube channel there's actually just a playlist dedicated to it as well for vs code day 2023. it was so much fun I hope you all got to see it live but if not we have all the content on demand so you can be a part of the fun I know we've got a couple of oh these Computer World I always love seeing you here um we are so happy to be um to have you here I see a question about what is actually vs code made up of I think we can probably ask one of the enginee
rs that to talk a little bit about how vs code is made and yes the developers do use vs code to write vs code which is very meta um all right hello coder no nerd Hello yes always happy to be here I would not miss these release parties for the world it's always so fun Alessandro so good to see you here hello thank you for joining um okay I know y'all want to get to the meat of things but before we do that I want to go ahead and say thank you to our contributors all right so at the bottom of our r
elease notes if you all haven't already known we always include a section to thank our contributors because we truly mean it when we say we cannot do this without you we have an amazing team here at Engineers PMS everything but we also really rely on the community to to help with issue tracking and actually putting in contributions from the community um so I'm just going to do a quick scroll through of these if you're here thank you so much for everything that you have done to be a part of vs co
de um we really really appreciate it you can see there's quite a few people here so I'll just do a quick scroll through I wish I could call you out Name by name but unfortunately we can't do that we do not have the time for that so thank you there and you can always check these out at the end of every release notes to see those people all right so with that let's go ahead and head to our first guest Matt hey Matt hey how's it going going all right in a little early here but I was just saying tha
t I feel bad because these are always at 8am Pacific time and a lot of the engineering team is in Pacific time so it's always bright and early for y'all so thank you for being here and having your cup of coffee with us cool all right well what will you have to show us today so I'm going to be showing off two different features um one is about dragging and dropping and then one is about fixing spelling errors more easily for commit messages I see it all right so the first one here is um something
that you might want to do uh is create a image in a markdown file and you could go and type out the actual image syntax but for a while now you've been able to drag and drop content from vs code's File Explorer or from your normal desktop into vs codes editors to do this so here I'm just dragging the file from over here into my markdown file here and you can see it says hold shift to drop into editor hold down shift I get this nice little drag indicator and now I can drop the content so that fe
ature has existed for a while but in this most recent iteration we added this new option that lets you change how the content is actually dropped so after dropping the content you see this little widget showing up over here when I click on this you can see I can select how the content is going to be inserted so I know this is a little small but the first one says insert markdown image and then we have insert relative path so if I switch to that now it's just inserted a normal path instead of the
markdown image syntax we're getting before or I could insert the entire path the image as well so here's the full path to the image that's getting inserted so I can just switch between in these and this little icon will actually stay up until I actually start tipping or until I move the cursor somewhere else in the file so if I go back here and insert and then say go to relative path if I'm happy with this and I move the cursor somewhere else then that little drop indicator would go away now th
is is nice because these options are actually coming from extensions so out of the box vs code will include the options for inserting the markdown image that's coming from our built-in markdown extension and also have the option for inserting the relative paths if you're dragging dropping something that looks like a file but extensions can come along and contribute other options so if we go over to a notebook for instance now this is also something that's built in but it's just showing some of t
he options of how things can be inserted again I can just drag and drop the file here hold down shift and now I'm inserting this and in this case I could actually say instead of inserting a markdown image which is just creating a reference to that image I could actually insert it as an attachment and when I say insert as attachment it's going to copy the image data into the notebook itself so that if I went and shared that notebook with anybody it would also include that image data and now I hav
e copied the image data into the notebook here and anybody that receives the notebook would be able to also see the same image so I can okay so that's kind of like if you were like exporting the notebook and then sending it to someone then they would have that basically attached to it yeah and you wouldn't have to remember to also send the image along with it so instead of just sending your entire project directory you could just send the notebook file and everything would nicely start showing u
p in it as well and you can see that this insert is attachment option is an example of another type of drop option that could be created by extensions so we're really looking forward to seeing what extensions come up with here it's all something that they can easily contribute to you can imagine it for different programming languages maybe when you drag and drop something you insert a reference to that file in a syntax that's specific to that programming language so there's a lot of cool options
that we're looking forward to seeing what extensions do with this yeah absolutely I love that that's kind of there's a lot of other ways that drag and drop can be included with those contributions from the extensions um can you do drag and drop just with the keyboard it looked like you're kind of doing a lot of mouse action so drag and drop itself is a keyboard or a mouse kind of action but copy paste is basically the keyboard equivalent of drag and drop here so what I've done is I clicked on i
n the Explorer I actually went and said copy over here so I'll say copy get a copy of the image file and now to go and insert the image I can just paste and this is going to do basically the same as drag and drop this is something that is a little bit more experimental so it's not currently enabled by default in the normal vs code stable build but in insiders just pasting into a file here you can see that I got the same markdown image syntax and then I can also go to the drop selector over here
and actually switch between things the same way that I could for drag and drop so again this is a little preview of something that is not currently unstable but it is a showing off how you can do the exact same thing using only the keyboard awesome I love that someone said um I really need help with my spelling issues so thanks for that um so that way you can kind of just drag and drop make sure that the Link's not broken but I think even Matt a couple releases ago if you do kind of break the th
e link or have something it will kind of squiggle and tell you right yeah so if I went in here and said image slash cat uh I've turned on markdown validation in the settings and it's now telling me that this file doesn't exist so this does help you create the initial image but if you actually went and renamed things over here and broke some of your images uh you'd get this nice squiggle in your markdown telling you that that's awesome so handy to make sure yeah because I know I have that issue t
oo where I'll move things around and then all of a sudden I'm like what happened what broke and now you know right away from cool all right do you have anything else to show us today Matt yeah so the other one is just going to be a very quick demo here but how many times have you been writing commit messages and then you make some sort of embarrassing spelling mistake yes this is like a really common thing for me where I'll write the commit message in vs code and then I'll go up to GitHub and I'
ll be reviewing the pr uh creation on GitHub and it'll have like a bunch of underlines everywhere that I wish I had caught beforehand uh so now vs code actually supports fixing those spelling errors directly in the source control box here so I have some uh commits and in the source control I've typed out a commit message and you can see that we're getting this nice little squiggly here that's showing up and I could also just go in now and I can go over to Quick Fix and say what I actually want t
o fix here so in this case it's suggesting options for uh spelling fixes here so you can see this complete list of options here of ways that I could fix the spelling now the cool thing about this is that this is actually coming from extension so an extension is providing both the little underlying here and then also the Quick Fix options so in my case this is coming from the code spell checker extension but extensions could also provide other quick fixes or other Diagnostics inside of the source
control box so if you're referencing maybe an issue on GitHub that doesn't exist or if you're doing something else an extension could come along and provide help with those as well so this again is an area where we're looking forward to seeing what extensions actually end up doing with this spell checking is a great normal thing and if you install the code spell checker extension here you'll actually start getting these squiggles and quick fixes right away which I find super helpful yeah absolu
tely absolutely and I actually think it's funny that we just had that comment with someone being like I'm not good at spelling so I love that we have this for the drag and drop and then you go ahead and demo also the spell checker I feel like that was we didn't even plan that y'all um but yeah no I think that it's such a good call out too that we can have all these extensions that can contribute to this now we kind of have that base platform where extensions can plug into that and make those qui
ck actions um and really just you have that experience throughout the editor that's really what we're trying to have is always that unified experience that's awesome there's lots of lots of good um uh bad extensions a lifesaver for the uh code spell checker people are excited about we always love seeing the markdown updates as well um is there anything else that you want to show them that or talk about what's on the roadmap no as I mentioned um if you go to the current insiders you can start see
ing some of the behavior around copy and paste as well so um if you copy and paste files into markdown or other just normal files you'll start seeing that little drop widget or the the paste selector widget so if you're wanting to try that out give it a try we're looking for feedback because it's a little bit more experimental than the drag and drop stuff awesome I would always get to plug insiders um I think a lot of people don't realize that you can get access to a lot of these features early
on and play around with them and leave that feedback if you have insiders so definitely go ahead and download that if you all are interested in getting some of these features a little early and play around with them before they get into the stable release all right Matt thank you so much for coming on it's always a pleasure having you here I'm sure we will see you in many many future release parties as well thank you thanks all right with that let's go ahead and head to our next demo with Courtn
ey hey Courtney oh you're muted it always happens of course I know how are you today I'm good I'm good A little tired but it's good a good specific time too right so it's 8 am I know I know we really need to switch this up or something so it's not an awful time for people um well thanks for being here for us I know it's early and and this might be one of your first release parties I think that you've come on it is it's my first release party so it's my first time around the block we'll see how i
t goes awesome you're going to be great we're so excited to have you here and we always love having new faces on here too so people can see all right so with that let's go ahead and head into your demo and see what you have to show us yeah so I am from the python extension but I'll be demoing some new pylons features that the team released um these are experimental um settings here so I'm in a Django app and um this is specifically going to help when I'm navigating between module like strings in
between my Django apps so the first thing that you'll need to do these are both or this one is enabled by default so you need to go into your settings.json to turn it on um and you can just add it here um foreign no it's good I always love that it gives the intellisense when you're typing it because I'm always like okay I can't remember exactly what this is like I remember something like this and then you get the whole drop down right you get all of the um experimental settings in this drop dow
n so we're actually going to go to the go to definition and string literal one um and enable it here so enable to true well and then we'll save this file um and then for Django apps this is really helpful for example when you're going to your installed apps list and you want to see what this is referencing so you can highlight here right click and then do go to definition and it'll take you to the class where it's referencing this so easy navigation in between these um in between these modules a
nd then another example here if you're including the path it'll also go to the definition here so just enabling easy navigation for Django developers while up developers and just developers in general so um like I said this is a experimental setting currently it's enabled or it's disabled by default so you will need to go and enable it in your settings.json um and if there's any feedback please give it to the team in the future they're hoping to enable this by default so we're looking for any fe
edback that they have that our users have here here awesome I love when we get these experimental features on here because it really does go to show like how iterative this team works right we're always looking for this feedback and you mentioned that we can give feedback to the team if people have it um is there a certain repo that people can do that or is it on Twitter what's the best way to do that yeah so the best way would be to submit issue tickets to the pilots repo I can put it in the ch
at um just direct you there and then um we can interact with the team there um and then one other python related update that I will call out is we put our run commands in a sub menu so before um we had run python file in the terminal and then run selection line and python terminal as separate things in our context menu and now they're nested in this Sub menu so you'll see run python just like we see run an interactive window um with the two options nested in there so just to call out for when yo
u're looking for run commands yeah that's awesome thank you so much Courtney um for showing that and letting us know where we can do feedback um also just you know as a reminder y'all all of this is um in the release notes so if you know you kind of forget okay what was that setting called you can always check the documentation there um to do that and re-watch this live stream so you can see Courtney demo it herself um we have a couple of great things love these python updates um we've had you k
now a couple of these in the last few release parties and people always love seeing this so thank you for being on Courtney um and then another just plug for you um that they love that your name is Courtney Webster it's perfect for this job um in many more release parties I agree with that um is there anything else you want to talk about that's maybe on the roadmap for um python pylance anything like that um Thailand specifically they're just continuing to work in um improving the experience for
web developers so I'm doing a lot of look into Django and how they can improve the experience there so we'll probably be releasing more updates for Django developers shout out to all those out there um and then just constant updates and changes with the python extension so stay tuned I think we'll have some exciting releases upcoming awesome thanks so much Courtney for being on it was a pleasure and yes we will definitely be seeing more of you take care bye all right and with that let's go to o
ur next feature with Kristoff hey Kristoff how are you doing great thanks how about you for being here yeah it's not that early here anymore it's a little past five and yeah the exact opposite ends of the work date we have time at 8am and then you're in Zurich right so it's end of day for you yeah cool thank you for I guess um uh delaying dinner to be here with us thank you of course yeah it's a pleasure to be here yeah we always love having you um so what will you be showing us today so today I
want to talk about log files that we've added to death containers as an experimental feature so we can collect early feedback on it and now you you might already be familiar with um with Dev containers um at the like the core of Dev containers there's a configuration file the dev container Json in which you basically list the languages and tools you need for development and we then take that and build a Docker image from it from which we create the dev container that we connect this code to and
then you can you can develop uh insights inside inside that Dev container without having to install all the all the tools and and extensions previous code locally that can all be done inside the containers I wanna just quickly show you what that looks like and just using some uh project here to to show you this in the bottom left is the remote menu I'm just going to say okay reopen this folder in the container and the first time I do that when I don't have a Dev container Json I'm now asked to
pick a template for the dev container Json there are many templates uh to to pick from um for this um project I would just take the typescript template doing that here then not version 20 is fine and then finally we also asked for to select a set of features that we want to add on top of this of this template that we just picked and you can you can think of of features as kind of like each feature is like a little install script that adds some tool or maybe language support on on top of what you
already have in in the container I'll just picked the the GitHub kit CLI here each feature by the way is downloaded separately and and this other version separately and and we'll we'll get back to the versioning of features in a minute so I'll just go with that and because it defaults and now the the window reloads and um the docker image is built in the background the docker containers created and we will then um connected to that once once uh once that's done the The Reason by the way why thi
s list of features this so long is that this is this is open to uh contributions from the community and so the the list of features that are available is constantly growing um so here we are now you again see the same files basically as before but what's new is that we've added the the dev container Json from the template uh and you see that we're referencing but that's there's a lot of comments around this but the essence really is that there's the we have the reference the typescript uh base i
mage that we create the dev container from and we also list out all the features that we want to install in this case it's just the GitHub CLI and here you also see that we're referencing the major version one of the feature so that's the version of this feature script not not the version of the CLI that separate okay and what's uh so what's new now is that we do record the exact version that we used uh to install this feature um as part of a log file and uh there's actually a user setting that
you need to enabled in order to get the log file because it's still experimentally we uh will refine this further based on feedback and what you can see here now so the the actual version of the uh feature script that we were using or the feature that we were using it was one or 10. uh that's just the the latest version uh with major version one at the moment there's a URI that's like pointing at the exact artifact where we downloaded this feature which is in a container registry and there's a a
n account and checksum for a type security checking and recorded here as well and so to just mention uh the like the benefits of having a log file uh one maybe the one of the important benefits is that it's easier to Cache the the docker image the result from from building the docker image when you have when you have repeatable um image builds and then it's also important when you pre-build your image in CI for example you want to have reproducible um results so it's important to always get the
same kind of image in the end and for that we also um pin the pin the version basically of the feature that's gonna going to be used right and last but not least of course it's it's this Integrity check at the very end so we record the checks on here of the feature and we use that to make sure that uh also at the later point that the feature the features content that script hasn't been tampered with or changed in changed in any way so I can actually just to kind of demo that a little bit further
normally so tampering would mean that the the com the features content will change right but I can kind of simulate the effect of having that uh by by changing the checksum here and and if I now go and and and rebuild the container um based based on this log file we will see that this this will Now fail the error message still needs a little work here needs to be much more explicit but what I went wrong but um you get the idea that's that's kind of that's one of the attack vectors for example t
hat the log file will will uh protect you from I want to go back to one other thing that you mentioned um you said something about the the feature version is pinned um but what if someone wanted to um actually update that feature how does that work yes yeah that's a good question is it supposed a version uh 1011 was released and and you wanted to update to that now right now at the moment you the the way to do we're gonna have to update to that would be to delete the log file and then when you r
ebuild the container we will we would download latest uh versions and write the new log file with these latest versions but of course in the future we will also add UI commands to to kind of make this a a nicer experience gotcha gotcha she rebuild a lot about the first one update start that this is experimental um and needs to be turned on Via a setting can you show everyone what that setting is yes certainly so going to settings so you need the dev container extension installed for that right a
nd then once you have that you you just go search for log file and you'll find the dev containers experimental log files that thing that you can enable with the checkbox here in the user settings and with that we'll then start writing uh this Dev container log file okay cool and and then um I know we kind of mentioned in Courtney's demo where you can file feedback for experimental features where should people be filing feedback um for this log file experimental feature yes so I don't have the li
nk handy right now but there's uh we have on GitHub there's the dev container spec repo where where we collect our own proposals but also the the communities proposal for for uh updating the dev container specification and that's also there we uh we are working in the open on on this log file and the log file proposal awesome okay okay we'll make sure to get that link out to y'all if not if not chat then for sure in the way you all can try it out and then give your feedback awesome all right wel
l Kristoff we always love seeing these Dev containers um features uh someone said I honestly don't really know how to use deaf containers but these features look great coder nerd definitely check out Dev containers they are like when I tell you life changing they really are they make everything so handy so definitely check out the um documentation there get started let us know what you think of it um is there anything else you want to chat about that's maybe on the roadmap for def containers Kri
stoff so it will definitely continue work working on the on the log files and like in a kind of a similar vein we will also add a way for you to provide you uh secret values to when you um when you create a Dev container that's something that's also a security related and we'll we'll be adding soon awesome cool well thank you so much for being here um always a pleasure hearing the latest and greatest with Dev containers I'm sure we will have you back on in the future to hear even more great feat
ures take care happy to come back thank you thanks all right and with that that will head to our final feature with Rob hey Rob hello how you doing doing good how are you doing Olivia good thanks for being here I know it's early for you too or at least one at the end of the day um and I know you have a lot of really cool things to show um do you want to just let's probably just dive into it because I know people are very excited yeah yeah so I'm here to talk about co-pilot chat and just all the
ways that we've been working on integrating Ai and co-pilot into basically all parts of vs code um so I'll just get into it yeah so we basically got two main interfaces that we're working on for getting copilot chat into vs code um and first is the you know basically this chat view which is familiar with BB's chat gbt or anything like that where I can just have a conversation with my my AI copilot um so for example you know I might ask um you know what and before I start typing I will I will men
tion one thing you know these are if you've used any of these AI features uh chat you can see or anything else you know you know there's an element of Randomness here right so they make for interesting demos sometimes so you know all I can say is my demos worked yesterday um and if they don't work today you know this is all the stuff that's under very active development so uh you might just have to bear with me yeah I think it's fun to see right it shows kind of like like right this is the real
experience so I think it's good for people to see that and you know see that it is something that we're constantly iterating over um and you know it's it's learning exactly exactly okay so yeah like I said I can have a conversation about uh computer related programming related topics with copilot chat in the chat view so you know for example if I ask it uh what is a stack you know it knows that I'm asking about the data structure and not some other kind of stack of things um and while this is th
inking I know we've already gotten a lot of questions um about how people get access to copilot chat so maybe we just want to like do a quick call out for that because I know we will get a lot more questions so maybe just get that out of the way before yeah sure yeah I know everyone's really excited to use this and I love that we have a waitlist that you can join um and so we've got a link that we can throw up on the screen yeah there it is and so um yeah go ahead and go to that link and join th
e waitlist and we will get you uh access as soon as we can yeah we definitely we know that everyone wants access to it we are doing our best to make our way through that but we want to you know show in the meantime all the iterative work we're doing on this um to make it the best possible experience when you do get access yes yeah so I can you know in so in here I can I can ask about programming related topics you know as I'm working on my project and then some question comes to mind I don't hav
e to you know go to another window or or go to my my web browser or something like that I can sort of ask about these topics right in the same uh context where I'm already working on my code and I think that's nice um like this I I can't ask questions about things that are not programming related right because we're just trying to give you the best you know optimize for giving you the best answers that we can for computer related topics but I can't ask it you know if I ask about uh a cookie reci
pe then it's going to tell me that it can't help with that right because this is not a general purpose kind of AI we're sort of just focused on you know the best experience we can for this one use case um if I ask something else that um you know we'll ask it to produce some code um Panic ignorant code in line and we you know basically render this with a nice code block which is like a real um you know vs code monitor Monaco editor and um um I if I want to use this go to my project for example I
can use one of these buttons I can use this copy button and copy and paste it somewhere I can insert it at the current cursor location or you can even just say you know create a new file and insert this code into the file like that so that's kind of nice and you know if this was a terminal command I can even run it directly in the terminal like that um and uh you know if um if the the chat AI comes up with some some follow-up questions that thinks is relevant then it will also prompt me like tha
t I can just click this to continue my conversation um so then the other main interface we have for working with copilot chat is through a widget that is like in line in the editor itself um so over here I can just hit command I and it's going to pop up this widget and then I can use this when I want to sort of directly write code in my editor or even modify existing code right so just to give a simple example let's say I have this basic interface and I want to say um make this property optional
so it made the changes I was looking for it added a question mark here to make the email property optional and you can see there's there's kind of a green outline here um it might be a little tough to see but there's it's basically pointing this out is like a diff so it makes to make sure that I know what the change actually was and then I can either hit command enter or the check mark to accept that change and it'll be you know added to my code or I can just dismiss it or or um hit escape and
then it'll just clear that out um and that's the change I was looking for so I'll hit enter and take that um and I can also use it to um sort of write some new code from scratch so I could say for example how to function that tries to check whether some object is an instance of this interface I like that it says like generate a reply and change three lines to kind of summarize what it's done that's nice yeah exactly just another way to make sure you you kind of know this was changed and so I get
this another another diffuse that pops up and and show me it out of this function and if that's what I was looking for so I'll do that um and um just another example if I say this and again it did exactly what I was looking for and um but if I decided I want to take that then I can just hit um Escape here and um it sort of dismisses that change and then just goes back to the way the file was before um so I appreciate that I can sort of you know experiment with changes and see exactly what chang
ed but you know if the AI goes in and goes down the wrong direction and does the wrong thing then you know all I have to do is hit Escape um and I'm back to a good state yeah that's awesome I I kind of want to just like talk a little bit about these two experiences right the chat panel and then the inline um so it seems like the chat panels may be a little better if you want like more of those high level questions um and then does that actually look at your content your code contacts at all for
the chat panel too though yeah so right now the the jet panel primarily just knows about what your current selection is and uh maybe some other context about the code that's in your active editor and we're working on giving it uh much more context about what's going on in vs code right I mean really you know this is built into vs code it's built by the vs code team it should know um everything about about what you see in your vs good project and what you're doing right so um soon it'll be able t
o know um you know like what's going on in your terminal or like do you see an error in the debug console and it will be able to explain that to you um so that's that's something that we are actively working on is giving it more context about what you see in your editor gotcha so the the inline chat and the chat panel basically are using the same context they're both kind of looking at the Active editor um okay gotcha good to know yeah so another thing that I can show off is um you know I can go
from um this this chat widget again and you see it says type slash for topics so we have a bunch of extra features that we call slash commands um where for example I can say slash explain and this is just going to generate an explanation of this code and and also when I'm in this like inline chat experience if I end up asking a question which doesn't Just Produce code but like um produces you know some some freeform text then it's actually going to go into the chat view because it's sort of a b
etter place to uh to read that explain um it's going to to generate an explanation and I'm just giving it that looks like an accurate explanation so that's nice um I can also uh there's another slash commands in here I can do something like slash test where it will actually generate unit tests for the code that I've selected oh yes I I hate writing unit tests to get the AI to think through some of the cases for me um and so it's um what it's actually doing here is it's generating some code and t
he AI has decided that it should actually go into a different file so you can see it's um it's saying this is the content of demo.test.ts um I've got a bunch of test cases here and if I go ahead and accept this then it's going to add this new file I don't actually have you know a unit test framework set up in this repo so it has errors um but that's okay it's there's still good test cases um well I think that that's a good like kind of plug right A lot of people kind of get like nervous about co
upon so like oh it's going to do my entire job for me but no like really it's just a copilot right you're still kind of in control so it can generate those you know test cases but you still need a look make sure it's what you want to test make sure you have the framework set up all that good stuff so you are still in control copilot is there to kind of help and be like hey these are good tests based off what you've just shown me exactly exactly okay um we have a couple just quick questions um Ah
mad asks um Can Copa document my code blocks I hope it can because I think a lot of us don't like documentation yeah exactly um you can use it to add comments also I I think we did we have a slash community that does that I don't know if we do that right now but um if I say um yeah it added it to um to my interface and also to this function and um yeah this is simple code but that looks like uh it's all accurate to me so uh it's very nice and I I don't know if you know the answer to this um beca
use this is probably based on the underlying model um but someone asked it's a copilot biased towards or better at certain languages due to the training data set it's uh trained on yeah um I don't know if I can really speak to that um I I would imagine that some languages are better represented than others in in the training set um but yeah I'm not really sure yeah it's definitely there's so much going on in the underlying uh model so definitely uh whoever asked that question sorry I just lost y
ou um but definitely do some research let us know um but I'm sure there's a lot of you know good documentation on the GitHub copilot dots um to kind of see how it's being trained and things like that and then also try it out let us know yeah so then these slash commands that I was demoline we also have them um over in the chatnew and and also just say a word about this last commands like I um I think what we're going for here is they basically just give you the ability to be very specific um and
succinct about what you want to do right you can you know instead of having to write out hey please write some unit tests for this code right being able to just say slash uh Slash tests um it's a lot faster and kind of gives you you know the ability to just be very very direct and clear about what your intent is here um we also in the chat view I want to show off we have the slash command slash vs code I had to zoom in a bunch and so things are getting shifted around a little bit but anyway if
I say slash vs code um this lets me ask questions about an es code and it knows about vs code settings and it knows about commands and things like that and so for example if I say format file you know let's say I'm new to vs code and I'm you know I haven't uh haven't done this before and I'm not sure where to go um then it's going to point out that we have this command format document and here's the keyboard shortcut so that's nice you know so then I can try that out and say oh yeah that that wo
rks um or if I like is this like a game changer for like if I mean honestly even like one if you're new to vs code right um but even like I know I'll be in vs code I use it all the time and I'll be like oh my gosh I know there's a setting for this but I can't really remember and or like I can't remember what the key binding is for this or something like that like normally I would go and search that on the internet and be like what's the key binding for this what's this but now it's all just with
in your editor like you don't have to change that context at all which I think is just so powerful yeah exactly I I can also uh use it if I want to you know let's say change something about the UI in vs code and I can say hi big status bar you know all this all this stuff is getting in our way and um so we've got this command toggle satisfied visibility and um I also get this button or I can click this to run the command and yep toggle status bar visibility is there and so I can run that and um
yeah that's that's really easy [Music] um or or the setting effect like this it'll open the settings editor and it's something that's similar to that is we're also working on adding um this kind of search to the the command palette itself right so if I you know like normally by default you know we're only doing sort of a literal search based on the exact names and commands right if I don't quite know which word to use or or maybe I have a typo or I you know you describe it in slightly different
words then it's hard to find the command sometimes um I can even do sort of a natural language searching here and say if I say how to turn on autotave oh my gosh that's amazing yeah so it knows that uh this is what I'm looking for and I can then just run this command oh that's I feel like that's like a game changer yeah yeah I know it's like something like this but I can't remember the exact thing and then that will go ahead and bring it up oh my gosh that's amazing exactly or maybe I you know m
aybe I know the words but I like get them in the wrong order right and so that can be a little frustrating sometimes Ahmad said now that's what I was looking for schema mod that is so handy yes and I know this last command that I like to show is that if you are working on developing a vs code extension we also have the slash command slash EXT and this knows about all of our extension apis and the docs that we have for developing extensions Um this can make it easy for me to look up how to use a
vs code API and so if I say slash X like ad status bar item and it's going to generate some code which can go into my vs code extension that shows me how to use the create status bar item API and um you know how to use that to make a status bar item show up and uh following all the best practices and um yeah that can be super helpful as an extension developer another example if I say is um yeah then I just got this example using the find files API correctly so um yeah just another example of how
uh I'm not sure whether I can do something or how to do something um we can uh help you out there yeah and there we got a couple of comments real quick um so it's wow so it's truly integrated throughout the whole program rather than just having use for helping with code impressive um yeah I think that you know rob you can even speak to this too but um we have a section of the release notes um ever since copilot chat's been announced and every single release there's always new to show that we ar
e really trying to make that integrated as possible and put in as many places as possible to make your life as simple as possible exactly yeah we were trying to uh uh so to really bring it to where you are and another example of that is um that we're actually um looking at how if you have an error in your code we can just you know have a copilot pop up right where that error is and help you fix that area oh that's so so here's an example of some code which has some error and error and this is th
is is the sort of mistake that I make pretty often right I have a map of strings to numbers and I want to sort of iterate over all of the values in this map and I write out some code like this and I think that should work and and then it doesn't um so right now with these copilot features enabled when I click on the error I get the code action Quick Fix light bulb here and so I can either um just fix it immediately in place using copilot or I can have copilot explain that error to me um so first
I just want to explain it because I don't quite understand what that error means [Music] the value of the message from that error um and it's going to give me a good explanation of um you know okay this is the map then here's what's going on here's what the values method does um you know the the values method does not have before each method on it because it is not a um it's not an array and then it's going to give me a suggestion of um you know some code that I can I can use to uh to fix that
error but I can also just go to the light bulb and you know say fix in line and it's going to use that inline chat widget yeah we'll do this with the same thing and I can just boom accept that and um now we're good oh that's awesome um okay a couple other comments we have first of all I've I I am reading all the comments I know everyone wants to get off the chat waitlist and you're looking for um a specific time frame for when you might do that fortunately we can't give you that specific time fr
ame just know that we are doing our best to get out there and in the meantime working on as many improvements and iterations on uh the experience as possible so that when you get it is good so I promise I'm seeing you I'm not ignoring you we just don't have a definitive you know it's going to be x amount of weeks months whatever um so I don't want to tell you something and then you know it's not true so I see that happening but we do have um the link posted in the chat for if you want to join th
e waitlist um and then let's see there's one other there's a couple questions again um Robbie spoke about this a little bit before but maybe just reiterate um doesn't know your entire folder project um what's it looking at for your contacts and what's the plan for what that context will be yeah so co-pilot Chad uh really only at the moment has context about your current selection and the the current file that you're working in um but we are actively working on giving it more context about you kn
ow things you see in vs code about your debug console at a bunch of problems you see um and also about the rest of your um the the workspace that you have right other files that you have um even if they aren't open and you know you should be able to sort of ask questions about that um um about your about your workspace and have a copilot know exactly what you're talking about absolutely um and then hey Doug um so Doug says in our Deep dive on this in the future would be great I do think we're ac
tually planning um on having Burke come on in June to do one of those a whole Deep dive um so stay tuned for that and for that announcement um but we will have that we'll have even more to show you by then yeah absolutely there's gonna be so much I feel like honestly we'll probably have like a spotlight of this for like every release party because there's so much going on and then like a whole Deep dive people are so excited about this um and you know it really is just Cutting Edge right and I t
hink that that's goes to show right this is why we are kind of trying to like slowly roll this out to people the wait list um because it is there's so much changing right Rob that's just and there's so much work being done um it's moving so quickly so we just want to make sure it gets that that good point before we unleash it unleash it to the masses awesome okay all right is there anything else you want to show um that co-pilot chat can do Rob or just talk about other things you're working on u
m yeah that's that's about all I have right now awesome okay and then um okay there were a couple questions we'll kind of end on this um is there a knowledge cut off like chat GPT has I don't know if you know the answer to this um but someone else asked a similar thing if you know in the future it looks like your entire project um is that is there going to be some sort of knowledge cut off with limits um yeah I mean we once um we wanted to essentially know as much as it can about um you know the
context of your workspace in the context of your window um if you mean a knowledge cut off in the sense of like the date the information that the underlying model was trained on you know we're using you know essentially one of the open AI models and you know they were if they have a cutoff of um stuff that was on the internet in 2021 or whenever that was it's going to be the same date um for what you see here is probably for what you see in chai GPT right I think that's a great call out that we
are kind of building on top of that model so you know that that's what the underlying technology is underneath there so that's whatever you know that model is that's going to be kind of the source of Truth there um awesome well thank you so much Rob um people are always so excited to see this thank you so much for all your hard work on this um and I am absolutely sure we will have you on in the future to see even more of what's going on with copilot chat great thanks for having me take care all
right y'all thank you so much for another amazing release party thank you for all of our presenters today we had a lot of great features shown um before we leave just want to do a couple plugs make sure that you are subscribed to our YouTube channel one so that you can watch the replay of this uh live stream so that way you can relive all of the greatness um you can also then see all of our long form videos I mentioned earlier we have vs code day on demand content that is available on a playlis
t on our Channel um so lots of great stuff on our YouTube channel we also post shorts and we cross post those shorts onto our Tick Tock Channel um so if you're ever interested in kind of seeing extensions of the week different tips and tricks definitely check out both YouTube and our Tick Tock channel so you can stay up to date um as always I am so grateful that I get to be here with you all to host these release parties we will be on next week for another live stream and next month for another
release party thank you so much for watching thank you for using vs code and making it great have a good one thank you

Comments