aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordundargoc <gocdundar@gmail.com>2023-09-10 11:00:34 +0200
committerdundargoc <33953936+dundargoc@users.noreply.github.com>2023-09-14 09:58:50 +0200
commiteecddd24164c3c4a250aec25dbd760b283849981 (patch)
tree2124bea255242d4faddbc6756332e9c72e500ba9
parenta49924a318520a3b5c2f210f22a8d450165e89b5 (diff)
downloadrneovim-eecddd24164c3c4a250aec25dbd760b283849981.tar.gz
rneovim-eecddd24164c3c4a250aec25dbd760b283849981.tar.bz2
rneovim-eecddd24164c3c4a250aec25dbd760b283849981.zip
build(lint): use stylua without add_glob_target
add_glob_target is our custom method to figure out whether a work needs to be done or not. This works as expected most of the time, but causes a problem with stylua. Stylua makes the decision that if a file is explicitly passed to be formatted, then it will format the file even if the file is set to be ignored in .styluaignore. This behavior breaks add_glob_target with seemingly no easy workaround. More information: https://github.com/JohnnyMorganz/StyLua/issues/751 Instead, what we can do is call stylua as you would in the command line. This will make stylua work as expected. The downside is that we no longer get a free "is this work necessary" detection, meaning that stylua will be run each time `make lint` is called, regardless if it's necessary or not. For longer lint tasks such as uncrustify and clang-tidy this would be disastrous, but this is an acceptable tradeoff since stylua is very quick.
-rw-r--r--.styluaignore1
-rw-r--r--CMakeLists.txt17
2 files changed, 6 insertions, 12 deletions
diff --git a/.styluaignore b/.styluaignore
index 11aa24df3a..786a9ce4d3 100644
--- a/.styluaignore
+++ b/.styluaignore
@@ -1,6 +1,7 @@
/scripts
/src
/test
+/build
/runtime/lua/vim/re.lua
/runtime/lua/vim/_meta/options.lua
/runtime/lua/coxpcall.lua
diff --git a/CMakeLists.txt b/CMakeLists.txt
index aec39109e4..f0303be3eb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -230,18 +230,11 @@ add_glob_target(
TOUCH_STRATEGY SINGLE)
add_dependencies(lintlua-luacheck lua-dev-deps)
-add_glob_target(
- TARGET lintlua-stylua
- COMMAND ${STYLUA_PRG}
- FLAGS --color=always --check
- GLOB_DIRS runtime/
- GLOB_PAT *.lua
- EXCLUDE
- /runtime/lua/vim/re.lua
- /runtime/lua/vim/_meta/.*
- /runtime/lua/coxpcall.lua
- TOUCH_STRATEGY SINGLE)
-
+# Don't use add_glob_target as .styluaignore won't be respected.
+# https://github.com/JohnnyMorganz/StyLua/issues/751
+add_custom_target(lintlua-stylua
+ COMMAND ${STYLUA_PRG} --color=always --check .
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
add_custom_target(lintlua)
add_dependencies(lintlua lintlua-luacheck lintlua-stylua)