Add NeoVim test runner
For the queries that can't be tested with `tree-sitter` itself.
This commit is contained in:
parent
cb932811c5
commit
cabd5f6a20
4 changed files with 95 additions and 0 deletions
43
scripts/minimal_init.lua
Normal file
43
scripts/minimal_init.lua
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
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
|
||||
Loading…
Add table
Add a link
Reference in a new issue