diff --git a/nvim/nvim/config/new/lua/build/adapters/dotnet.lua b/nvim/nvim/config/new/lua/build/adapters/dotnet.lua new file mode 100644 index 0000000..ed9c5bd --- /dev/null +++ b/nvim/nvim/config/new/lua/build/adapters/dotnet.lua @@ -0,0 +1,26 @@ +local Iterator = require "plenary.iterators" + +local M = {} + +M.pattern = "*.sln" + +M.list = function () + local projs = io.popen("dotnet sln list | tail -n +3") + local ret = Iterator.from_fun(projs:lines("a")) + :map(function(x) return {x:match("%\a+.csproj$"), x} end) + :tolistn() + projs:close() + return ret +end + +M.build = function () + return "dotnet build" +end + +M.errorformat = "" + +M.run = function (proj) + return "dotnet run --project " .. proj[2] +end + +return M diff --git a/nvim/nvim/config/new/lua/build/init.lua b/nvim/nvim/config/new/lua/build/init.lua new file mode 100644 index 0000000..7fb30c5 --- /dev/null +++ b/nvim/nvim/config/new/lua/build/init.lua @@ -0,0 +1,22 @@ +local Iterator = require "plenary.iterators" + +local M = { + adapters = {}, +} + +table.insert(M.adapters, require "build.adapters.dotnet") + +M.list_projs = function () +end + +M.select_proj = function () + local projs = M.list_projs() + vim.ui.select(projs, { + prompt = "Select a project", + }, function (proj) + + end) +end + + +return M