Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member
Visual Studio assists you in writing readable code by automatically indenting and aligning your text. Many people use the default settings without a second thought, but with a little effort you can configure the formatting so that you have better control over how your code is arranged. Let me show you. I am inside Visual Studio, and I have opened a project called FormattingYourCode. This has two C# files: Book.cs-- I'll double-click to open that--and Program.cs. And it also has a WPF user control, SampleWpfControl, which contains some XML markup down here.
I'm going to open the Book.cs file, and I'm going to show you the SmartIndent feature. Now, SmartIndenting means what happens when you hit the Enter key on one line and move to the next line. So to configure this setting, I'm going to go to Tools > Options, and I'm going to open the Text Editor node, and then I'm going to click on the All Languages. This way I can make the changes, and it will affect every code editor. I'm going to click on Tabs, and I'll start by choosing None for the Indenting.
Now, when I indent my code, like here, notice that when I move to a new line, the cursor moves to the beginning of the line. Now if I want to get over here to align it with these other comments, I have to either press the Spacebar or the Tab key to get over there, like so. If I used a SmartIndenting, it will automatically handle all that. I'll use what's called a context-sensitive indent. It looks at where it belongs-- is it in other curly braces, is it inside an 'if-then' statement?--and determines where to put it.
So watch what happens now. When I hit the Enter key, it stays aligned. Now, the tabs are probably off by a couple of spaces. [0:01:49.17] "This is a demo", like so. Now watch what happens if I write an 'if' statement. 'if' now I pressed 'if' and tab tab twice to stub in some code for me. Now I'm going to come down here and hit the Enter key. That's what I mean by context-sensitive. It knows I'm inside these curly braces, so it indents it at a further level than it did above. Now, my comment goes here, and more.
If I move outside the curly braces and hit Enter, it indents it at a slightly different level. This is the default setting, and I find it invaluable to have for arranging your code. You probably have a personal preference on whether you like tabs or spaces. There is a lot discussion out there on which is better. I won't argue which is better, but you can choose in Visual Studio which one you want to use by going to Tools > Options and then coming here and say, when I do a tab, I want you to Insert spaces. In other words, if I press Tab and I say that the Tab size is equal to 2, and Indent size is equal to 2, when I press the Tab key, if the Insert spaces is turned on, then it will put two spaces in there.
If I have the Keep tabs selected, then it will put a tab that happens to be two spaces wide. So I'll come down here, and I'll press the Tab key twice. And you see that it moves over apparently four spaces. If I go up and I choose Edit > Advanced > View White Space, you can see these little dots here. Those represent spaces. I'll go back up and change my settings to Keep tabs, and then I'll move down a line and press the Tab key. And now you see instead of spaces, I get the little arrows. That signifies that I'm using tabs, not spaces.
Again, it's your choice. Most often you'll have View White Space turned off. My personal preference is to use a two- space tab instead of four-space tab, because I can get more on the screen that way. I'll turn off View White Space now. Next, I want to show you what happens when you're working in an editor like C# and you want to automatically format your document. There are some settings and tools options specific to different editors. For example, if I go to the C# editor and go to Formatting, I can set up rules inside here of how my C# code is indented. The same with the XAML, I can go down to the XAML section and I specify XAML specific settings.
All right, I'll start with the C# settings. I'll go up here, choose C#, and I'm going to talk about New Lines. What this says is, where do you want to put the new line for a brace? Do you want the brace be on a new line for types? You get a preview in Visual Studio. Here is a class. If I place the open brace on a new line for type, you'll see that this brace here is on the second line. If I uncheck this, you'll see that it moves up, and the brace stays on the same line as the class declaration. Same thing with methods here. I'll click on moving the Method opening curly brace to this top line, instead of having it on a separate line like this.
All right, now I'm going to go ahead and unselect these two. I'm going to return back to my code. Notice that my class up here has the curly brace where it was. It doesn't automatically update your code once you make the changes. But if I were to write a new function right now, I can force a formatting anytime by going to Edit > Advanced > Format. I got two choices here: Format Selection and Format Document. I use this shortcut all the time, Ctrl+K, Ctrl+D. Let me show you how that works.
I just ran that on this document, and now it knows all the methods you are supposed to have their opening curly brace on the same line as the function name. I can force that again at anytime. I'm going to go over here to my XAML. I'm going to go over here. I am going to do a Ctrl+K, Ctrl+ D. Now, I want you to keep an eye on this line 10 here, Ctrl+K, Ctrl+ D, Ctrl+ K, Ctrl+D. Nothing happened. Maybe I need to go change the setting. Tools > Options. Scroll down to the XAML section, pick Formatting, and then I'm going to go to Spacing.
Right now, the setting is Preserve New lines and Spaces. In other words, don't touch my XAML. I'm going to change that to say Position each attribute on a separate line. I'm going to tell to collapse multiple lines down into a single blank line. I'll put a few extra spaces in here like that, and now I'm going to do my secret keystroke: Ctrl+K, Ctrl+D, and keep an eye on line 13. It will autoarrange my code. It put each attribute on its own separate line, and those multiple spaces that I had, it collapsed them down to a single blank space.
Again, try that here. Just several blank lines there, Ctrl+K, Ctrl+D removes those blank lines. I can't tell you now many times a day I use Ctrl+K, Ctrl+D to format my code as I work. I find it indispensable to my sense of order while working, and I think you will too.
Get unlimited access to all courses for just $25/month.Become a member
61 Video lessons · 99991 Viewers
56 Video lessons · 113064 Viewers
71 Video lessons · 81908 Viewers
131 Video lessons · 39303 Viewers
Access exercise files from a button right under the course name.
Search within course videos and transcripts, and jump right to the results.
Remove icons showing you already watched videos if you want to start over.
Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.
Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.