[mirror] Make your go dev experience better github.com/olexsmir/gopher.nvim
neovim golang

feat: run tests independent from user's nvim config

+2 -1
.gitignore
··· 1 - playground/ 1 + /playground/ 2 + /.tests/
+1 -1
Taskfile.yml
··· 23 23 cmds: 24 24 - | 25 25 nvim --headless \ 26 - -u ./spec/minimal_init.vim\ 26 + -u ./spec/minimal_init.lua\ 27 27 -c "PlenaryBustedDirectory spec \ 28 28 {minimal_init='./spec/minimal_init.lua'\ 29 29 ,sequential=true}"
+33
spec/minimal_init.lua
··· 1 + local function root(p) 2 + local f = debug.getinfo(1, "S").source:sub(2) 3 + return vim.fn.fnamemodify(f, ":p:h:h") .. "/" .. (p or "") 4 + end 5 + 6 + local function install_plug(plugin) 7 + local name = plugin:match ".*/(.*)" 8 + local package_root = root ".tests/site/pack/deps/start/" 9 + if not vim.loop.fs_stat(package_root .. name) then 10 + print("Installing " .. plugin) 11 + vim.fn.mkdir(package_root, "p") 12 + vim.fn.system { 13 + "git", 14 + "clone", 15 + "--depth=1", 16 + "https://github.com/" .. plugin .. ".git", 17 + package_root .. "/" .. name, 18 + } 19 + end 20 + end 21 + 22 + vim.cmd [[set runtimepath=$VIMRUNTIME]] 23 + vim.opt.runtimepath:append(root()) 24 + vim.opt.packpath = { root ".tests/site" } 25 + vim.notify = print 26 + 27 + install_plug "nvim-lua/plenary.nvim" 28 + install_plug "nvim-treesitter/nvim-treesitter" 29 + 30 + vim.env.XDG_CONFIG_HOME = root ".tests/config" 31 + vim.env.XDG_DATA_HOME = root ".tests/data" 32 + vim.env.XDG_STATE_HOME = root ".tests/state" 33 + vim.env.XDG_CACHE_HOME = root ".tests/cache"
-4
spec/minimal_init.vim
··· 1 - set rtp+=. 2 - packadd plenary.nvim 3 - packadd nvim-treesitter 4 - packadd nvim-dap