-- TODO: migrate to `main` when it's complete and staable return { 'nvim-treesitter/nvim-treesitter', dependencies = { 'nvim-treesitter/nvim-treesitter-context', { 'nvim-treesitter/nvim-treesitter-textobjects', branch = 'master', } }, branch = 'master', build = function() local queries_path = vim.fn.stdpath('data') .. '/lazy/nvim-treesitter/queries/dockerfile' local dockerfile_queries = vim.fn.stdpath('config') .. '/treesitter/dockerfile/queries/' vim.fn.system({ 'rm', '-r', queries_path }) vim.fn.mkdir(queries_path, 'p') for file in vim.fs.dir(dockerfile_queries) do vim.fn.system({ 'cp', dockerfile_queries .. file, queries_path }) end vim.cmd('TSUpdate') end, config = function() vim.defer_fn(function() --- @diagnostic disable-next-line: missing-fields require('nvim-treesitter.configs').setup({ auto_install = true, highlight = { enable = true }, indent = { enable = true }, }) require('treesitter-context').setup { max_lines = 6 } local parser_config = require('nvim-treesitter.parsers').get_parser_configs() parser_config.dockerfile = { install_info = { url = '/home/wzray/.config/nvim/treesitter/dockerfile', files = { "src/parser.c", "scanner.c" }, generate_requires_npm = false, requires_generate_from_grammar = true, }, } end, 0) end }