diff options
-rw-r--r-- | .clang-format | 16 | ||||
-rw-r--r-- | .clang-tidy | 33 | ||||
-rw-r--r-- | Makefile | 26 |
3 files changed, 75 insertions, 0 deletions
diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..0a1656e --- /dev/null +++ b/.clang-format @@ -0,0 +1,16 @@ +# dotfiles -- clang-format +# author: johannst +# doc : https://clang.llvm.org/docs/ClangFormatStyleOptions.html +--- + +Language: Cpp +BasedOnStyle: Chromium + +AllowShortFunctionsOnASingleLine: None +#AllowShortFunctionsOnASingleLine: Empty + +AccessModifierOffset: -2 +IndentWidth: 2 + +AlignConsecutiveMacros: true +AlignConsecutiveAssignments: true diff --git a/.clang-tidy b/.clang-tidy new file mode 100644 index 0000000..fa33f96 --- /dev/null +++ b/.clang-tidy @@ -0,0 +1,33 @@ +HeaderFilterRegex: '.*' +WarningsAsErrors: '*' + +# Available checks: +# https://clang.llvm.org/extra/clang-tidy/index.html#using-clang-tidy +# https://clang.llvm.org/extra/clang-tidy/checks/list.html +# +# List all checks: +# clang-tidy --checks="*" --list-checks +# +# Excuse all lints for a line inside the source code: +# some code; // NOLINT +# +# // NOLINTNEXTLINE +# some code; +# +# Excuse a single lint for a line inside the source code: +# some code; // NOLINT(bugprone-macro-parentheses) +# +# // NOLINTNEXTLINE(bugprone-macro-parentheses) +# some code; +Checks: > + -*, + readability-*, + +# readability-identifier-naming.* options: +# https://clang.llvm.org/extra/clang-tidy/checks/readability/identifier-naming.html +CheckOptions: + - { key: readability-identifier-naming.ClassCase, value: lower_case } + - { key: readability-identifier-naming.MemberCase, value: lower_case } + - { key: readability-identifier-naming.MacroDefinitionCase, value: UPPER_CASE } + - { key: readability-identifier-naming.TemplateParameterCase, value: CamelCase } + - { key: readability-identifier-naming.TypeAliasCase, value: lower_case } diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..16d98bb --- /dev/null +++ b/Makefile @@ -0,0 +1,26 @@ +SRC = $(shell git ls-files '*.cc') + +check: $(SRC:.cc=.x) +lint : $(SRC:.cc=.l) +fmt : $(SRC:.cc=.f) + +%.x: %.cc + bash $^ + +%.l: %.cc + clang-format -n --Werror $^ + clang-tidy $^ + +%.f: %.cc + clang-format -i $^ + +help: + @echo "Targets that apply to all .cc files under scm:" + @echo "* check execute build commands in each file" + @echo " lint clang-format & clang-tidy lint" + @echo " fmt re-format each file" + @echo "" + @echo "Targets that apply to a single .cc file (where <name> is the file name w/o .cc suffix):" + @echo " <name>.x only execute <name>.cc" + @echo " <name>.l only lint <name>.cc" + @echo " <name>.f only re-format <name>.cc" |