Skip to content

Auto Indent Code in VSCode

Problem Statement

When working with programming languages like C++ and Python in Visual Studio Code, developers often need to automatically format their code for better readability and consistency. The question arises: what is the most efficient way to auto-indent code in VSCode, either through built-in functionality or extensions?

Solution Overview

VSCode provides multiple methods for auto-indenting code, ranging from keyboard shortcuts to configuration settings. The optimal approach depends on your specific needs and workflow.

Keyboard Shortcuts for Auto Formatting

The most efficient way to format your code is using VSCode's built-in keyboard shortcuts:

bash
Shift + Alt + F
bash
Shift + Option + F
bash
Ctrl + Shift + I

This shortcut formats the entire document according to your active language's formatting rules.

Enabling Auto Indentation

For automatic indentation as you type, configure VSCode's settings:

  1. Press Ctrl+Shift+P (Windows/Linux) or Cmd+Shift+P (macOS) to open the Command Palette
  2. Type "settings" and select "Preferences: Open User Settings"
  3. Search for "indent" in the settings search box
  4. Find the "Editor: Auto Indent" setting and set it to "full"

INFO

This setting enables automatic indentation for all opened files and applies to various programming languages.

Language-Specific Formatting

Some languages like C++ have additional formatting options:

  1. Go to Settings > C/C++ > Code Style > General > When I paste
  2. Select "Indent and format" to automatically format code when pasting

Using Format on Save

For the most seamless experience, enable format on save:

  1. Open Settings (Ctrl+, or Cmd+,)
  2. Search for "format on save"
  3. Check the "Editor: Format On Save" option

WARNING

Format on save uses your default formatter, which may vary by language. Ensure you have the appropriate formatter extension installed for optimal results.

Extended Formatting Options

Using Extensions

While VSCode has built-in formatting, language-specific extensions often provide enhanced formatting capabilities:

  • Python: Python extension with autopep8, black, or yapf formatters
  • C++: C/C++ extension with clang-format integration
  • Prettier: Multi-language formatter for web development
  • Beautify: General code formatter for various languages

TIP

Install language-specific extensions to get the most accurate formatting rules for your codebase.

Customizing Formatting Rules

Most formatters allow customization through configuration files:

  • Prettier: .prettierrc file
  • ESLint: .eslintrc file
  • clang-format: .clang-format file
  • Python: pyproject.toml or formatter-specific config files

Troubleshooting

If auto-formatting isn't working:

  1. Check keyboard shortcuts: Verify no conflicts with custom keybindings
  2. Verify formatter installation: Ensure you have the appropriate formatter installed
  3. Check language mode: Confirm VSCode recognizes the correct file type
  4. Review settings: Ensure format on save is enabled and the correct formatter is selected
View keybinding conflicts

Press Ctrl+K Ctrl+S (Windows/Linux) or Cmd+K Cmd+S (macOS) to open Keyboard Shortcuts and search for "format" to check for conflicts.

Conclusion

VSCode provides comprehensive code formatting options through both built-in functionality and extensions. The Shift+Alt+F (Windows) / Shift+Option+F (macOS) shortcut offers quick document formatting, while the format on save setting ensures consistent code style automatically. For language-specific formatting, install the appropriate extensions and configure them according to your project's coding standards.