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
|