[mirror] Make your go dev experience better github.com/olexsmir/gopher.nvim
neovim golang
1local base_dir = vim.env.GOPHER_DIR or vim.fn.expand "%:p:h" 2 3---@class gopher.TestUtils 4local testutils = {} 5 6testutils.mininit_path = vim.fs.joinpath(base_dir, "scripts", "minimal_init.lua") 7testutils.fixtures_dir = vim.fs.joinpath(base_dir, "spec/fixtures") 8 9---@generic T 10---@param a T 11---@param b T 12---@return boolean 13function testutils.eq(a, b) 14 return MiniTest.expect.equality(a, b) 15end 16 17---@return string 18function testutils.tmpfile() 19 return vim.fn.tempname() .. ".go" 20end 21 22---@param path string 23---@return string 24function testutils.readfile(path) 25 return vim.fn.join(vim.fn.readfile(path), "\n") 26end 27 28---@param fpath string 29---@param contents string 30function testutils.writefile(fpath, contents) 31 vim.fn.writefile(vim.split(contents, "\n"), fpath) 32end 33 34---@param fpath string 35function testutils.deletefile(fpath) 36 vim.fn.delete(fpath) 37end 38 39---@param fixture string 40---@return {input: string, output: string} 41function testutils.get_fixtures(fixture) 42 return { 43 input = testutils.readfile(vim.fs.joinpath(testutils.fixtures_dir, fixture) .. "_input.go"), 44 output = testutils.readfile(vim.fs.joinpath(testutils.fixtures_dir, fixture) .. "_output.go"), 45 } 46end 47 48return testutils