SexNvim/lua/config/cigan.lua

63 lines
2.6 KiB
Lua
Raw Normal View History

2025-04-10 22:48:33 +03:00
vim.api.nvim_set_keymap("n", "<leader><Enter>", ":lua SaveAndRunScript()<CR>", { noremap = true, silent = true })
function SaveAndRunScript()
-- Проверяем, что открыт именно буфер ~/cigan/ui.md
local current_buf = vim.api.nvim_buf_get_name(0)
local target_file = vim.fn.expand("~/desktop/govno/ui.md")
if current_buf ~= target_file then
vim.notify("Ошибка: Открыт не файл ~/desktop/govno/ui.md", vim.log.levels.ERROR)
return
end
-- Сохраняем изменения в текущем файле
vim.cmd("write")
2025-04-15 20:44:47 +03:00
vim.notify("Файл сохранен.", vim.log.levels.INFO)
2025-04-10 22:48:33 +03:00
-- Запускаем скрипт ~/cigan/interface.py асинхронно
local script_path = vim.fn.expand("~/dev/cigan/interface.py")
2025-04-15 20:44:47 +03:00
vim.notify("Запуск скрипта: " .. script_path, vim.log.levels.INFO)
2025-04-10 22:48:33 +03:00
vim.fn.jobstart("bash " .. script_path, {
2025-04-15 20:44:47 +03:00
on_stdout = function(_, data)
vim.notify("STDOUT: " .. table.concat(data, "\n"), vim.log.levels.INFO)
end,
on_stderr = function(_, data)
vim.notify("STDERR: " .. table.concat(data, "\n"), vim.log.levels.ERROR)
end,
2025-04-10 22:48:33 +03:00
on_exit = function(_, exit_code)
if exit_code ~= 0 then
2025-04-15 20:44:47 +03:00
vim.notify("Ошибка при выполнении скрипта. Код выхода: " .. exit_code, vim.log.levels.ERROR)
2025-04-10 22:48:33 +03:00
return
end
-- Обновляем буфер ~/cigan/ui.md и переходим в конец файла
vim.cmd("edit")
2025-04-15 20:44:47 +03:00
vim.cmd('echo "Сгенерировано!"')
2025-04-10 22:48:33 +03:00
end,
})
end
vim.api.nvim_set_keymap('n', '<leader>y', ':lua CheckBufferAndRun()<CR>', { noremap = true, silent = false })
function CheckBufferAndRun()
-- Получаем полный путь к текущему файлу
local current_file = vim.fn.expand('%:p')
-- Путь к целевому файлу
local target_file = vim.fn.expand('~/desktop/govno/ui.md')
-- Проверяем, совпадает ли текущий файл с целевым
if current_file == target_file then
-- Выполняем скрипт на удаленном сервере через SSH
vim.cmd('!ssh xer@dev "~/cigan/new_chat.sh"')
vim.cmd('echo "Новый чат создан!"')
else
-- Выводим сообщение об ошибке
vim.cmd('echo "Ошибка: Эта команда работает только в файле ~/desktop/govno/ui.md"')
end
end