Files
doris/docs/documentation/en/developer-guide/format-code.md
HuangWei 4e868252fc Add .clang-format and docs (#2724)
The problem of inconsistence style in Doris code is too big, it's hard to minimize modification when reformatting code.
So here, our aim is to make the style rules, tune the config in .clang-format.

Note: I choose clang-format-8.0+ to support richer sytle options.
2020-01-11 20:54:20 +08:00

2.6 KiB

Format Code

To automatically format the code, clang-format is a good choice.

Code Style

Doris Code Style is based on Google's, makes a few changes. The customized .clang-format file is in the root dir of Doris. Now, .clang-format file only works on clang-format-8.0.1+.

Preparing

You should install clang-format, or you can use clang-format plugins which support by IDEs or Editors.

Install clang-format

Ubuntu: apt-get install clang-format

The current release is 10.0, you can specify old version, e.g.

apt-get install clang-format-9

Centos 7:

The version of clang-format installed by yum is too old. Compiling clang from source is recommended.

Clang-format plugins

Clion IDE supports the plugin "ClangFormat", you can search in File->Setting->Plugins and download it. But the version is not match with clang-format. Judging from the options supported, the version is lower than clang-format-9.0.

Usage

CMD

clang-format --style=file -i $File$

When using -style=file, clang-format for each input file will try to find the .clang-format file located in the closest parent directory of the input file. When the standard input is used, the search is started from the current directory.

Note: filter out the files which should not be formatted, when batch clang-formating files.

A example of how to filter *.h/*.cpp and exclude some dirs:

find . -type f -not \( -wholename ./env/* \) -regextype posix-egrep -regex ".*\.(cpp|h)" | xargs clang-format -i -style=file

Using clang-format in IDEs or Editors

Clion

If using the plugin 'ClangFormat' in Clion, choose Reformat Code or press the keyboard shortcut.

VS Code

VS Code needs install the extension 'Clang-Format', and specify the executable path of clang-format in settings.

"clang-format.executable":  "$clang-format path$",
"clang-format.style": "file"

Then, choose Format Document.