How to change indentation in Visual Studio Code?
How to change indentation in Visual Studio Code?
Question
For every typescript file visual studio code uses an auto indentation of 8 spaces. This is a bit too much for my taste but I can't find where to change it.
Maybe it's available as a setting but under a different name as I can't find anything related to indentation.
UPDATE
I'm currently using the Prettier code formatter and that solves all formatting problems by auto formatting on save (if there is no syntax error)
Accepted Answer
You can change this in global User
level or Workspace
level.
Open the settings: Using the shortcut ctrl + ,
or clicking File
> Preferences
> Settings
as shown below.
Then, do the following 2 changes: (type tabSize
in the search bar)
- Uncheck the checkbox of
Detect Indentation
- Change the tab size to be 2/4 (Although I strongly think 2 is correct for JS :))
Popular Answer
In the toolbar in the bottom right corner you will see a item that looks like the following:
After clicking on it you will get the option to indent using either spaces or tabs. After selecting your indent type you will then have the option to change how big an indent is. In the case of the example above, indentation is set to 4 space characters per indent. If tab is selected as your indentation character then you will see Tab Size instead of Spaces
If you want to have this apply to all files and not on an idividual file basis, override the Editor: Tab Size
and Editor: Insert Spaces
settings in either User Settings or Workspace Settings depending on your needs
Edit 1
To get to your user or workspace settings go to Preferences -> Settings. Verify that you are on the User or Workspace tab depending on your needs and use the search bar to locate the settings. You may also want to disable Editor: Detect Indentation
as this setting will override what you set for Editor: Insert Spaces
and Editor: Tab Size
when it is enabled
Read more... Read less...
To change the indentation based on programming language:
- Open the Command Palette (CtrlShiftP | macOS: ⇧⌘P)
- Preferences: Configure language specific settings... (command id:
workbench.action.configureLanguageBasedSettings
) - Select programming language (for example TypeScript)
Add this code:
"[typescript]": { "editor.tabSize": 2 }
You might also want to set the editor.detectIndentation
to false, in addition to Elliot-J's answer.
VSCode will overwrite your editor.tabSize
and editor.insertSpaces
settings per file if it detects that a file has a different tab or spaces indentation pattern. You can run into this issue if you add existing files to your project, or if you add files using code generators like Angular Cli. The above setting prevents VSCode from doing this.
Code Formatting Shortcut:
VSCode on Windows - Shift + Alt + F
VSCode on MacOS - Shift + Option + F
VSCode on Ubuntu - Ctrl + Shift + I
You can also customize this shortcut using preference setting if needed.
column selection with keyboard Ctrl + Shift + Alt + Arrow
In my case "EditorConfig for VS Code" extention is overriding VSCode settings. If you have it installed, then check .editorconfig file in the root folder of the project.
Here is an example config. The "indent_size" sets the number of spaces for a tab.
# editorconfig.org
root = true
[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[*.md]
trim_trailing_whitespace = false
Simplified explanation with pictures for those that googled "Change indentation in VS Code"
Step 1: Click on Preferences > Settings
Step 2: The setting you are looking for is "Detect Indentation", begin typing that. Click on "Editor: Tab Size"
Step 3: Scroll down to "Editor: Tab Size" and type in 2 (or whatever you need).
Changes are automatically saved
Example of my changes