mirror of
https://github.com/nvim-treesitter/nvim-treesitter.git
synced 2026-07-12 00:10:04 -04:00
tests/indent: add basic examples for C and Rust
This commit is contained in:
parent
67f2c7149c
commit
4454459fb2
7 changed files with 80 additions and 3 deletions
|
|
@ -1,6 +1,15 @@
|
||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
function M.indent_whole_file(file)
|
function M.set_buf_indent_opts(opts)
|
||||||
|
local optnames = {'tabstop', 'shiftwidth', 'softtabstop', 'expandtab'}
|
||||||
|
for _, opt in ipairs(optnames) do
|
||||||
|
if opts[opt] ~= nil then
|
||||||
|
vim.bo[opt] = opts[opt]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.indent_whole_file(file, opts)
|
||||||
assert.are.same(1, vim.fn.filereadable(file))
|
assert.are.same(1, vim.fn.filereadable(file))
|
||||||
|
|
||||||
-- load reference file
|
-- load reference file
|
||||||
|
|
@ -11,8 +20,10 @@ function M.indent_whole_file(file)
|
||||||
vim.bo.indentexpr = 'nvim_treesitter#indent()'
|
vim.bo.indentexpr = 'nvim_treesitter#indent()'
|
||||||
assert.are.same('nvim_treesitter#indent()', vim.bo.indentexpr)
|
assert.are.same('nvim_treesitter#indent()', vim.bo.indentexpr)
|
||||||
|
|
||||||
|
M.set_buf_indent_opts(opts)
|
||||||
|
|
||||||
-- indent the whole file
|
-- indent the whole file
|
||||||
vim.cmd 'normal gg=G'
|
vim.cmd 'silent normal gg=G'
|
||||||
local indented = vim.api.nvim_buf_get_lines(0, 0, -1, true)
|
local indented = vim.api.nvim_buf_get_lines(0, 0, -1, true)
|
||||||
|
|
||||||
-- clear any changes to avoid 'No write since last change (add ! to override)'
|
-- clear any changes to avoid 'No write since last change (add ! to override)'
|
||||||
|
|
|
||||||
11
lua/tests/indent/c/basic.c
Normal file
11
lua/tests/indent/c/basic.c
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
int foo(int x)
|
||||||
|
{
|
||||||
|
if (x > 10) {
|
||||||
|
return x;
|
||||||
|
} else {
|
||||||
|
while (x > 0) {
|
||||||
|
x--;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
6
lua/tests/indent/c/no_braces.c
Normal file
6
lua/tests/indent/c/no_braces.c
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
int foo(int x) {
|
||||||
|
if (x > 10)
|
||||||
|
return 10;
|
||||||
|
else
|
||||||
|
return x;
|
||||||
|
}
|
||||||
18
lua/tests/indent/c_spec.lua
Normal file
18
lua/tests/indent/c_spec.lua
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
local whole_file = require('nvim-treesitter.test_utils').indent_whole_file
|
||||||
|
|
||||||
|
describe('indent C', function()
|
||||||
|
local files = {
|
||||||
|
'basic.c',
|
||||||
|
'no_braces.c',
|
||||||
|
}
|
||||||
|
for _, file in ipairs(files) do
|
||||||
|
it(file, function()
|
||||||
|
whole_file('lua/tests/indent/c/' .. file, {
|
||||||
|
tabstop = 4,
|
||||||
|
shiftwidth = 4,
|
||||||
|
softtabstop = 0,
|
||||||
|
expandtab = true,
|
||||||
|
})
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
@ -14,6 +14,13 @@ describe('indent python', function()
|
||||||
'strings.py',
|
'strings.py',
|
||||||
}
|
}
|
||||||
for _, file in ipairs(files) do
|
for _, file in ipairs(files) do
|
||||||
it(file, function() whole_file('lua/tests/indent/python/' .. file) end)
|
it(file, function()
|
||||||
|
whole_file('lua/tests/indent/python/' .. file, {
|
||||||
|
tabstop = 4,
|
||||||
|
shiftwidth = 4,
|
||||||
|
softtabstop = 0,
|
||||||
|
expandtab = true,
|
||||||
|
})
|
||||||
|
end)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
|
||||||
7
lua/tests/indent/rust/basic.rs
Normal file
7
lua/tests/indent/rust/basic.rs
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
fn foo(x: i32) {
|
||||||
|
if (x > 10) {
|
||||||
|
return 10;
|
||||||
|
} else {
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
}
|
||||||
17
lua/tests/indent/rust_spec.lua
Normal file
17
lua/tests/indent/rust_spec.lua
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
local whole_file = require('nvim-treesitter.test_utils').indent_whole_file
|
||||||
|
|
||||||
|
describe('indent rust', function()
|
||||||
|
local files = {
|
||||||
|
'basic.rs',
|
||||||
|
}
|
||||||
|
for _, file in ipairs(files) do
|
||||||
|
it(file, function()
|
||||||
|
whole_file('lua/tests/indent/rust/' .. file, {
|
||||||
|
tabstop = 4,
|
||||||
|
shiftwidth = 4,
|
||||||
|
softtabstop = 0,
|
||||||
|
expandtab = true,
|
||||||
|
})
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end)
|
||||||
Loading…
Add table
Add a link
Reference in a new issue