aboutsummaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorLewis Russell <lewis6991@gmail.com>2023-05-11 11:13:32 +0100
committerGitHub <noreply@github.com>2023-05-11 11:13:32 +0100
commitaf040c3a079f6e25db0ad6b908aa1327f67deb82 (patch)
treee5d90fd09f0c0cfcb99afb6ca7b564ba98fd31f0 /cmake
parente90b506903babc84f8c5b796c3b25c7f20e183d2 (diff)
downloadrneovim-af040c3a079f6e25db0ad6b908aa1327f67deb82.tar.gz
rneovim-af040c3a079f6e25db0ad6b908aa1327f67deb82.tar.bz2
rneovim-af040c3a079f6e25db0ad6b908aa1327f67deb82.zip
feat(treesitter): add support for setting query depths
Diffstat (limited to 'cmake')
-rw-r--r--cmake/FindTreesitter.cmake20
1 files changed, 20 insertions, 0 deletions
diff --git a/cmake/FindTreesitter.cmake b/cmake/FindTreesitter.cmake
index ddea35fe66..23214283c0 100644
--- a/cmake/FindTreesitter.cmake
+++ b/cmake/FindTreesitter.cmake
@@ -7,3 +7,23 @@ mark_as_advanced(TREESITTER_LIBRARY TREESITTER_INCLUDE_DIR)
add_library(treesitter INTERFACE)
target_include_directories(treesitter SYSTEM BEFORE INTERFACE ${TREESITTER_INCLUDE_DIR})
target_link_libraries(treesitter INTERFACE ${TREESITTER_LIBRARY})
+
+# TODO(lewis6991): remove when min TS version is 0.20.9
+list(APPEND CMAKE_REQUIRED_INCLUDES "${TREESITTER_INCLUDE_DIR}")
+list(APPEND CMAKE_REQUIRED_LIBRARIES "${TREESITTER_LIBRARY}")
+check_c_source_compiles("
+#include <tree_sitter/api.h>
+int
+main(void)
+{
+ TSQueryCursor *cursor = ts_query_cursor_new();
+ ts_query_cursor_set_max_start_depth(cursor, 32);
+ return 0;
+}
+" TS_HAS_SET_MAX_START_DEPTH)
+list(REMOVE_ITEM CMAKE_REQUIRED_INCLUDES "${TREESITTER_INCLUDE_DIR}")
+list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES "${TREESITTER_LIBRARY}")
+
+if(TS_HAS_SET_MAX_START_DEPTH)
+ target_compile_definitions(treesitter INTERFACE NVIM_TS_HAS_SET_MAX_START_DEPTH)
+endif()