From 99ddf573531c4dbe53f743ecbc1595af5eb1d32f Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sun, 3 Mar 2024 11:00:11 +0100 Subject: feat(highlights)!: enforce documented captures (#6232) Problem: Allowing undocumented "secret" (sub)captures makes it harder to write comprehensive colorschemes and catch inconsistent captures. Solution: Only allow captures listed in CONTRIBUTING.md. Add useful (cross-language) subcaptures and drop language-specific or too niche ones. Follow-up: Adding further `*.builtin` captures and changing queries to use them. Language-specific subcaptures should instead be added in user config or a custom language plugin. --- scripts/check-queries.lua | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) (limited to 'scripts/check-queries.lua') diff --git a/scripts/check-queries.lua b/scripts/check-queries.lua index 5e83bdcad..f3b45ea1a 100755 --- a/scripts/check-queries.lua +++ b/scripts/check-queries.lua @@ -1,4 +1,5 @@ #!/usr/bin/env -S nvim -l +vim.opt.rtp:prepend "./" -- Equivalent to print(), but this will ensure consistent output regardless of -- operating system. @@ -35,15 +36,6 @@ local function extract_captures() return captures end -local function list_any(list, predicate) - for _, v in pairs(list) do - if predicate(v) then - return true - end - end - return false -end - local function do_check() local timings = {} local queries = require "nvim-treesitter.query" @@ -72,9 +64,7 @@ local function do_check() for _, capture in ipairs(query.captures) do local is_valid = ( vim.startswith(capture, "_") -- Helpers. - or list_any(captures[query_type], function(documented_capture) - return vim.startswith(capture, documented_capture) - end) + or vim.tbl_contains(captures[query_type], capture) ) if not is_valid then local error = string.format("(x) Invalid capture @%s in %s for %s.", capture, query_type, lang) -- cgit v1.2.3-70-g09d2