nvim-autopairs/tests/treesitter_spec.lua

118 lines
3.0 KiB
Lua
Raw Normal View History

2021-04-21 07:39:36 +03:00
local npairs = require('nvim-autopairs')
2021-12-26 11:18:37 +03:00
local ts = require('nvim-treesitter.configs')
2021-04-21 07:39:36 +03:00
local log = require('nvim-autopairs._log')
2021-11-21 05:18:08 +03:00
local Rule = require('nvim-autopairs.rule')
2021-12-26 11:18:37 +03:00
local ts_conds = require('nvim-autopairs.ts-conds')
2021-04-21 07:39:36 +03:00
2021-12-26 11:18:37 +03:00
_G.npairs = npairs
vim.api.nvim_set_keymap(
'i',
'<CR>',
'v:lua.npairs.check_break_line_char()',
{ expr = true, noremap = true }
)
2021-04-21 07:39:36 +03:00
2021-12-26 11:18:37 +03:00
ts.setup({
ensure_installed = { 'lua', 'javascript', 'rust' },
highlight = { enable = true },
autopairs = { enable = true },
2021-04-21 07:39:36 +03:00
})
local data = {
{
2021-12-26 11:18:37 +03:00
name = 'treesitter lua quote',
2021-04-21 07:39:36 +03:00
filepath = './tests/endwise/init.lua',
2021-12-26 11:18:37 +03:00
filetype = 'lua',
linenr = 5,
key = [["]],
before = {
2021-04-21 07:39:36 +03:00
[[ [[ aaa| ]],
[[ ]],
2021-12-26 11:18:37 +03:00
']]',
2021-04-21 07:39:36 +03:00
},
2021-12-26 11:18:37 +03:00
after = [[ [[ aaa"| ]],
2021-04-21 07:39:36 +03:00
},
{
2021-12-26 11:18:37 +03:00
name = 'treesitter javascript quote',
2021-04-21 07:39:36 +03:00
filepath = './tests/endwise/javascript.js',
2021-12-26 11:18:37 +03:00
filetype = 'javascript',
linenr = 5,
key = [[(]],
before = {
2021-04-21 07:39:36 +03:00
[[ const data= `aaa | ]],
[[ ]],
2021-12-26 11:18:37 +03:00
'`',
2021-04-21 07:39:36 +03:00
},
2021-12-26 11:18:37 +03:00
after = [[ const data= `aaa (| ]],
2021-04-21 07:39:36 +03:00
},
{
2021-12-26 11:18:37 +03:00
setup_func = function()
npairs.add_rules({
Rule('%', '%', 'lua'):with_pair(
ts_conds.is_ts_node({ 'string', 'comment' })
),
})
end,
name = 'ts_conds is_ts_node quote',
2021-04-21 07:39:36 +03:00
filepath = './tests/endwise/init.lua',
2021-12-26 11:18:37 +03:00
filetype = 'lua',
linenr = 5,
key = [[%]],
before = {
2021-04-21 07:39:36 +03:00
[[ [[ abcde | ]],
[[ ]],
2021-12-26 11:18:37 +03:00
']]',
2021-04-21 07:39:36 +03:00
},
2021-12-26 11:18:37 +03:00
after = [[ [[ abcde %|% ]],
2021-04-21 07:39:36 +03:00
},
2021-04-26 17:23:20 +03:00
{
2021-12-26 11:18:37 +03:00
name = 'ts_conds is_ts_node failed',
2021-04-26 17:23:20 +03:00
filepath = './tests/endwise/init.lua',
2021-12-26 11:18:37 +03:00
linenr = 5,
filetype = 'lua',
key = '%',
before = { [[local abcd| = ' visual ']] },
after = [[local abcd%| = ' visual ']],
},
{
setup_func = function()
npairs.add_rules({
Rule('<', '>', 'rust'):with_pair(ts_conds.is_ts_node({
'type_identifier',
'let_declaration',
'parameters',
})),
})
end,
name = 'ts_conds is_ts_node failed',
filepath = './tests/endwise/main.rs',
linenr = 5,
filetype = 'rust',
key = '<',
before = [[pub fn noop(_inp: Vec|) {]],
after = [[pub fn noop(_inp: Vec<|>) {]],
},
2021-04-21 07:39:36 +03:00
}
local run_data = _G.Test_filter(data)
local _, ts_utils = pcall(require, 'nvim-treesitter.ts_utils')
_G.TU = ts_utils
describe('[treesitter check]', function()
2021-12-26 11:18:37 +03:00
_G.Test_withfile(run_data, {
before_each = function(value)
npairs.setup({
check_ts = true,
ts_config = {
javascript = { 'template_string', 'comment' },
},
})
if value.setup_func then
value.setup_func()
end
end,
})
2021-04-21 07:39:36 +03:00
end)