From ed1bf3afa25d7e7674df7e8618dfaf243de3058b Mon Sep 17 00:00:00 2001
From: fauxpark <fauxpark@gmail.com>
Date: Thu, 10 Oct 2019 21:48:37 +1100
Subject: [PATCH] Prevent clang-format messing up placeholder tokens within
 keyboard templates (#6790)

* Use .template file extension for keyboard template files

* Filter out .template files completely before passing to clang-format

* Undo file extension stuff; just ignore quantum/template dir
---
 quantum/template/avr/config.h                 | 10 ++++----
 .../template/avr/{template.c => keyboard.c}   |  0
 .../template/base/{template.h => keyboard.h}  | 10 ++++++--
 .../template/base/keymaps/default/keymap.c    | 23 ++++++++++++++-----
 .../template/base/keymaps/default/readme.md   |  2 +-
 quantum/template/ps2avrgb/config.h            | 11 ++++-----
 .../ps2avrgb/{template.c => keyboard.c}       |  0
 util/new_keyboard.sh                          |  4 ++--
 util/travis_compiled_push.sh                  |  2 +-
 9 files changed, 37 insertions(+), 25 deletions(-)
 rename quantum/template/avr/{template.c => keyboard.c} (100%)
 rename quantum/template/base/{template.h => keyboard.h} (89%)
 rename quantum/template/ps2avrgb/{template.c => keyboard.c} (100%)

diff --git a/quantum/template/avr/config.h b/quantum/template/avr/config.h
index 713d6be3a5..304a54ae59 100644
--- a/quantum/template/avr/config.h
+++ b/quantum/template/avr/config.h
@@ -23,8 +23,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #define VENDOR_ID 0xFEED
 #define PRODUCT_ID 0x0000
 #define DEVICE_VER 0x0001
-#define MANUFACTURER % YOUR_NAME %
-#define PRODUCT % KEYBOARD %
+#define MANUFACTURER %YOUR_NAME%
+#define PRODUCT %KEYBOARD%
 #define DESCRIPTION A custom keyboard
 
 /* key matrix size */
@@ -41,10 +41,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
  *                  ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
  *
  */
-#define MATRIX_ROW_PINS \
-    { D0, D5 }
-#define MATRIX_COL_PINS \
-    { F1, F0, B0 }
+#define MATRIX_ROW_PINS { D0, D5 }
+#define MATRIX_COL_PINS { F1, F0, B0 }
 #define UNUSED_PINS
 
 /* COL2ROW, ROW2COL*/
diff --git a/quantum/template/avr/template.c b/quantum/template/avr/keyboard.c
similarity index 100%
rename from quantum/template/avr/template.c
rename to quantum/template/avr/keyboard.c
diff --git a/quantum/template/base/template.h b/quantum/template/base/keyboard.h
similarity index 89%
rename from quantum/template/base/template.h
rename to quantum/template/base/keyboard.h
index 595da73c60..2e531b1fd4 100644
--- a/quantum/template/base/template.h
+++ b/quantum/template/base/keyboard.h
@@ -25,5 +25,11 @@
  * The second converts the arguments into a two-dimensional array which
  * represents the switch matrix.
  */
-#define LAYOUT(k00, k01, k02, k10, k11) \
-    { {k00, k01, k02}, {k10, KC_NO, k11}, }
+#define LAYOUT( \
+    k00, k01, k02, \
+      k10,  k11   \
+) \
+{ \
+    { k00, k01,   k02 }, \
+    { k10, KC_NO, k11 }, \
+}
diff --git a/quantum/template/base/keymaps/default/keymap.c b/quantum/template/base/keymaps/default/keymap.c
index 308cb92a77..3508055b78 100644
--- a/quantum/template/base/keymaps/default/keymap.c
+++ b/quantum/template/base/keymaps/default/keymap.c
@@ -16,11 +16,16 @@
 #include QMK_KEYBOARD_H
 
 // Defines the keycodes used by our macros in process_record_user
-enum custom_keycodes { QMKBEST = SAFE_RANGE, QMKURL };
+enum custom_keycodes {
+    QMKBEST = SAFE_RANGE,
+    QMKURL
+};
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-    [0] = LAYOUT(/* Base */
-                 KC_A, KC_1, KC_H, KC_TAB, KC_SPC),
+    [0] = LAYOUT( /* Base */
+        KC_A, KC_1, KC_H,
+          KC_TAB, KC_SPC
+    ),
 };
 
 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
@@ -45,8 +50,14 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
     return true;
 }
 
-void matrix_init_user(void) {}
+void matrix_init_user(void) {
 
-void matrix_scan_user(void) {}
+}
 
-void led_set_user(uint8_t usb_led) {}
+void matrix_scan_user(void) {
+
+}
+
+void led_set_user(uint8_t usb_led) {
+
+}
diff --git a/quantum/template/base/keymaps/default/readme.md b/quantum/template/base/keymaps/default/readme.md
index 21aa663d55..e052ed80f1 100644
--- a/quantum/template/base/keymaps/default/readme.md
+++ b/quantum/template/base/keymaps/default/readme.md
@@ -1 +1 @@
-# The default keymap for %KEYBOARD%
\ No newline at end of file
+# The default keymap for %KEYBOARD%
diff --git a/quantum/template/ps2avrgb/config.h b/quantum/template/ps2avrgb/config.h
index a780a10afc..f6d7c25e04 100644
--- a/quantum/template/ps2avrgb/config.h
+++ b/quantum/template/ps2avrgb/config.h
@@ -23,7 +23,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #define PRODUCT_ID 0x422D
 #define DEVICE_VER 0x0001
 #define MANUFACTURER You
-#define PRODUCT % KEYBOARD %
+#define PRODUCT %KEYBOARD%
 #define DESCRIPTION A custom keyboard
 
 #define RGBLED_NUM 16
@@ -31,13 +31,10 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #define MATRIX_ROWS 8
 #define MATRIX_COLS 11
 
-#define MATRIX_ROW_PINS \
-    { B0, B1, B2, B3, B4, B5, B6, B7 }
-#define MATRIX_COL_PINS \
-    { A0, A1, A2, A3, A4, A5, A6, A7, C7, C6, C5 }
+#define MATRIX_ROW_PINS { B0, B1, B2, B3, B4, B5, B6, B7 }
+#define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, A6, A7, C7, C6, C5 }
 // #define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, A6, A7, C7, C6, C5, C4, C3, C2, C1, C0, D7 }
-#define UNUSED_PINS \
-    {}
+#define UNUSED_PINS {}
 
 #define DIODE_DIRECTION COL2ROW
 #define DEBOUNCE 5
diff --git a/quantum/template/ps2avrgb/template.c b/quantum/template/ps2avrgb/keyboard.c
similarity index 100%
rename from quantum/template/ps2avrgb/template.c
rename to quantum/template/ps2avrgb/keyboard.c
diff --git a/util/new_keyboard.sh b/util/new_keyboard.sh
index 35d89e4026..fe7c1a8299 100755
--- a/util/new_keyboard.sh
+++ b/util/new_keyboard.sh
@@ -41,8 +41,8 @@ copy_templates() {
     echo " done"
 
     echo -n "Renaming keyboard files..."
-    mv "${keyboard_dir}/template.c" "${keyboard_dir}/${keyboard_name}.c"
-    mv "${keyboard_dir}/template.h" "${keyboard_dir}/${keyboard_name}.h"
+    mv "${keyboard_dir}/keyboard.c" "${keyboard_dir}/${keyboard_name}.c"
+    mv "${keyboard_dir}/keyboard.h" "${keyboard_dir}/${keyboard_name}.h"
     echo " done"
 }
 
diff --git a/util/travis_compiled_push.sh b/util/travis_compiled_push.sh
index 4737d693b8..8ca65f21a0 100755
--- a/util/travis_compiled_push.sh
+++ b/util/travis_compiled_push.sh
@@ -12,7 +12,7 @@ if [[ "$TRAVIS_BRANCH" == "master" && "$TRAVIS_PULL_REQUEST" == "false" ]] ; the
 # fix formatting
 git checkout master
 git diff --diff-filter=AM --name-only -n 1 -z ${TRAVIS_COMMIT_RANGE} | xargs -0 dos2unix
-git diff --diff-filter=AM --name-only -n 1 -z ${TRAVIS_COMMIT_RANGE} | grep -e '^drivers' -e '^quantum' -e '^tests' -e '^tmk_core' | xargs -0 clang-format
+git diff --diff-filter=AM --name-only -n 1 -z ${TRAVIS_COMMIT_RANGE} | grep -e '^drivers' -e '^quantum' -e '^tests' -e '^tmk_core' | grep -v 'quantum/template' | xargs -0 clang-format
 git diff --diff-filter=AM --name-only -n 1 -z ${TRAVIS_COMMIT_RANGE} | xargs -0 git add
 git commit -m "format code according to conventions [skip ci]" && git push git@github.com:qmk/qmk_firmware.git master