mirror of
https://github.com/nvim-treesitter/nvim-treesitter-context
synced 2024-09-16 14:14:03 +02:00
ci: install parsers
This commit is contained in:
parent
2e0b35cf9c
commit
4ebc6b8e96
4 changed files with 46 additions and 0 deletions
3
.github/workflows/ci.yml
vendored
3
.github/workflows/ci.yml
vendored
|
@ -38,5 +38,8 @@ jobs:
|
|||
- name: Download nvim-test
|
||||
run: make nvim-test
|
||||
|
||||
- name: Install parsers
|
||||
run: make parsers NEOVIM_VERSION=$NEOVIM_VERSION
|
||||
|
||||
- name: Run Test
|
||||
run: make test NEOVIM_VERSION=$NEOVIM_VERSION
|
||||
|
|
3
.github/workflows/nightly.yml
vendored
3
.github/workflows/nightly.yml
vendored
|
@ -30,6 +30,9 @@ jobs:
|
|||
- name: Download nvim-test
|
||||
run: make nvim-test
|
||||
|
||||
- name: Install parsers
|
||||
run: make parsers NEOVIM_VERSION=$NEOVIM_VERSION
|
||||
|
||||
- name: Run Test
|
||||
run: make test NVIM_TS_SHA=$NVIM_TS_SHA
|
||||
|
||||
|
|
7
Makefile
7
Makefile
|
@ -15,6 +15,8 @@ nvim-treesitter:
|
|||
nvim-test:
|
||||
git clone https://github.com/lewis6991/nvim-test
|
||||
nvim-test/bin/nvim-test --init
|
||||
--runner_version $(NEOVIM_VERSION) \
|
||||
--target_version $(NEOVIM_VERSION)
|
||||
|
||||
.PHONY: test
|
||||
test: nvim-test nvim-treesitter
|
||||
|
@ -25,5 +27,10 @@ test: nvim-test nvim-treesitter
|
|||
--filter=$(FILTER) \
|
||||
--verbose
|
||||
|
||||
.PHONY: parsers
|
||||
parsers: nvim-test
|
||||
$(XDG_DATA_HOME)/nvim-test/nvim-test-$(NEOVIM_VERSION)/bin/nvim \
|
||||
--clean -u NONE -c 'source install_parsers.lua'
|
||||
|
||||
lint:
|
||||
luacheck lua
|
||||
|
|
33
install_parsers.lua
Normal file
33
install_parsers.lua
Normal file
|
@ -0,0 +1,33 @@
|
|||
|
||||
local function get_langs()
|
||||
local f = assert(io.open('README.md', 'r'))
|
||||
local readme_langs = {} --- @type table<string,true>
|
||||
for l in f:lines() do
|
||||
--- @type string?
|
||||
local lang = l:match('%- %[x%] `([^`]+)`')
|
||||
if lang then
|
||||
readme_langs[lang] = true
|
||||
end
|
||||
end
|
||||
f:close()
|
||||
|
||||
f = assert(io.open('nvim-treesitter/lockfile.json', 'r'))
|
||||
local txt = f:read('*a')
|
||||
local j = vim.json.decode(txt)
|
||||
|
||||
local langs = {} --- @type string[]
|
||||
for k in pairs(j) do
|
||||
if readme_langs[k] then
|
||||
langs[#langs+1] = k
|
||||
readme_langs[k] = nil
|
||||
end
|
||||
end
|
||||
print('Invalid languages:', table.concat(vim.tbl_keys(readme_langs), ', '))
|
||||
return langs
|
||||
end
|
||||
|
||||
vim.cmd [[set runtimepath+=.,./nvim-treesitter]]
|
||||
require'nvim-treesitter.install'.prefer_git = false
|
||||
require("nvim-treesitter").setup()
|
||||
require'nvim-treesitter.install'.ensure_installed_sync(get_langs())
|
||||
vim.cmd.quit()
|
Loading…
Reference in a new issue