diff options
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/nvim-treesitter/configs.lua | 34 |
1 files changed, 27 insertions, 7 deletions
diff --git a/lua/nvim-treesitter/configs.lua b/lua/nvim-treesitter/configs.lua index 76a495b9a..1cc9756ee 100644 --- a/lua/nvim-treesitter/configs.lua +++ b/lua/nvim-treesitter/configs.lua @@ -1,7 +1,7 @@ local api = vim.api local queries = require'nvim-treesitter.query' -local nvim_query = require'vim.treesitter.query' +local ts_query = require'vim.treesitter.query' local parsers = require'nvim-treesitter.parsers' local utils = require'nvim-treesitter.utils' local caching = require'nvim-treesitter.caching' @@ -199,23 +199,36 @@ end function M.edit_query_file(query_group, lang) lang = lang or parsers.get_buf_lang() - local files = nvim_query.get_query_files(lang, query_group, true) + local files = ts_query.get_query_files(lang, query_group, true) if #files == 0 then - local folder = utils.join_path(vim.fn.stdpath('config'), 'after', 'queries', lang) - local file = utils.join_path(folder, query_group..'.scm') - pcall(vim.fn.mkdir, folder, "p", "0755") - vim.cmd(':edit '..file) + vim.notify('No query file found! Creating a new one!') + M.edit_query_file_user_after(query_group, lang) elseif #files == 1 then vim.cmd(':edit '..files[1]) else local counter = 0 local choice = vim.fn.inputlist(vim.tbl_map(function(f) counter = counter + 1;return counter..'. '..f end, files)) if choice > 0 then - vim.cmd(':edit '..files[choice]) + vim.cmd(':edit '..files[choice + 1]) end end end +function M.edit_query_file_user_after(query_group, lang) + lang = lang or parsers.get_buf_lang() + local folder = utils.join_path(vim.fn.stdpath('config'), 'after', 'queries', lang) + local file = utils.join_path(folder, query_group..'.scm') + if vim.fn.isdirectory(folder) ~= 1 then + local choice = vim.fn.inputlist({'"'..folder.." does not exist. Create it?", "1. Yes", "2. No"}) + if choice == 1 then + vim.fn.mkdir(folder, "p", "0755") + else + return + end + end + vim.cmd(':edit '..file) +end + M.commands = { TSBufEnable = { run = enable_module, @@ -272,6 +285,13 @@ M.commands = { "-complete=custom,nvim_treesitter#available_query_groups", }, }, + TSEditQueryUserAfter = { + run = M.edit_query_file_user_after, + args = { + "-nargs=+", + "-complete=custom,nvim_treesitter#available_query_groups", + }, + }, } -- @param mod: module (string) |
