From 8854040b6e76bb40c649aeb43a0934b040e8a1a4 Mon Sep 17 00:00:00 2001 From: Joel Spadin Date: Sat, 19 Sep 2020 16:25:29 -0500 Subject: [PATCH 01/10] improvement(vscode): Ignore some vscode config files c_cpp_properties.json uses machine-specific paths, so it shouldn't be committed. --- .gitignore | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 93c801d9..9f9d1134 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,9 @@ /zmk-config /build *.DS_Store -__pycache__ \ No newline at end of file +__pycache__ + +/.vscode/** +!/.vscode/extensions.json +!/.vscode/settings.json +!/.vscode/tasks.json From 527e5df985cca7f2c9296b4dc25ce9a9c1885821 Mon Sep 17 00:00:00 2001 From: Joel Spadin Date: Sat, 19 Sep 2020 16:27:34 -0500 Subject: [PATCH 02/10] improvement(vscode): Recommend some extensions --- .vscode/extensions.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 .vscode/extensions.json diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..27ff2611 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,16 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=827846 to learn about workspace recommendations. + // Extension identifier format: ${publisher}.${name}. Example: vscode.csharp + + // List of extensions which should be recommended for users of this workspace. + "recommendations": [ + "ms-vscode.cpptools", + "plorefice.devicetree", + "trond-snekvik.kconfig-lang", + "twxs.cmake", + ], + // List of extensions recommended by VS Code that should not be recommended for users of this workspace. + "unwantedRecommendations": [ + + ] +} \ No newline at end of file From c8289135b75d24ce5f1b1cb6860a9003fcec1f51 Mon Sep 17 00:00:00 2001 From: Joel Spadin Date: Sat, 26 Sep 2020 18:42:41 -0500 Subject: [PATCH 03/10] improvement(vscode): parse GCC diagnostics Updated the vscode build task to parse warnings/errors from GCC. --- .vscode/tasks.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 080ffea6..034ef557 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -10,7 +10,13 @@ "group": { "kind": "build", "isDefault": true - } + }, + "problemMatcher": [ + { + "base": "$gcc", + "fileLocation": ["autoDetect", "${workspaceFolder}/app/build"] + } + ] }, { "label": "Flash", From f0f9b386864317601acfbf05a80991d00abf787a Mon Sep 17 00:00:00 2001 From: Joel Spadin Date: Sat, 3 Oct 2020 14:18:54 -0500 Subject: [PATCH 04/10] improvement(vscode): ignore code workspaces Ignore workspaces so you can create them to customize settings and include extra folders such as a zmk config. --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 9f9d1134..f2d0016f 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ /zephyr /zmk-config /build +*.code-workspace *.DS_Store __pycache__ From 84cb1fab27b452df5fb999200ab0d6bc3c0e8c4d Mon Sep 17 00:00:00 2001 From: Joel Spadin Date: Sat, 3 Oct 2020 14:19:27 -0500 Subject: [PATCH 05/10] improvement(vscode): auto format C files on save --- .vscode/settings.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.vscode/settings.json b/.vscode/settings.json index eba95704..36b67c70 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -2,5 +2,8 @@ "files.associations": { "*.overlay": "dts", "*.keymap": "dts" + }, + "[c]": { + "editor.formatOnSave": true } } \ No newline at end of file From 14d5e36b68d4fbe06bf902e90c16bb5d62424692 Mon Sep 17 00:00:00 2001 From: Joel Spadin Date: Sat, 10 Oct 2020 21:28:03 +0000 Subject: [PATCH 06/10] improvement(vscode): stop C/C++ changing settings By default, VS Code's C/C++ extension updates .vscode/settings.json to associate .h files with C or C++ based on which type of file they're included by. Since ZMK doesn't use C++, disable this behavior and always treat .h files as C headers. --- .vscode/settings.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 36b67c70..22b18f26 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,9 @@ { + "C_Cpp.autoAddFileAssociations": false, "files.associations": { "*.overlay": "dts", - "*.keymap": "dts" + "*.keymap": "dts", + "*.h": "c" }, "[c]": { "editor.formatOnSave": true From c10fb1ab153f48c64214a802ebc17d21bfeace4e Mon Sep 17 00:00:00 2001 From: Joel Spadin Date: Sat, 14 Nov 2020 22:05:57 -0600 Subject: [PATCH 07/10] improvement(vscode): Format docs on save Added a recommendation for the Prettier extension and set CSS, JS, JSX, and Markdown files to format on save using it. --- .vscode/extensions.json | 1 + .vscode/settings.json | 26 +++++++++++++++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 27ff2611..557607c1 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -4,6 +4,7 @@ // List of extensions which should be recommended for users of this workspace. "recommendations": [ + "esbenp.prettier-vscode", "ms-vscode.cpptools", "plorefice.devicetree", "trond-snekvik.kconfig-lang", diff --git a/.vscode/settings.json b/.vscode/settings.json index 22b18f26..cde2646c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -7,5 +7,29 @@ }, "[c]": { "editor.formatOnSave": true - } + }, + "[css]": { + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[javascript]": { + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[javascriptreact]": { + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[markdown]": { + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[typescript]": { + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[typescriptreact]": { + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, } \ No newline at end of file From 16a81b32ad815cf3ea655ecb63f8d9488968a5f6 Mon Sep 17 00:00:00 2001 From: Joel Spadin Date: Sat, 14 Nov 2020 22:10:36 -0600 Subject: [PATCH 08/10] improvement(vscode): recommend eslint extension --- .vscode/extensions.json | 1 + 1 file changed, 1 insertion(+) diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 557607c1..e6ed1657 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -4,6 +4,7 @@ // List of extensions which should be recommended for users of this workspace. "recommendations": [ + "dbaeumer.vscode-eslint", "esbenp.prettier-vscode", "ms-vscode.cpptools", "plorefice.devicetree", From 8df00aeac48ed547f476d8fa2cecb3ca1ba0fc1f Mon Sep 17 00:00:00 2001 From: Joel Spadin Date: Sat, 19 Dec 2020 11:17:52 -0600 Subject: [PATCH 09/10] improvement(vscode): recommend ZMK Tools extension Removed the associations for keymap and overlays since ZMK Tools provides associations of its own, and overriding keymap files to DeviceTree prevents ZMK Tools from properly handling them. --- .vscode/extensions.json | 1 + .vscode/settings.json | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.vscode/extensions.json b/.vscode/extensions.json index e6ed1657..180b53eb 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -8,6 +8,7 @@ "esbenp.prettier-vscode", "ms-vscode.cpptools", "plorefice.devicetree", + "spadin.zmk-tools", "trond-snekvik.kconfig-lang", "twxs.cmake", ], diff --git a/.vscode/settings.json b/.vscode/settings.json index cde2646c..d0c80cce 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,8 +1,6 @@ { "C_Cpp.autoAddFileAssociations": false, "files.associations": { - "*.overlay": "dts", - "*.keymap": "dts", "*.h": "c" }, "[c]": { From fc402026fb3701f1fad70afc4d993d8cdb3652ec Mon Sep 17 00:00:00 2001 From: Joel Spadin Date: Sun, 8 Aug 2021 12:33:46 -0500 Subject: [PATCH 10/10] improvement(vscode): Improve tasks Changed the build task to no longer set isDefault: true. This lets you set your own default build task from a code workspace. Also replaced "cd app" in each command by setting the working directory for the task. --- .vscode/tasks.json | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 034ef557..03b3525c 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -6,11 +6,11 @@ { "label": "Build", "type": "shell", - "command": "cd app && west build", - "group": { - "kind": "build", - "isDefault": true + "command": "west build", + "options": { + "cwd": "${workspaceFolder}/app" }, + "group": "build", "problemMatcher": [ { "base": "$gcc", @@ -21,13 +21,19 @@ { "label": "Flash", "type": "shell", - "command": "cd app && west flash", + "command": "west flash", + "options": { + "cwd": "${workspaceFolder}/app" + }, "group": "test" }, { "label": "Debug", "type": "shell", - "command": "cd app && west debug", + "command": "west debug", + "options": { + "cwd": "${workspaceFolder}/app" + }, "group": "test" } ]