tree-sitter-bp/scripts/minimal_init.lua
Bruno BELANYI cabd5f6a20 Add NeoVim test runner
For the queries that can't be tested with `tree-sitter` itself.
2024-04-13 15:12:25 +01:00

43 lines
1.3 KiB
Lua

vim.opt.runtimepath:append(vim.env.NVIM_PLENARY)
vim.opt.runtimepath:append(vim.env.NVIM_TREESITTER)
vim.opt.runtimepath:append(vim.env.NVIM_TREESITTER_TEXTOBJECTS)
vim.opt.runtimepath:append(vim.env.NVIM_TREESITTER_PARSER)
vim.cmd.runtime({ "plugin/plenary.vim", bang = true })
vim.cmd.runtime({ "plugin/nvim-treesitter.lua", bang = true })
vim.cmd.runtime({ "plugin/nvim-treesitter-textobjects.lua", bang = true })
local Path = require("plenary.path")
local project_root = Path:new(".") -- FIXME: relies on current working directory
vim.filetype.add({
extension = {
bp = "bp",
},
})
vim.o.swapfile = false
vim.bo.swapfile = false
local parser_config = require("nvim-treesitter.parsers").get_parser_configs()
parser_config.bp = {
install_info = {
url = project_root.filename,
files = {"src/parser.c"},
},
}
require("nvim-treesitter.configs").setup({
indent = { enable = true },
highlight = { enable = true },
})
-- Add queries, overriding potential `nvim-treesitter`-provided ones
local scan_dir = require("plenary.scandir").scan_dir
local queries_dir = project_root / "queries"
for _, name in ipairs(scan_dir(queries_dir.filename)) do
local content = Path:new(name):read()
local basename = name:gsub(".*/", "")
vim.treesitter.query.set("bp", basename:gsub(".scm$", ""), content)
end