 On today's Visual Studio Toolbox, Justin Clairbird is going to show us some really cool extensions that you are going to want. Hi, welcome to Visual Studio Toolbox. I'm your host, Robert Green, and joining me today is Justin Clairbird. Hey, Justin. Hi, Robert. Welcome back on the show. Thanks for having me on. It's good to be back here again. Justin's been on the show several times showing extensions, and I think the last time you were here, you showed the productivity power tools. That's right, yes. And today, you're going to show some extensions that you wrote. Yeah, thanks. In the past, I've shown off some of the stuff that Microsoft have put out, and productivity power tools were supported by us, as well as some stuff we've done in the extensibility team. But on the side, I've been developing my own extensions, things that I wanted built into the product. So, and over the last year or so, I've built a bunch of extensions. And today, I'm delighted to come on and show you and the audience some of these extensions and what they can do. And I've been saying for the past many years that productivity power tools are my favorite extension, but you're going to show us an extension that's going to supplant that as my new favorite. I hope so. I've got quite a lot here, and maybe there's some extensions in here that you're going to like even more than the ones you've seen before. Cool. So, here we have on the Marketplace. I'll just show you right now. If you go to the Marketplace, Visual Studio Marketplace, you can search for extensions by me or search for any general extensions. These are the ones that I've published recently. You can see there's hot commands, hot source, hot tips, hot settings. These are my hot extensions. Yes. I'm going to go through many of these today. And I'm going to start by reviewing hot commands. Hot commands is an extension that delivers shortcuts and commands to the editor. That lets you... A short cut to toggle comments. I love it already. There's a lot of shortcuts that people want to use inside their editor, and we haven't delivered them all in Visual Studio yet. So, this extension delivers a few of them, including toggle comment, duplicate selection, go to last edit location, join lines, format code, increase selection and decrease selection. These are all very powerful. So, let's go and jump right in, and I'll show you how they all work. I'll even use the source code for hot commands to demonstrate because it's a reasonable source code base. Oh, now, what's happened here is a tip of the day. It's a tip of the day. Did you know you can press Shift-Alt-Plus to expand selection and Shift-Alt-Minus to contract selection? This is one of my other extensions I was planning on showing later, but it's popped up now, because on solution load, while you're busy waiting for your solution to load, you can read a tip. And if you like the tip, you can click Next Tip and see another tip, that Control-Shift-L will delete a line. Did you know that? No. Whereas Control-L will delete a line, but it puts it in your copy. I know these tips from the extensions you created or are these tips in the product itself? This tip of the day is part of the Hot Tips tip extension that I wrote, and I have provided the tips for this. And over time, we'll be adding more and more tips so you can learn more useful things about the product that you might not have already known. Sweet. So I'll close out of this now. Here, here I am in my code base. I'm looking at a method here. Let's see, I'm gonna demonstrate toggle comment. If you want to comment out some lines of code, let's say I wanna take out this block here. In fact, let's say I wanna take out this whole block here. In the old days, you can press Home and you can press Shift-Down. You can select the block and then remember one of two shortcuts, Control-K-C for comment or Control-K-U for uncomment. Or if you don't memorize keyboard shortcuts, you can just go look for the icons. That is very handy. If you like to use a mouse and wanna fiddle around with tiny little buttons, you can go up there. Sure. But I find it much more useful to hit a single keystroke, which is the toggle comment, actually, so that you can see my keystrokes. I'm gonna turn on the Khanak keystroke viewer. So you'll be able to see which keys I'm using as I press them. So if that's working, let's see if this works. I'm gonna press Control-Slash and that's the universal key for comment and it comments the whole lot. And when I press Control-Slash again, it uncomments it. Love it. Handy. Also, if I don't know which lines I wanna comment and which ones I don't want, it has a feature where on a single line, if you press comment, it will move down a line. So I can comment out that line. I'm now on the next line and I can repeatedly comment. And that has the advantage or disadvantage of toggling anything that was previously commented. Handy if you want to. That's the way it works. So I'm gonna show you the next feature and how it combines. Let's say I wanna take this lot of text, I wanna duplicate that. Control-D duplicates that text without mucking with my copy paste buffer. And then if I have this lot, comment those two out and I start working with these ones. And when I'm finished with those, I can uncomment and re-comment those two. So it's a lot easier to work with a toggle comment feature. Now we've worked straight into the next feature which is the duplicate code or duplicate selection. Now on control-D, I'm gonna clear these lines which as we learned from tip of the day is control-shift-L, delete those lines. So that's a delete line key in Visual Studio. But let's say, what was I gonna demonstrate? Duplicate code. I'm gonna change this method here slightly. So let me ask you a question first. That, what is that? Oh, right. That's the screwdriver. This is a new feature. It's in the Visual Studio? Yes, in Visual Studio. What it indicates is it's like a light bulb. Typically light bulbs show things that we recommend you do. In this case, it's just showing that there are tools available, something you can do. Let's press Alt-Enter and we'll find out what those tools are. So change signature. In this case, it's giving me an easy access to the change signature dialogue. Which also I could get by clicking on with the mouse or using the dropdown to see what other things are available. And that's, that was added. I'm not sure whether that came out in Visual Studio 15.7 or 15.8. I'm currently running the 15.8 preview. Okay. And we've got that running there at the moment. Cool. Meanwhile, let's look at duplicate code. I wanna take this code block and change it. So I'll press Select it, Control-D for duplicate. And now I can do all sorts of things with it. Firstly, I can comment it out with the keyboard shortcut that we had before. Or I can start changing the method parameters, give it a different name, call it InitializeTo, and away I go. So duplicate code is handy to duplicate a whole block. And you can do it multiple times, especially handy if you've got dealing with data. It comes in really handy. Let me just show you and the users where it's really handy. Let's say you're dealing with a VST file, a properties file. I wanna bring in a new property and I'll give it a GUID. And let's say I've got a magic GUID here, Command, Duplicate Selection. Now, if I wanna use that thing that I've just copied, I've just copied that into my paste buffer. And now I need to make a new command placement. I don't wanna have to say copy, paste to duplicate this or else I'll lose what's in my buffer. So I duplicate code like that, then I just paste. And that's the beauty of that. And I'll have to do that in my symbols, my other places all throughout this file. So it's nice not to have to lose what was in my paste buffer. Meanwhile, switching back. Duplicate code also works. Have you been asked for a duplicate buffer? So you can have multiple things in the duplicate buffer or is there only one? Well, there's multiple things in a copy, paste buffer. And just in case the users aren't aware, if I did want to copy many things, I could copy this and then later copy this. If I wanted to paste them both down here, I can press Ctrl Shift V instead of Ctrl V and it cycles through all the items that I've previously pasted. But the duplicates purpose is simply to duplicate whatever is selected. Or if nothing is selected, we'll duplicate the line. And that's quite handy. So that's duplicate code. Now duplicate code did get built in to Visual Studio in 15.7. So users of 15.7 can use that today. But if users are on older versions or they're using Visual Studio 2015, they can use hot commands to get duplicate code available to them. But yes, we're starting to build these things in the product, which is good. Another feature we've built into the product that is also in hot commands is expand selection. The idea of expand selection is it helps you increasingly select blocks of code. For instance, if I wanna take this piece of text, get the string or even the whole line, I can press, now what is the magic keys on this one? In the product, it's Alt Shift Plus. And I can repeatedly press Alt Shift Plus to get larger and larger blocks and Alt Shift Minus to decrease those blocks. As I increase the selection, it goes up to the next block. And that's built into the product. Yeah. We need to do a show on these types of things. We're going to do a tips and tricks show. Right. So that's, and again, this is in the product now. That one came into Visual Studio in 15.6. Okay. So people can use that on Alt Shift Plus. In hot commands, the shortcut that I created for it because there were no good shortcuts was Ctrl Shift Square Bracket, Square Bracket, which is horrible. But I'll demonstrate. It's like running with your fingers. I think it's one, two, expand with left bracket, right bracket, and then to decrease, left bracket, left bracket, left bracket. So that's how we use expand selection. Very useful if you want to take a piece of text. I want this line, grab the line. Where am I? I took a while and then I can duplicate that across to itself. Let's see what other features there are. We've got, I'm going to hold off go to last data location because it's so cool it deserves the last one. Join lines, increase selection. Oh, okay. Let's move members up and down. If I want to take my cursor to the top of the page, I'm using my keyboard, I can press Ctrl Alt Up and it's now selected this line here. If I press Ctrl Alt Up again, oops, I've jumped to the next. It's difficult to see where my carrot is. I wonder if I can select it. It moves, you can see my current line jumps members. And if I want to jump up, up, up and keep going up and up through all the different members and then it rotates to the last member in the file. This is particularly useful if you're actually in the middle or bottom of a member of a class and you want to edit the signature, you press Ctrl Alt Up and then you're on the signature line. But now we've also combined with this. Oh, I should mention that feature has always been in Visual Studio and it's on the edit menu, next method and previous method. But there are no shortcuts mapped to it by default. So if you simply map shortcuts, Ctrl Alt Down arrow and up arrow, you get that. We built our own into hot commands as well, which is slightly different in that it will go to the class and namespace. For those who want to know about mapping shortcuts and we'll get into this a bit later, but under tools, options, keyboards, you can put in a command that you need like edit.next method and then you can map a shortcut to it here, Ctrl Alt Down and then press it once and then you can hit the assign button. We'll be looking into those keyboard shortcuts a bit more later, but now let me show you the power of move method. So here's what I'll often do. Here's a fun flow that'll include them all. I'm going to start off here and I want to increase selection on this. So I'll get this whole method. Now I want to duplicate that method. We have a strange behavior where it doesn't take the whole line. Now from here, I want to rename the method, new method, and then I want to move it to the bottom of the file. So this move member is Ctrl Alt Shift, down, down, down, down, down, down, and I just move this member all the way to the bottom or up a bit, down a bit, wherever I like, and I can move the members up and down through the file to reorder them. So it comes in a lot easier than having to select the whole thing, cut the method, take it out, put it back in. You get errors as soon as you take it out this way. We do because you let go of the mouse button before you're where you need to be or you wind up pasting it in the middle of a line of code. Exactly. Then you have to undo. So that's the move member. And we might be building move member into Visual Studio. Many of these features, the team are looking to implement over time. Let's see, format code. Well, that's a simple one. If you have a selection of lines and they're badly formatted, whatever you've selected will become formatted. What's the shortcut for it? Format code, shortcut is control alt F. That sounds sensible. There, format. However, if you have nothing selected, control alt F will format the whole document. So it's a switch. Whereas currently today, we have two separate commands. Control K, control F. It's one of the few that I've memorized. Control K, F will do the selection and control K, D will do the document. Whereas this single command will do selection. If you have a selection, document, elsewise. Nice. If you wanna bring some text together, let's say I had this split up over multiple lines and I've decided I want them all in one line. Join lines, control shift J, just brings all the lines up together. And if you're trying to concatenate a whole lot of things, you can repeatedly call that and get your whole function up on one line. But we don't wanna do that. That's a bit ugly. So instead we'll do format document and get all that back again. Yep, I made a mess of my file here. Now, what other features are in hot commands? Move member up, decrease, increase selection, join lines. Okay, now finally I can show you go to last edit location. This is super handy. Let's say I'm working around in here and I'm trying to work out what sort of command ID I'm gonna need in here. I don't know what you want it is. So I start navigating around. I'll go to the top of the page. I don't see anything up here I want. So I go to over this file here and I'm looking for the symbols. I found some commands here. Yeah, that's what I want. And I'll use expand selection to, oops, went too far, expand selection to capture that whole thing. And now I'll copy that. Now where was I? Which file was I? What file were you in? Now I can press back, back, back, back, back. Was it seven times? Six times? When do I stop? I'm not sure. But with a single keystroke, control shift backspace puts me exactly where I was. And now expand selection on that one. And I'm straight away I've got what I need. Oops, I hit the minus and now I can paste that value in there. Nice. Go to last edit location. I really love that feature and we might be bringing that one in the product soon too. It's even handy if you just go to the top of the page you just want to go straight back where you are. Control shift backspace and it will put it back in the page. So those are all the features in hot commands. And does that have a, will that keep track of multiple places you've been or just the very last one? I have it working just on one. Okay. It's so complicated to try to get it captured multiple. You can close files. Things might not exist anymore. I'll give you one. It's handy. I'll take it. Yeah, it's better than nothing. Okay, now let's have a look at the next extension. Hot settings. Hot settings brings the ability to control many settings that are otherwise hidden in Visual Studio. Let's talk about some of them. These line numbers here, these margins. Sometimes people don't want to see the line numbers. Pop quiz, do you know how to turn them off? Yeah, I go to quick launch. Good, good. I'm gonna type line numbers. Line numbers. All right. And now, now which one did it? Line them off. Line them off. Very handy. Now that took a little while, but really what I wanna do is just right click there and say line numbers off. Ooh, better. How's that? So what I've built is a context menu that's in place, where you want, what you want. So I can even turn off the break point margin. So I don't see my break points anymore. The selection margin, it gets rid of all my yellow stuff. I'm running git diff margin, which is showing me the blue and green. I will turn those back on again and then show you that if you want to, you can clear them all with one go using the hide editor margins. And you gain a bit more space that way in your editor and then you can restore those hidden margins back again. I've added, oh, what else? Is the outlining showing up in there? No, over here, we can right click and hit the view menu. This is a new view menu. I'm not running the latest version. It's missing some commands. But I'll show you what it's got. View full screen, that's kind of handy. It just exposes that command, which is otherwise available on Alt Shift Enter. For users who want to activate a right click with the keyboard, by the way, it's Shift F10. So when I press Shift F10, and then you can look at the little underlined letters like that V there, and I can press V to get the view menu. Cool. Let's see, auto hide all will hide all windows. View white space is nice because that one's hard to find. Yes, it is, that's right. Also, word wrap is exposed here so we can hide the navigation bar. Turn that one off. Most people don't know where that is. Or even this code lens stuff. If you want to hide code lens, view, then what we should do is get the latest version of the extension. Let's have a look. So here's how we acquire the extensions, by the way. This is good. If you want to get one of these extensions, like hot settings, there are tools, extensions, and updates. Now, what version are we running here? 1.2.0. We'll switch over to the marketplace. See what version they've got over here. Oh, looks like I might need to upload a more recent version. Well, we'll come back to that, technical challenges. But I'll keep showing off the features. So there are a bunch of things you can turn on and off. Structure guidelines. It's very hard to see, I'm not sure if you can make out the lines here. If you don't like them, you can turn them off. So this really helps you clear all the visual elements on the screen. The white space is very noisy. So what else is there? Hide, editor distractions, we'll get rid of them all. Okay. Hide-at-a-margence does what we spoke about before. Are the glyphs here? Are those considered? Which, where? Hide that, under the... Restore the margins. Under the bar. Right, yes. Smudge or whatever. There's a few things I haven't yet to build into it. I have a work list. I've built many of the features, but I'm also hoping to expose those ones you spoke about. There's automatic delimiter highlighting. Where are we? IntelliSense squiggles. So that's what we're talking about. Squiggles, okay. The ones that are just letting you know you could do something different. You might want to be able to hide. You might. And highlight references to symbols under curses. There's still a few distractions, like how these have gone gray. We're going to build some more things into it, but for now, at least it does give you many of the things that are otherwise hard to find. Wordwrap. Does anybody know where Wordwrap is? Or View White Space? And by the way, if you are interested, they are under Edit Advanced over here. Yes. Many other things. Oh, let's talk about this. There's one called Track Active Items. It's, what it, and I built a button for it. Let's jump straight into it. It's not there. I must have the old version of the extension. I'm not sure what's going on. So, I'm going to spin up the working copy of Hot Settings. And I guess I'll need to keep it updated on the marketplace. But I'll spin up a debug version so we can see the real stuff that does work. No tips to show. Start again. All right. If you see all your tips, you get to see the tips all over again, which is nice. Loading, and there's a Control-T will open the Go To All search box. All right, so Hot Settings here. I'm going to spin up a debug instance of this. No, I'm in the middle of doing work. I'll have to abandon that. All right, that's fine. By the time, it should be up by the time this goes live. Yeah, what I will show is there's a button here that's on the Solution Explorer that when pressed will keep, will track active items in the solution. There's an option under the project for track active item in solution. And when this is checked, what it means is that as I move to a different file, the Solution Explorer tracks which file I'm on. So I've built a button that sits up in the Solution Explorer toolbar that when pressed will give you that feature, which is nice. And also, finally, my favorite part of it all is if you're interested in what this squiggle does, you can look down on the bottom at the status bar and it'll tell you what area you've got. Now, what area have we got? I'll press Control Shift F12 to go to the next error. This one says argument two cannot convert from it to something. Nice. Isn't that handy? That is nice. Alternatively, the only other ways to see that information is to hover your mouse over, which is great if you're like moving your mouse and waiting in a fraction. Or you can press Control K I, which gives you information. But it's nice that every time you hit a squiggle, you can just throw your eyes to the bottom of the status bar and see that. So as we jump from error, I don't have many errors in this file so it's hard to bring that up. I wonder if I was to cause something. Can I have a private class? Will that cause more errors? It did. So let's see, what errors? If we click on here, elements defined in namespace cannot be explicitly declared and that's shown right down there on the status bar. Nice. With this feature, I'm gonna stop and talk about it. It's hard to describe how useful it is to have that information available just with a glance of your eyes at the bottom of the bar. So I encourage people to try that one out. Even if there are mouse ways of doing things and there's also the error list way of getting things open. There's no doubt that if you can master the keyboard short cause you can save massive amounts of time if you just add it up over and over and over again. Well that's a good point. It's like run to cursor, right? You look at that and you say, oh well that saves me a second. But if you save a second 10,000 times, it keeps saving an awful lot of time. That's true. But in this one it doesn't even require a keyboard shortcut. So that's what I like it. It's right there and available too. So that's hot settings. Speaking of keyboard shortcuts, wait actually, we're gonna get to some of those soon. But now I'm gonna talk to you about controlling the IDE. I wanna open and close various windows. Let's say I wanna get that error list open. I actually struggled before. I pressed control alt E and I got the exception list instead. Where am I? It can be tricky to know where all the windows are, how to open them, how to close them and particularly to do it with the keyboard. So I've built an extension called hot windows and I'll bring to it now. Hot windows gives you a whole bunch of features that let you open and close windows, find windows that were really recently open and keyboard shortcuts for interacting with them. So I'll get in and demonstrate how we use them now. Let's see. First, I've introduced a status bar button down here. It says find your recent tool windows layouts, et cetera. And when we click this button, we get this list of window management commands. Up the top is the full screen so that you can find and activate your full screen menu. And I'll shift enter, gets us out of that. Control slash W opens this menu. Here you can save your window layout and apply different layouts. Like if I wanna jump to my laptop layout which I think has Team Explorer on the right, there it is, Team Explorer is over the right. Now, what else? There's recent windows, there's popular windows, so solution explorer, output, error list and I'm gonna be adding some other popular windows to this. And this is your recent windows. If there's a window you've been in and it's not there, really useful if you have, let's say, closed Team Explorer by accident and don't know how to get it back again. I'm not even sure. I think it's under view, there it is. You can find it under view Team Explorer but it's nice to know that it will now be in the recent windows list under Team Explorer there. Now it's opened up and it's opened up in auto hide mode which means that if I click over here, I lose it. And I want it to stay open. I can press slash M to open Team Explorer but the minute I press escape or move on, I lose it. I want that window to stay open. What you gotta do is you gotta press this tiny little pin button here. And not this one, that'll close everything and not this one, that'll do something different. Alternatively, you can choose window dock. So I've bound a shortcut to window dock which is control insert. Takes over the old MS-DOS copy key or paste key. But in this one, if I press control insert, it will dock that window. So now I can continue working in that window stays docked. I've also bound a command to hide the most recent windows. So I'm working here and all of a sudden, I don't want that window. I want the space back. Today, you'd have to navigate to that window and then carefully pick which button you want. I find that annoying. I'm working here. I just wanna press a keystroke. So I've bound shift insert to hide the most recent window. And shift insert will hide the next most recent window. Yeah, nice. And then I can toggle them back again. Alt F6 brings back the most recent window and you can cycle through Alt F6 to get your windows. And then control insert, open up my solution explorer, control insert, and now they're docked again. But also, wait, let's see. If I've got my output window, and again, I'm gonna dock that. I might wanna work like this, but I just quickly wanna hide all my windows. There is a command I've put together. It's called minimize all windows and alt shift insert. Gets rid of them all. Alt shift insert, bring them all back again. So I can just quickly gain access to all my space. If I was in the output window, I can close that. Oh, we've got more windows showing up there. No matter where we are, toggle windows, open and close. Very nice. It's kind of neat. I find that handy. What else? Oh, one of my favorites. Let's see, output window, let's hide that one. When you've got windows that are hidden, you notice that they take up room in the bars there. I don't like to waste space on my laptop because I don't have many pixels available. So we've introduced the, I'm gonna show you the official inbuilt version. Where is it? Show sidebar tabs. Or if I open alt W, you'll see there's a B there. Show sidebar tabs. When I press that, they hide. They go away. Alt WB, they come back again. Isn't that nice? Now that's available in 15.8 preview two, which I'm lucky enough to be using today. And it'll be coming out in a couple of months, but until then I built a command into my extension, which is the show hide tool window gutters, which does the same thing. But when the version comes out officially, people will be able to take advantage of that. So where were we? That was hot windows. So we can dock windows, hide windows, hide all toggle. Oh, and of course reopen. Let's say I had solution explorer docked and then I close it with shift escape. And this happens a lot. And you wanna get back the most recent window. In a web browser, you'd press control shift T. So I've replicated that functionality. When I press control shift T, it brings back the window you close. So now knowing that I can easily close my windows, work away when I want my window open, control shift T, get back to work. And off we go. So that's our hot windows extension. And it has no ratings and 32 instills. It's so fresh, it's so new. Brand new. The paint on the icon is still drying. Ha ha ha ha ha. Oh, right, let's talk. Now we've spoken a bit about keyboard shortcuts. So let's talk more about managing your keyboard shortcuts. It can be challenging today. I want the extension that helps me remember how these keyboard shortcuts. Oh geez, practice makes perfect. In tools options, the keyboard shortcuts are available. Where are we? It's not under project, it's under environment. Keyboard. Okay, okay, for keyboard. And here you can choose various mapping schemes, like the C++ mapping scheme or the C sharp mapping scheme. And you can also look for and apply different shortcuts like window.doc is the one we worked on before, we had control insert. And you can put different shortcuts here and assign shortcuts that way. It can be a bit fiddly to import and export settings. If you want to import and export keyboard shortcuts, there's tools, import and export settings. And you can export the settings, you can import the settings. And if you ever do want to export keyboard settings, you just need to unclear all these, uncheck those boxes and expand the yellows until you find keyboard, export that. A little bit painful. I've tried to make that easy. If you've found some shortcuts and you want to save them, I've introduced this keyboard shortcuts menu on the tools menu that lets you save your current shortcuts. And if you do that, pops up, what do you want to call it? And you give it a name. Let's see, my demo shortcuts. And now those keyboard shortcuts have been saved to this file. So I can now- That will roam? Well, that file is there on my system. I can share that with others. But also I can later restore to that. So if I want to reset my shortcuts, I go right back to the base. And in fact, that deserves its own mention. If ever you've used some extensions that have changed your shortcuts, whether you've got visual assist, resharper or other extensions or you yourself are fiddled with your shortcuts, tools, keyboard, reset, clears everything back and then that will also bring back any visual studio shortcuts that have been hidden or overridden by the extensions that are no longer running. So that's useful on its own. But now that we've reset those, I want to load back all the shortcuts that I just had. So I can say load shortcuts. And here's some I've prepared earlier. I'm going to load the MyDemo shortcuts and now those shortcuts have been imported and I'll have available to me the shortcuts that we just saved. Let's have another look at this. Under tools keyboard, so we can load keyboard shortcuts. You can also scan your extensions. So if extension authors want to put keyboard shortcut files in their extensions, any user with this, well, it automatically scans on startup. But if you miss it, you can scan the extensions, which I've done already. And if it finds any shortcuts in those extensions, it will load them for you and prompt to put them in. So extension authors out there, if you see this, if you drop a VS settings file or a VSK into the root of your extension directory, then this tool will pick it up and provide those shortcuts to the users. What else? Mapping schemes. This is what we saw earlier. There are more mapping schemes here than come with the product. I have created a bunch of mapping schemes with the help of some others. There is the IntelliJ for C-sharp mapping scheme, re-sharp idea, re-sharp C-sharp. These schemes are quite useful. If you're used to the re-sharp or IntelliJ mappings and you come to the product, I might demonstrate them now. I really liked the IntelliJ mappings because I did a lot of Java in my past. So I'll turn those on now. Now with IntelliJ mappings, I press control alt left to go to my previous location. And I'll press control w to expand selection. And I'll press control shift w to expand. I'll press control y to delete a line. It's a completely different set of keyboard mappings available there. And I can easily switch them back by changing to a different mapping scheme like the re-sharp scheme. What do we get it? Well, also those, what else have we got? A 2015 Visual Studio 2015. This has taken the normal Visual Studio keyboard mapping schemes and just added a couple of cool ones. Like now alt left and alt right will go back and forward, which I just find really cool. Because that's what we do everywhere else in Windows and in all web browsers. I've bound control page up and down to go to the file next to you and left and right. So these are just a few things that I've put into these. And those keyboard schemes are available in hotkeys. Now hotkeys is the extension that delivers mapping schemes and shortcuts settings that users can download, have them available. And that's combined with the keyboard manager that allows you then to manage and maintain how you load and restore and reset keyboard shortcuts. So I'm actually going to put those demo shortcuts back on again because I think they were pretty cool. All right, so that's hotkeys and the keyboard shortcuts manager. What else have we got to look at? Hot sauce. Perhaps we've saved the best for last, I'm not sure. But how often have you wanted to... Every single time. Well, what I'm about to describe is frequent operations that a developer goes through every day. I want to fetch or pull code to see if there's any new code that I need to be dealing with. I want to make a commit and I want to push that commit. Maybe I want to check the history of this file. And so you got to go into the team explorer and you have to know what those things are. You have to go back and forth back to the home page to go to a branch and then you want to... Where are we? I'm trying to do it myself. Let's see, there's a button down... Oh, but there are things down there which are very handy and helpful. This is nice. If you've got a mouse and like using mice, then you can press these shortcuts, these buttons on the status bar. And the shortcut for them is this instance is Control Alt F7. It's great if you can remember that. And I'll open this page, but that's not the page I want to pull. So let's say I'll go to this page here. It can get a bit fiddly trying to... Do you commit? Do you commit or... And push at the same time. You got to hit that drop down and then you got to know that you had the opportunity. It can be fiddly. If I want to do a commit, first I open the changes page. I go to the changes. I have to click inside here. So I've built some commands and bound them to the team menu. So now there is a get operations menu with all of these commands that you want. Oops, sorry, I turned my head. Get operations. And now with shortcuts or accelerator keys, you can vary easily. Let's say we want to... Well, let's try the commit. It just puts my cursor straight in the changes page. Now, if I want to, let's try some shortcuts on it. What are they? Team, get. Sorry, Alt M, get. I want to do a pull. Shortcut is L on that one, the accelerator key. Now it has to switch pages. It was too quick. So I'll try it again. What is the shortcut for it? It's Alt M, G. Oops, team, get. I should learn. So Ctrl K. I've bound Ctrl K by default to most of these things. You have to let go of the Ctrl K of the Ctrl key to hit the other characters though. It's not Ctrl K, Ctrl L. It's just Ctrl K, L. Because Ctrl K... Oh, because the others are bound to different shortcuts. So let's say I'm going to try pull, fetch, push. Ctrl K, L. Oh, I'm unable to perform a pull. That's because I don't have a branch bound. But the keyboard shortcut is working. KF, there. Do you want to perform fetch? Yes, please. And so it runs the fetch operation. And if nothing else is just now a menu. Yes, and now you can actually find... So now you can actually find... You're going to have to go hunting around in the Team Explorer. For instance, did you even... There's anything wrong with the Team Explorer, but this is easier. There is current. I don't think these... So here's some other menu items. Synchronize. Opens the Synchronize page, which is open at the moment. If you want to view the changes, that opens the changes page. That's similar to pressing these buttons down the bottom, but you don't need to move your mouse or know those shortcuts. Undo is useful. I'm going to do this undo and it prompts to undo the changes that I've made to this file here. By the way, many of these items are available in the right click here. And this is... Most people just don't know that they're there. But if you want to open your right click, that's where you'll get those changes there. Also, there's shortcuts here to View History, New Branch, Manage Branches. That again, you can only get if you manage to open up that little navigation bar, which by the way, the shortcut is Control Alt F3. So if you want to with your keyboard, you can go Control Alt F3 and then work up to View History. But instead now, you can just Team Git, View Branch History or View File History. View File History is cool. It just shows you the changes on that file. And with our new keys, Control Insert, that docks it down the bottom. It's nice, isn't it? Control Shift Insert brings that back up again. Blame is another useful one. So on this file, I want to know who wrote each line. So give me the annotation for that. So it opens up. It looks like I've done most of the authoring on this file. So that's the Git Blame. That's just so judgmental. Tills Git, Diff File, Diff File. I've already done an undo, but let's say we make a change here and now I can Team Git, Diff File D, D for Diff. It opens up the File Differ and it shows me the changes on that file. So all of this without me having to pick up my mouse and go and work things out. Not only does it give me keyboard accessibility to it, but it gives me discoverability. Now I know that I can actually do a new branch, manage branches, Diff File, View History. So that, this is all part of hot source. Hot source, I love it. If you're Australian, you say the words source and sars, the same. So hot source has got my hot source bottle with my source code icon. By the end of today, I personally will increase the number of installs by 10%. 10%, great. Yes. 10 downloads, that's very fresh. Again, the ink still drawing on that icon as well. That's hot source, really like that one. Now, tip, oh, I should say, I'm working with the team. Many of these items we're hoping to bring into the products soon as people start to recognize that we want keyboard accessibility to these features. This is my new number one favorite extension. Well, that makes me very pleased, I'm pleased to hear that. Now, of course, tip of the day, hot tips. If you install this extension, you start getting tips and I strongly encourage everybody to do this because I can't do shows every day to show people the cool things about Visual Studio, but I can keep adding tips into my tip of the day. So if you want to grab the tip of the day extension, then each time you load a solution, while you're waiting for it to load, pops up a tip, learns something new, press next, next, next, if you want to learn more. And what else have I got to show you? Oh, okay, this is something that's very handy in the product. This is developed by Daniel Griffin, but I'm happy to promote it because it was, I worked with him to make it happen. Here is what it delivers with control slash slash or whack whack as we call it. We get a terminal window and I'm gonna expand the font size of this so that you can see with control shift plus, you can see it better. So now I have a PowerShell window. I can, it's actually a fully interactive console window so I can ask my Git status, comes out colored. It's an interactive terminal if I want to do commit messages. You can even switch to bash, I think, if you have it installed, am I in bash now? No, it didn't work. But there are other consoles that you can use from here. That is available as a whack whack terminal. So that's not in the product yet, but it's really handy. Three thousand installs, that's pretty popular. Yeah, that one went very popular. People have been waiting a long time to get a console window in Visual Studio. This is the same console window that's used in VS Code. So go and get that one today. It's really useful because when you open it in your project, notice you get the directory that you're in. So I can open this and immediately start doing Git commands. That's the thing I use it for the most. Cool. And so what else? And to close that, there we go here. So terminal window. There's one other extension, the Sublime VS. For users who like the features of Sublime, the shortcuts that come with it, they can download the Sublime VS extension. What it does is it bundles a handful of other extensions that other authors have written and provides a bunch of shortcuts. So then you can start to use control P to go to file, control shift P to search for commands, control D to select word, et cetera. And many of the Sublime commands that you're familiar with. So if you're interested in Sublime shortcuts, there's that extension available there. And that gets us through it. All right. Over there. Thank you for coming on and having a look at my extensions. That was awesome. I hope there's stuff in there that you find useful. That was fine. Those are some really cool extensions. Thanks, Robert. So I hope you guys enjoyed that. Go download a bunch of these, play around with them, send Justin feedback. Yes, you can provide feedback on the marketplace. There's question and answers, ratings and reviews. So you can ask questions and leave feedback there. And we will see you next time on Visual Studio Toolbox.