local function ToggleTabs()
|
|
local options = { "tabstop", "softtabstop", "shiftwidth" }
|
|
|
|
for _, option in ipairs(options) do
|
|
local current_value = vim.opt[option]:get()
|
|
vim.opt[option] = (current_value == 4) and 2 or 4
|
|
end
|
|
end
|
|
|
|
vim.api.nvim_create_user_command("ToggleTabs", ToggleTabs, { nargs = 0 })
|
|
|
|
vim.api.nvim_create_user_command("ToggleDiagnostics", function()
|
|
if vim.g.diagnostics_enable == nil or vim.g.diagnostics_enable then
|
|
vim.g.diagnostics_enable = false
|
|
vim.diagnostic.enable(false)
|
|
return
|
|
end
|
|
|
|
vim.g.diagnostics_enable = true
|
|
vim.diagnostic.enable(true)
|
|
end, {})
|
|
|
|
vim.api.nvim_create_user_command("ClearBuffers", function()
|
|
vim.cmd('%bd|e#|bd#')
|
|
end, {})
|
|
|
|
|
|
local function load_env_file()
|
|
local env_file_path = vim.fn.getcwd() .. "/.env" -- Construct the path relative to the current working directory
|
|
local env_file = io.open(env_file_path, "r") -- Open the .env file
|
|
|
|
if not env_file then
|
|
print("Could not open .env file")
|
|
return
|
|
end
|
|
|
|
for line in env_file:lines() do
|
|
local key, value = line:match("^(%S+)=(%S+)")
|
|
if key and value then
|
|
vim.env[key] = value
|
|
end
|
|
end
|
|
env_file:close()
|
|
end
|
|
|
|
local function sync_file_to_sftp()
|
|
load_env_file()
|
|
|
|
-- Get SFTP credentials from environment variables
|
|
local sftp_user = os.getenv("SFTP_USER")
|
|
local sftp_host = os.getenv("SFTP_HOST")
|
|
local sftp_port = os.getenv("SFTP_PORT")
|
|
local sftp_password = os.getenv("SFTP_PASSWORD")
|
|
local sftp_theme_directory = os.getenv("SFTP_THEME_DIRECTORY")
|
|
|
|
local current_file = vim.fn.expand("%:p") -- Get the full path of the current file
|
|
|
|
-- Define your project root path
|
|
local project_root = vim.fn.getcwd() -- Current working directory where Neovim was launched
|
|
local relative_path = current_file:sub(#project_root + 1)
|
|
|
|
-- Construct the full remote path
|
|
local remote_path = sftp_theme_directory .. relative_path -- Append the relative path to the remote base path
|
|
|
|
-- Command to sync the file using lftp
|
|
local lftp_cmd = string.format(
|
|
"lftp -u %s,%s sftp://%s:%s -e 'put %s -o %s; bye' > /dev/null 2>&1",
|
|
sftp_user,
|
|
sftp_password,
|
|
sftp_host,
|
|
sftp_port,
|
|
current_file,
|
|
remote_path
|
|
)
|
|
|
|
-- Execute the command
|
|
os.execute(lftp_cmd)
|
|
print("File synced to SFTP server: " .. remote_path)
|
|
end
|
|
|
|
-- Map the function to a command in Neovim
|
|
vim.api.nvim_create_user_command("SyncToNeto", sync_file_to_sftp, {})
|