![[neovim-shopping.webp|cover-picture]] [[Neovimプラグイン]]でバグなどを発見しIssueで報告するときに再現確認するための方法。[[👤Folke Lematire]]氏のIssue templateで採用されている方法を利用する。 ## ディレクトリの作成 確認用のsandboxディレクトリを適当に作成する。 ```console mkdir nvim-sandbox cd nvim-sandbox ``` ## repro.luaの作成 `repro.lua`を作成する。 ```lua -- ./.repro の絶対パスをrootに代入 local root = vim.fn.fnamemodify("./.repro", ":p") -- .configなどデフォルトで~/.configに向いているパス設定を./.repro配下にする for _, name in ipairs({ "config", "data", "state", "cache" }) do vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name end -- lazy.nvimを .repro/plugins 配下にインストール local lazypath = root .. "/plugins/lazy.nvim" if not vim.loop.fs_stat(lazypath) then vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath }) end vim.opt.runtimepath:prepend(lazypath) -- lazy.nvimでプラグインをインストール local plugins = { -- Folke氏のプラグインに報告するときには必要だが、そうでなければ任意 "folke/tokyonight.nvim", -- 再現報告したいプラグインの設定はこの下 } require("lazy").setup(plugins, { root = root .. "/plugins", }) -- Folke氏のプラグインに報告するときには必要だが、そうでなければ任意 vim.cmd.colorscheme("tokyonight") ``` > [!info] > XDGからはじまる環境変数定義は [[XDG Base Directory]] を参照。 ## 起動 `-u`オプションで`repro.lua`を指定して起動する。 ```console nvim -u repro.lua ``` 初回だけ[[lazy.nvim]]がインストールされ、依存する[[Neovimプラグイン]]もインストールされている。あとは再現確認をするだけ。