runner.nvim/lua/runner/handlers/languages/rust/init.lua

47 lines
1.1 KiB
Lua

local helpers = require('runner.handlers.helpers')
local utils = require('runner.handlers.utils')
return function(buffer)
utils.run_command(utils.script_path() .. "get-bins.sh", function(output)
local bins = {}
for _, line in pairs(output) do
for _, data in pairs(line) do
if vim.trim(data) ~= "" then
bins[#bins + 1] = data
end
end
end
local run_handlers = {}
for _, bin in pairs(bins) do
run_handlers['Run "' .. bin .. '"'] = helpers.shell_handler("cargo run --bin " .. bin)
end
utils.run_command(utils.script_path() .. "get-tests.sh", function(output)
local bins = {}
for _, line in pairs(output) do
for _, data in pairs(line) do
if vim.trim(data) ~= "" then
bins[#bins + 1] = data
end
end
end
local handlers = {
unpack(run_handlers),
["Custom"] = helpers.shell_handler("cargo ", true),
["Test all"] = helpers.shell_handler("cargo test"),
}
for _, bin in pairs(bins) do
handlers['Test "' .. bin .. '"'] = helpers.shell_handler("cargo test --test " .. bin)
end
helpers.choice(handlers)(buffer)
end)
end)
end