return { { 'RRethy/nvim-treesitter-endwise', }, { 'windwp/nvim-autopairs', event = "InsertEnter", config = function() require('nvim-autopairs').setup() local npairs = require("nvim-autopairs") local Rule = require('nvim-autopairs.rule') local cmp_autopairs = require('nvim-autopairs.completion.cmp') local cmp = require('cmp') cmp.event:on( 'confirm_done', cmp_autopairs.on_confirm_done() ) npairs.setup({ check_ts = true, ts_config = { lua = { 'string' }, -- it will not add a pair on that treesitter node javascript = { 'template_string' }, java = false, -- don't check treesitter on java } }) local ts_conds = require('nvim-autopairs.ts-conds') -- press % => %% only while inside a comment or string npairs.add_rules({ Rule("%", "%", "lua") :with_pair(ts_conds.is_ts_node({ 'string', 'comment' })), Rule("$", "$", "lua") :with_pair(ts_conds.is_not_ts_node({ 'function' })) }) end, opts = { enabled = function(bufnr) return true end, disable_filetype = { "TelescopePrompt", "spectre_panel", "snacks_picker_input" }, enable_check_bracket_line = false, map_cr = true, map_bs = true, -- map the key }, } }