Skip to content

somethingsoftware/vscode-clang-format

This branch is 10 commits ahead of Mr-Bossman/vscode-clang-format:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

dcaefed · Oct 25, 2024
Oct 25, 2024
Nov 23, 2022
Oct 25, 2024
Nov 23, 2022
Apr 20, 2017
Nov 27, 2015
Nov 23, 2022
Jul 8, 2016
Jan 22, 2019
Nov 23, 2022
Sep 1, 2024
Dec 25, 2015
Dec 25, 2015
Nov 23, 2022
Oct 25, 2024
Oct 11, 2016
Apr 20, 2017
Oct 11, 2016

Repository files navigation

README

License: MIT

Install from vscode marketplace

Clang-Format is a tool to format C/C++/Java/JavaScript/Objective-C/Objective-C++/Protobuf code. It can be configured with a config file named .clang-format within the working folder or a parent folder. Configuration see: http://clang.llvm.org/docs/ClangFormatStyleOptions.html

Usage

This extension allows clang-format (version 3.8 or higher) to be used to format C/C++, Javascript etc. source files directly from within Visual Studio Code.

Files can be formatted on-demand by right clicking in the document and selecting "Format Document", or by using the associated keyboard shortcut (usually Ctrl+⇧+F on Windows, Ctrl+⇧+I on Linux, and ⇧+⌥+F on macOS).

To automatically format a file on save, add the following to your vscode settings.json file:

{
    "editor.formatOnSave": true
}

Specifying the location of clang-format

This extension will attempt to find clang-format on your PATH. Alternatively, the clang-format executable can be specified in your vscode settings.json file:

{
    "clang-format.executable": "/absolute/path/to/clang-format"
}

Placeholders can also be used in the clang-format.executable value. The following placeholders are supported:

  • ${workspaceRoot} - replaced by the absolute path of the current vscode workspace root.
  • ${workspaceFolder} - replaced by the absolute path of the current vscode workspace. In case of outside-workspace files ${workspaceFolder} expands to the absolute path of the first available workspace.
  • ${cwd} - replaced by the current working directory of vscode.
  • ${env.VAR} - replaced by the environment variable $VAR, e.g. ${env.HOME} will be replaced by $HOME, your home directory.

Some examples:

  • ${workspaceRoot}/node_modules/.bin/clang-format - specifies the version of clang that has been added to your workspace by npm install clang-format.
  • ${env.HOME}/tools/clang38/clang-format - use a specific clang format version under your home directory.

Placeholders are also supported in clang-format.assumeFilename. The supported placeholders are ${file}, ${fileNoExtension}, ${fileBasename}, ${fileBasenameNoExtension}, and ${fileExtname}, with the same meaning as the predefined variables in other configuration files.

For example:

  • ${fileNoExtension}.cpp - /home/src/foo.h will be formatted with -assume-filename /home/src/foo.cpp.

Installing Clang-Format

On Linux, one can simply run sudo apt install clang-format.

On Windows, the simplest way is to install LLVM to the default path either using the installer or by simply running winget install -e --id LLVM.LLVM using winget.

LLVM contains the clang-format binary, the resulting pat for the clang-format.executable then becomes:

{
    "clang-format.executable": "c:\\Program Files\\LLVM\\bin\\clang-format.exe"
}

Source code

Available on github: https://github.com/somethingsoftware/vscode-clang-format

About

A Visual Studio Code extension that provides C++, C, Obj-C, Java formatting with the use of clang-format

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 88.5%
  • C++ 11.5%