summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.clang-format6
-rw-r--r--.travis.yml1
-rwxr-xr-xclang-format-diff.sh11
-rwxr-xr-xscripts/gen-s-parser.py6
-rw-r--r--src/gen-s-parser.inc4
5 files changed, 28 insertions, 0 deletions
diff --git a/.clang-format b/.clang-format
index 9ca4dd982..cedadcbd0 100644
--- a/.clang-format
+++ b/.clang-format
@@ -1,3 +1,5 @@
+---
+Language: Cpp
BasedOnStyle: LLVM
PointerAlignment: Left
IndentCaseLabels: true
@@ -6,3 +8,7 @@ ConstructorInitializerIndentWidth: 2
SpaceAfterTemplateKeyword: false
BinPackArguments: false
BinPackParameters: false
+---
+Language: JavaScript
+DisableFormat: true
+---
diff --git a/.travis.yml b/.travis.yml
index 1a94debec..a070c8977 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -59,6 +59,7 @@ jobs:
script:
- set -o errexit
- flake8
+ - ./clang-format-diff.sh
# ensure generated parser is up to date
- ./scripts/gen-s-parser.py | diff src/gen-s-parser.inc -
- BUILD_SUBDIR=${BUILD_SUBDIR:-.}
diff --git a/clang-format-diff.sh b/clang-format-diff.sh
new file mode 100755
index 000000000..53020e59b
--- /dev/null
+++ b/clang-format-diff.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+MERGE_BASE=$(git merge-base master HEAD)
+FORMAT_MSG=$(git clang-format $MERGE_BASE -q --diff -- src/)
+if [ -n "$FORMAT_MSG" -a "$FORMAT_MSG" != "no modified files to format" ]
+then
+ echo "Run git clang-format before committing!"
+ echo
+ # Run git clang-format once again to show the error
+ git clang-format $MERGE_BASE -q --diff -- src/
+ exit 1
+fi
diff --git a/scripts/gen-s-parser.py b/scripts/gen-s-parser.py
index 04f10c471..262c0aeaf 100755
--- a/scripts/gen-s-parser.py
+++ b/scripts/gen-s-parser.py
@@ -533,6 +533,11 @@ def instruction_parser():
def print_header():
print("// DO NOT EDIT! This file generated by scripts/gen-s-parser.py\n")
+ print("// clang-format off\n")
+
+
+def print_footer():
+ print("\n// clang-format on")
def generate_with_guard(generator, guard):
@@ -549,6 +554,7 @@ def main():
sys.exit(1)
print_header()
generate_with_guard(instruction_parser, "INSTRUCTION_PARSER")
+ print_footer()
if __name__ == "__main__":
diff --git a/src/gen-s-parser.inc b/src/gen-s-parser.inc
index c9daba100..a27de9041 100644
--- a/src/gen-s-parser.inc
+++ b/src/gen-s-parser.inc
@@ -1,5 +1,7 @@
// DO NOT EDIT! This file generated by scripts/gen-s-parser.py
+// clang-format off
+
#ifdef INSTRUCTION_PARSER
#undef INSTRUCTION_PARSER
char op[27] = {'\0'};
@@ -2260,3 +2262,5 @@ switch (op[0]) {
parse_error:
throw ParseException(std::string(op));
#endif // INSTRUCTION_PARSER
+
+// clang-format on