diff options
| author | Christian Clason <c.clason@uni-graz.at> | 2023-06-12 09:54:30 -0600 |
|---|---|---|
| committer | Christian Clason <c.clason@uni-graz.at> | 2025-05-12 18:43:40 +0200 |
| commit | 692b051b09935653befdb8f7ba8afdb640adf17b (patch) | |
| tree | 167162b6b129ae04f68c5735078521a72917c742 /tests/indent/common.lua | |
| parent | feat(c-family): inherit injections (diff) | |
| download | nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.gz nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.bz2 nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.lz nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.xz nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.zst nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.zip | |
feat!: drop modules, general refactor and cleanup
Diffstat (limited to 'tests/indent/common.lua')
| -rw-r--r-- | tests/indent/common.lua | 79 |
1 files changed, 41 insertions, 38 deletions
diff --git a/tests/indent/common.lua b/tests/indent/common.lua index 6cfedafff..5c291070e 100644 --- a/tests/indent/common.lua +++ b/tests/indent/common.lua @@ -1,11 +1,11 @@ local M = {} -local assert = require "luassert" -local say = require "say" -local scan_dir = require("plenary.scandir").scan_dir -local Path = require "plenary.path" +local assert = require('luassert') +local say = require('say') +local scan_dir = require('plenary.scandir').scan_dir +local Path = require('plenary.path') -M.XFAIL = "xfail" +M.XFAIL = 'xfail' local function same_indent(state, arguments) local before = arguments[1] @@ -14,11 +14,11 @@ local function same_indent(state, arguments) local ok = true local errors = { before = {}, after = {} } for line = 1, #before do - if #string.match(before[line], "^%s*") ~= #string.match(after[line], "^%s*") then + if #string.match(before[line], '^%s*') ~= #string.match(after[line], '^%s*') then if before[line] and after[line] then -- store the actual indentation length for each line - errors.before[line] = #string.match(before[line], "^%s*") - errors.after[line] = #string.match(after[line], "^%s*") + errors.before[line] = #string.match(before[line], '^%s*') + errors.after[line] = #string.match(after[line], '^%s*') end ok = false end @@ -42,39 +42,39 @@ local function format_indent(arg, fmtargs) end width = width + 3 - local header_fmt = "%8s %2s%-" .. tostring(width + 1) .. "s %s" - local fmt = "%8s %2s |%-" .. tostring(width) .. "s |%s" + local header_fmt = '%8s %2s%-' .. tostring(width + 1) .. 's %s' + local fmt = '%8s %2s |%-' .. tostring(width) .. 's |%s' - local output = { header_fmt:format("", "", "Found:", "Expected:") } + local output = { header_fmt:format('', '', 'Found:', 'Expected:') } for i, line in ipairs(arg) do if fmtargs.errors.before[i] then - local indents = string.format("%d vs %d", fmtargs.errors.after[i], fmtargs.errors.before[i]) - table.insert(output, fmt:format(indents, "=>", fmtargs.other[i], line)) + local indents = string.format('%d vs %d', fmtargs.errors.after[i], fmtargs.errors.before[i]) + table.insert(output, fmt:format(indents, '=>', fmtargs.other[i], line)) else - table.insert(output, fmt:format("", "", fmtargs.other[i], line)) + table.insert(output, fmt:format('', '', fmtargs.other[i], line)) end end - return table.concat(output, "\n") + return table.concat(output, '\n') end -say:set_namespace "en" -say:set("assertion.same_indent.positive", "Incorrect indentation\n%s") -say:set("assertion.same_indent.negative", "Incorrect indentation\n%s") +say:set_namespace('en') +say:set('assertion.same_indent.positive', 'Incorrect indentation\n%s') +say:set('assertion.same_indent.negative', 'Incorrect indentation\n%s') assert:register( - "assertion", - "same_indent", + 'assertion', + 'same_indent', same_indent, - "assertion.same_indent.positive", - "assert.same_indent.negative" + 'assertion.same_indent.positive', + 'assert.same_indent.negative' ) -- Custom assertion better suited for indentation diffs local function compare_indent(before, after, xfail) assert:add_formatter(format_indent) if xfail then - io.stdout:write "Warning! Known failure of this test! Please help to fix it! " + io.stdout:write('Warning! Known failure of this test! Please help to fix it! ') assert.is_not.same_indent(before, after) else assert.is.same_indent(before, after) @@ -83,7 +83,8 @@ local function compare_indent(before, after, xfail) end local function set_buf_indent_opts(opts) - local optnames = { "tabstop", "shiftwidth", "softtabstop", "expandtab", "filetype", "lispoptions" } + local optnames = + { 'tabstop', 'shiftwidth', 'softtabstop', 'expandtab', 'filetype', 'lispoptions' } for _, opt in ipairs(optnames) do if opts[opt] ~= nil then vim.bo[opt] = opts[opt] @@ -95,11 +96,11 @@ function M.run_indent_test(file, runner, opts) assert.are.same(1, vim.fn.filereadable(file), string.format('File "%s" not readable', file)) -- load reference file - vim.cmd(string.format("edit %s", file)) - vim.bo.indentexpr = "nvim_treesitter#indent()" + vim.cmd(string.format('edit %s', file)) + vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()" local before = vim.api.nvim_buf_get_lines(0, 0, -1, true) - assert.are.same("nvim_treesitter#indent()", vim.bo.indentexpr) + assert.are.same("v:lua.require'nvim-treesitter'.indentexpr()", vim.bo.indentexpr) set_buf_indent_opts(opts) -- perform the test @@ -109,14 +110,14 @@ function M.run_indent_test(file, runner, opts) local after = vim.api.nvim_buf_get_lines(0, 0, -1, true) -- clear any changes to avoid 'No write since last change (add ! to override)' - vim.cmd "edit!" + vim.cmd('edit!') return before, after end function M.indent_whole_file(file, opts, xfail) local before, after = M.run_indent_test(file, function() - vim.cmd "silent normal gg=G" + vim.cmd('silent normal gg=G') end, opts) compare_indent(before, after, xfail) @@ -132,22 +133,24 @@ end function M.indent_new_line(file, spec, opts, xfail) local before, after = M.run_indent_test(file, function() -- move to the line and input the new one - vim.cmd(string.format("normal! %dG", spec.on_line)) - vim.cmd(string.format("normal! o%s", spec.text)) + vim.cmd(string.format('normal! %dG', spec.on_line)) + vim.cmd(string.format('normal! o%s', spec.text)) end, opts) - local indent = type(spec.indent) == "string" and spec.indent or string.rep(" ", spec.indent) + local indent = type(spec.indent) == 'string' and spec.indent or string.rep(' ', spec.indent) table.insert(before, spec.on_line + 1, indent .. spec.text) compare_indent(before, after, xfail) before, after = M.run_indent_test(file, function() -- move to the line and input the new one - vim.cmd(string.format("normal! %dG$", spec.on_line)) - vim.cmd(string.format(vim.api.nvim_replace_termcodes("normal! a<cr>%s", true, true, true), spec.text)) + vim.cmd(string.format('normal! %dG$', spec.on_line)) + vim.cmd( + string.format(vim.api.nvim_replace_termcodes('normal! a<cr>%s', true, true, true), spec.text) + ) end, opts) - indent = type(spec.indent) == "string" and spec.indent or string.rep(" ", spec.indent) + indent = type(spec.indent) == 'string' and spec.indent or string.rep(' ', spec.indent) table.insert(before, spec.on_line + 1, indent .. spec.text) compare_indent(before, after, xfail) @@ -174,13 +177,13 @@ function Runner:whole_file(dirs, opts) expected_failures = vim.tbl_map(function(f) return Path:new(f):make_relative(self.base_dir.filename) end, expected_failures) - dirs = type(dirs) == "table" and dirs or { dirs } + dirs = type(dirs) == 'table' and dirs or { dirs } dirs = vim.tbl_map(function(dir) dir = self.base_dir / Path:new(dir) assert.is.same(1, vim.fn.isdirectory(dir.filename)) return dir.filename end, dirs) - local files = require("nvim-treesitter.compat").flatten(vim.tbl_map(scan_dir, dirs)) + local files = require('nvim-treesitter.compat').flatten(vim.tbl_map(scan_dir, dirs)) for _, file in ipairs(files) do local relpath = Path:new(file):make_relative(self.base_dir.filename) self.it(relpath, function() @@ -191,7 +194,7 @@ end function Runner:new_line(file, spec, title, xfail) title = title and title or tostring(spec.on_line) - self.it(string.format("%s[%s]", file, title), function() + self.it(string.format('%s[%s]', file, title), function() local path = self.base_dir / file M.indent_new_line(path.filename, spec, self.buf_opts, xfail) end) |
