diff --git a/lua/plugins/neorg.lua b/lua/plugins/neorg.lua index 7943a4b..cd9e598 100644 --- a/lua/plugins/neorg.lua +++ b/lua/plugins/neorg.lua @@ -12,13 +12,14 @@ return { local src = data .. "/site/pack/core/opt/tree-sitter-norg" local src_meta = data .. "/site/pack/core/opt/tree-sitter-norg-meta" local parser_dir = data .. "/site/parser" + vim.fn.mkdir(parser_dir, "p") + local out = parser_dir .. "/norg.so" local out_meta = parser_dir .. "/norg_meta.so" if not vim.uv.fs_stat(out) and vim.uv.fs_stat(src) then - -- not already built, and present - vim.fn.mkdir(parser_dir, "p") + -- not already built, and src present local result = vim.system({ "nix", "build" }, { cwd = src }):wait() if result.code == 0 then vim.system({ "cp", "result/lib/lua/5.1/parser/norg.so", out }, { cwd = src }):wait() @@ -26,7 +27,10 @@ return { vim.notify("failed to run nix build for norg treesitter, got result " .. tostring(result), vim.log.levels.ERROR) end - result = vim.system({ "nix", "build" }, { cwd = src_meta }):wait() + end + if not vim.uv.fs_stat(out_meta) and vim.uv.fs_stat(src_meta) then + -- not already built, and src present + local result = vim.system({ "nix", "build" }, { cwd = src_meta }):wait() if result.code == 0 then vim.system({ "cp", "result/parser", out_meta }, { cwd = src_meta }):wait() else