From 0704beba8dde8ef043a73f11149c9267a6c63bbc Mon Sep 17 00:00:00 2001 From: Roman971 Date: Wed, 18 Mar 2020 22:56:43 +0100 Subject: [PATCH] Setup formatting with clang-format and clang-tidy --- .clang-format | 23 +++++++++++++++++++++++ .clang-tidy | 5 +++++ fixle.sh | 2 ++ format.sh | 28 ++++++++++++++++++++++++++++ 4 files changed, 58 insertions(+) create mode 100644 .clang-format create mode 100644 .clang-tidy create mode 100644 format.sh diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000000..c7b900f060 --- /dev/null +++ b/.clang-format @@ -0,0 +1,23 @@ +IndentWidth: 4 +Language: Cpp +UseTab: Never +ColumnLimit: 120 +PointerAlignment: Left +BreakBeforeBraces: Attach +SpaceAfterCStyleCast: false +Cpp11BracedListStyle: false +IndentCaseLabels: true +BinPackArguments: true +BinPackParameters: true +AlignAfterOpenBracket: Align +AlignOperands: true +BreakBeforeTernaryOperators: true +BreakBeforeBinaryOperators: None +AllowShortBlocksOnASingleLine: true +AllowShortIfStatementsOnASingleLine: false +AllowShortLoopsOnASingleLine: false +AllowShortCaseLabelsOnASingleLine: false +AllowShortFunctionsOnASingleLine: false +AlignEscapedNewlines: Left +AlignTrailingComments: true +SortIncludes: false diff --git a/.clang-tidy b/.clang-tidy new file mode 100644 index 0000000000..4022a3f68a --- /dev/null +++ b/.clang-tidy @@ -0,0 +1,5 @@ +Checks: '-*,readability-braces-around-statements' +WarningsAsErrors: '' +HeaderFilterRegex: '(src|include)\/.*\.h$' +FormatStyle: 'file' +CheckOptions: diff --git a/fixle.sh b/fixle.sh index bf4527540d..a1941b69ac 100644 --- a/fixle.sh +++ b/fixle.sh @@ -1,3 +1,5 @@ +#!/usr/bin/env bash + var="$1" if [ ! -n "$var" ] then diff --git a/format.sh b/format.sh new file mode 100644 index 0000000000..18a1cae68f --- /dev/null +++ b/format.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +FORMAT_OPTS="-i -style=file" +TIDY_OPTS="-p . --fix --fix-errors" +COMPILER_OPTS="-fno-builtin -std=gnu90 -Iinclude -Isrc -D_LANGUAGE_C" + +shopt -s globstar + +if (( $# > 0 )); then + echo "Formatting file(s) $*" + echo "Running clang-format..." + clang-format ${FORMAT_OPTS} "$@" + echo "Running clang-tidy..." + clang-tidy ${TIDY_OPTS} "$@" -- ${COMPILER_OPTS} &> /dev/null + echo "Adding missing final new lines..." + sed -i -e '$a\' "$@" + echo "Done formatting file(s) $*" + exit +fi + +echo "Formatting C files. This will take a bit" +echo "Running clang-format..." +clang-format ${FORMAT_OPTS} src/**/*.c +echo "Running clang-tidy..." +clang-tidy ${TIDY_OPTS} src/**/*.c -- ${COMPILER_OPTS} &> /dev/null +echo "Adding missing final new lines..." +find src/ -type f -name "*.c" -exec sed -i -e '$a\' {} \; +echo "Done formatting all files."