I tried searching with pacman -Ss
for clang-format
, git-clang-format
, etc, but I'm not having any luck.
However, I have seen some references to it on some other websites, implying it may exist (or have existed) somewhere.
As utilities, clang-format
and git-clang-format
are available in several forms:
clang
.[As noted by OP in the final comments below, and with OP's answer to their own question, these should be included with MSYS2/MingGW on Windows].
As pre-compiled Python wheels for Linux and Windows available via pip
(PyPI).
As modules available for Node.js. On Windows, use the standard Windows installer to install Node.js. Otherwise, example Linux package manager commands for installing Node.js are here.
Python
For Python versions on Linux or Windows, you may wish to try:
python3 -m pip install clang-format
Node.js
Assuming Node.js is installed, you can also get them both with:
npm install -g clang-format
Note that on Windows, using the Node.js option seems to be the simplest solution for obtaining just clang-format
and git-clang-format
(without installing MinGW).
clang
, clang-analyzer
, clang-tools-extra
, compiler-rt
, libblocksruntime
(all version 9) are all available on mingw. Apparently clang
itself isn't enough to run the compiler though.
Commented
Nov 26, 2019 at 17:18
ERROR: Could not find a version that satisfies the requirement clang-format (from versions: none) ERROR: No matching distribution found for clang-format
. For nodejs, I cannot find how to install it on mingw.
Commented
Nov 26, 2019 at 18:02
You can get it as part of the LLVM compiler build for Windows. You can download it from https://llvm.org/builds/. Once installed, clang-format.exe can be found in C:\Program Files\LLVM\bin.
I know it's a bit heavy to install the whole compiler just to get the formatter, but yeah, it just feels safer compared to other sources, given that it's from LLVM itself.
Besides, the installer holds an archive that several tools (e.g. 7-Zip) can open. If you have downloaded the installer, but do not want to install the whole thing, extract the single executable from the archive under bin.
It turns out that MSYS2 already comes with clang
installed, and clang comes with clang-format
. As of my version of clang, I have clang-format 9.0.0 installed. it's possible much earlier versions of clang did not come with it installed.
I solved this problem by doing the following:
I opened MSYS2 MINGW64
I ran pacman -S clang
and followed the prompts to install it.
I ran where clang-format
to learn of its location (in my case it
was C:\msys64\usr\bin\clang-format.exe
)
I added its folder path (C:\msys64\usr\bin\
) to Windows' user and
system Path variable.
All shells could then find clang-format
and after restarting it, VS Code knew about it too.
nb: it could be that clang
maybe overkill just for this command - a better pacman
command might be adequate here.
The clang package was not available in my MSYS2 installation by default, so I had to install it:
pacman -Sy --needed mingw-w64-ucrt-x86_64-clang
You can see where the binary is installed (to add to your PATH, if needed) with the command:
pacman -Ql mingw-w64-ucrt-x86_64-clang | grep bin/clang-format
The output should looks something like this:
mingw-w64-ucrt-x86_64-clang /ucrt64/bin/clang-format.exe