summaryrefslogtreecommitdiff
path: root/lua/nvim-treesitter/test_utils.lua
blob: e3206b7dd522508e91fa50b190aee683376c3e05 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
local M = {}

function M.indent_whole_file(file)
  assert.are.same(1, vim.fn.filereadable(file))

  -- load reference file
  vim.cmd(string.format('edit %s', file))
  local reference = vim.api.nvim_buf_get_lines(0, 0, -1, true)

  -- FIXME: why this is not set automatically?
  vim.bo.indentexpr = 'nvim_treesitter#indent()'
  assert.are.same('nvim_treesitter#indent()', vim.bo.indentexpr)

  -- indent the whole file
  vim.cmd 'normal gg=G'
  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)'
  vim.cmd 'edit!'

  -- compare before and after
  assert.are.same(reference, indented)
end

return M