summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.clang-format56
-rw-r--r--docs/sections/coding_guidelines.md18
2 files changed, 74 insertions, 0 deletions
diff --git a/.clang-format b/.clang-format
new file mode 100644
index 0000000..b22d4c2
--- /dev/null
+++ b/.clang-format
@@ -0,0 +1,56 @@
+#
+# Copyright (c) 2022 Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+# Licensed under the Apache License, Version 2.0 (the License); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an AS IS BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+---
+Language: Cpp
+BasedOnStyle: LLVM
+IndentWidth: 4
+ColumnLimit: 100
+AccessModifierOffset: -4
+PointerAlignment: Left
+AlignAfterOpenBracket: Align
+AlignConsecutiveAssignments: true
+AlignConsecutiveMacros: true
+AlignEscapedNewlines: Left
+AlignTrailingComments: true
+AllowAllParametersOfDeclarationOnNextLine: true
+AllowShortFunctionsOnASingleLine: Empty
+AllowShortBlocksOnASingleLine: true
+AlwaysBreakTemplateDeclarations: true
+BinPackArguments: false
+BinPackParameters: false
+BreakInheritanceList: AfterColon
+BreakConstructorInitializers: AfterColon
+BreakBeforeBraces: Custom
+BraceWrapping:
+ AfterClass: false
+ AfterControlStatement: false
+ AfterEnum: false
+ AfterFunction: true
+ AfterNamespace: false
+ AfterObjCDeclaration: false
+ AfterStruct: false
+ AfterUnion: false
+ AfterExternBlock: false
+ BeforeCatch: false
+ BeforeElse: false
+ IndentBraces: false
+ SplitEmptyFunction: false
+ SplitEmptyRecord: false
+ SplitEmptyNamespace: true
+---
+
diff --git a/docs/sections/coding_guidelines.md b/docs/sections/coding_guidelines.md
index ae479f7..57c45e0 100644
--- a/docs/sections/coding_guidelines.md
+++ b/docs/sections/coding_guidelines.md
@@ -25,6 +25,24 @@ Layer (HAL). Both of these languages follow different naming conventions within
However, because we also issue function calls to third-party APIs, and they are not guaranteed to follow these
conventions, the intended outcome could be different for every case.
+## Pre-commit formatting
+To help with the adherence of the coding guidelines, we have provided a clang-format file. When commiting, please run
+the following command, post-staging but pre-commit.
+
+
+ ```Git
+ git-clang-format
+ ```
+
+This will modify the staged changes, to adhere to the guidelines as described in the
+.clang-format file in the root of the repo. Please note that the clang-format tool must be installed to run this
+step and can be installed using the following command on Ubuntu:
+
+ ```
+ sudo apt install clang-format
+ ```
+
+
## Language version
For this project, code written in C++ uses a subset of the `C++14` feature set and software may be written using the