diff options
| author | Aotrix <[email protected]> | 2026-06-23 20:53:47 +0200 |
|---|---|---|
| committer | Aotrix <[email protected]> | 2026-06-23 20:53:47 +0200 |
| commit | 402be24122cb615092ba77fcf75546371147a570 (patch) | |
| tree | 4d7a7be25b2527df39007b8fe9e7feab876384cf /lua/aotrix/build.lua | |
| parent | 4a4b1958dd16f31637346b22b6d44ede65586d7f (diff) | |
Able to delete commands
Diffstat (limited to 'lua/aotrix/build.lua')
| -rw-r--r-- | lua/aotrix/build.lua | 55 |
1 files changed, 46 insertions, 9 deletions
diff --git a/lua/aotrix/build.lua b/lua/aotrix/build.lua index f70f280..161abc1 100644 --- a/lua/aotrix/build.lua +++ b/lua/aotrix/build.lua @@ -50,6 +50,26 @@ local addCommandToJsonFile = function(commandBlock, commandsFilePath, directory) end end +local updateJsonFile = function(listOfCommands, commandsFilePath, directory) + local current_json = readJsonFromFile(commandsFilePath) + current_json[directory] = {} + for _, value in pairs(listOfCommands) do + table.insert(current_json[directory], { + command = tostring(value.command()), + description = tostring(value.description()) + }) + end + + local file, error = io.open(commandsFilePath, 'w') + if file then + local indent = vim.bo.expandtab and (' '):rep(vim.o.shiftwidth) or '\t' + file:write(vim.json.encode(current_json, {indent = indent})) + file:close() + else + print("Error in updateJsonFile: " .. error) + end +end + local appendCommandsFromFile = function(commands, commandsFilePath, directory) local current_list_of_commands_json = readJsonFromFile(commandsFilePath) if current_list_of_commands_json ~= nil and @@ -68,14 +88,6 @@ local COMMANDS = {} PERSONAL_COMMAND_JSON_PATH = data_path .. "/personal_commands.json" appendCommandsFromFile(COMMANDS, PERSONAL_COMMAND_JSON_PATH, vim.fn.getcwd()) local personalCommands = require("aotrix.personal_commands") - -vim.api.nvim_create_user_command("AddCommand", function() - local created_command = personalCommands.createCommand(COMMANDS) - addCommandToJsonFile(created_command, PERSONAL_COMMAND_JSON_PATH, - vim.fn.getcwd()) - CURRENT_COMMAND = created_command.command - executeCommandInTerminal(CURRENT_COMMAND) -end, {}) local selectCommand = function(listOfCommands, callback) vim.ui.select(vim.tbl_keys(listOfCommands), { prompt = "Select your command.", @@ -85,11 +97,36 @@ local selectCommand = function(listOfCommands, callback) }, function(choice) if (choice ~= nil) then CURRENT_COMMAND = listOfCommands[choice].command - callback() + callback(choice) end end) end +vim.api.nvim_create_user_command("AddCommand", function() + local created_command = personalCommands.createCommand(COMMANDS) + addCommandToJsonFile(created_command, PERSONAL_COMMAND_JSON_PATH, + vim.fn.getcwd()) + CURRENT_COMMAND = created_command.command + executeCommandInTerminal(CURRENT_COMMAND) +end, {}) + +vim.api.nvim_create_user_command("DeleteCommand", function() + local previous_command = CURRENT_COMMAND + selectCommand(COMMANDS, function(choice) + local index = 0 + for key, _ in pairs(COMMANDS) do + index = index + 1 + if key == choice then + COMMANDS[key] = nil + updateJsonFile(COMMANDS, PERSONAL_COMMAND_JSON_PATH, + vim.fn.getcwd()) + break + end + end + CURRENT_COMMAND = previous_command + end) +end, {}) + local executeCommand = function(listOfCommands) if (CURRENT_COMMAND == nil) then selectCommand(listOfCommands, |
