blob: 878bb7319a406446dc96d4c0feee70bb472c6232 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
local CURRENT_COMMAND = ""
---@param command string
---@return nil
function executeCommandInTerminal(command)
vim.cmd.term()
vim.cmd.startinsert()
local channel = vim.bo.channel
-- 'clear' is used to hide the command
local exit_message = "\nPress enter to exit..."
vim.api.nvim_chan_send(channel,
"clear && " .. command .. "; echo '" .. exit_message ..
"' && read -s && exit" .. "\n")
end
local COMMANDS = {}
local personalCommands = require("aotrix.personal_commands")
COMMANDS.AddTempCommand = {
command = function() personalCommands.createCommand(COMMANDS) end,
description = "Add temporary command"
}
function selectCommand(listOfCommands, callback)
vim.ui.select(vim.tbl_keys(listOfCommands), {
prompt = "Select your command.",
format_item = function(item)
return listOfCommands[item].description
end
}, function(choice)
if (choice ~= nil) then
CURRENT_COMMAND = listOfCommands[choice].command()
callback()
end
end)
end
function executeCommand(listOfCommands)
if (string.len(CURRENT_COMMAND) == 0) then
selectCommand(listOfCommands,
function()
executeCommandInTerminal(CURRENT_COMMAND)
end)
else
executeCommandInTerminal(CURRENT_COMMAND)
end
end
vim.keymap.set("n", "mc", function() executeCommand(COMMANDS) end)
vim.keymap.set("n", "mC", function()
selectCommand(COMMANDS,
function() executeCommandInTerminal(CURRENT_COMMAND) end)
end)
|