diff options
| author | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2025-06-19 18:34:13 +0900 |
|---|---|---|
| committer | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2025-06-19 18:34:13 +0900 |
| commit | 307fceea38b7352a79b0bdb87025a34b76973867 (patch) | |
| tree | 382eb3e6a11973bc2c6ba33eee14d43ec2a9566b /ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/image.lua | |
| parent | b66f68b8c014a3041c936ee9de1b57db5bcb50fb (diff) | |
updates
Diffstat (limited to 'ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/image.lua')
| -rw-r--r-- | ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/image.lua | 210 |
1 files changed, 0 insertions, 210 deletions
diff --git a/ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/image.lua b/ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/image.lua deleted file mode 100644 index a117e28..0000000 --- a/ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/image.lua +++ /dev/null @@ -1,210 +0,0 @@ -return { - "HakonHarnes/img-clip.nvim", - event = "VeryLazy", - opts = { - -- add options here - -- or leave it empty to use the default settings - }, - config = function(_, opts) - require("img-clip").setup(opts) - - vim.keymap.set({ "n", "v", "i" }, "<M-i>", function() - local pasted_image = require("img-clip").paste_image() - if pasted_image then - -- "Update" saves only if the buffer has been modified since the last save - vim.cmd("silent! update") - -- Get the current line - local line = vim.api.nvim_get_current_line() - -- Move cursor to end of line - vim.api.nvim_win_set_cursor(0, { vim.api.nvim_win_get_cursor(0)[1], #line }) - -- I reload the file, otherwise I cannot view the image after pasted - vim.cmd("edit!") - end - end, { desc = "Paste image from clipboard" }) - - vim.keymap.set("n", "<leader>oi", function() - local function get_image_path() - -- Get the current line - local line = vim.api.nvim_get_current_line() - -- Patterns to match image paths - local patterns = { - "%[.-%]%((.-)%)", -- Markdown style:  - "%[%[(.-)%]%]", -- Double square brackets: [[image_path]] - } - - for _, pattern in ipairs(patterns) do - local _, _, image_path = string.find(line, pattern) - if image_path then - return image_path - end - end - - return nil -- Return nil if no pattern matches - end - - local function file_exists(filepath) - -- Check if the file exists - local f = io.open(filepath, "r") - if f then - f:close() - return true - end - return false - end - - -- Get the image path - local image_path = get_image_path() - if image_path then - -- Check if the image path starts with "http" or "https" - if string.sub(image_path, 1, 4) == "http" then - print("URL image, use 'gx' to open it in the default browser.") - else - -- Construct absolute image path - local current_file_path = vim.fn.expand("%:p:h") - local absolute_image_path = current_file_path .. "/" .. image_path - -- Check if the image exists in the current path - if not file_exists(absolute_image_path) then - -- If not found, search ../Screenshots/ - local fallback_path = vim.fn.fnamemodify(current_file_path, ":h") - .. "/Screenshots/" - .. image_path - if file_exists(fallback_path) then - absolute_image_path = fallback_path - else - print("Image not found in either current directory or ../Screenshots/") - return - end - end - -- Construct command to open image in Preview - local command = "nsxiv -aiop " .. vim.fn.shellescape(absolute_image_path) - -- Execute the command - local success = os.execute(command) - if success then - print("Opened image: " .. absolute_image_path) - else - print("Failed to open image: " .. absolute_image_path) - end - end - else - print("No image found under the cursor") - end - end, { desc = "Open image under cursor" }) - - vim.keymap.set("n", "<leader>di", function() - local function get_image_path() - local line = vim.api.nvim_get_current_line() - -- Patterns to match image paths - local patterns = { - "%[.-%]%((.-)%)", -- Markdown style:  - "%[%[(.-)%]%]", -- Double square brackets: [[image_path]] - } - - for _, pattern in ipairs(patterns) do - local _, _, image_path = string.find(line, pattern) - if image_path then - return image_path - end - end - - return nil -- Return nil if no pattern matches - end - - local function file_exists(filepath) - local f = io.open(filepath, "r") - if f then - f:close() - return true - end - return false - end - - local image_path = get_image_path() - if image_path then - if string.sub(image_path, 1, 4) == "http" then - vim.api.nvim_echo({ { "URL image cannot be deleted from disk.", "WarningMsg" } }, false, {}) - return - end - - local current_file_path = vim.fn.expand("%:p:h") - local absolute_image_path = current_file_path .. "/" .. image_path - - -- Check if file exists - if not file_exists(absolute_image_path) then - -- Search fallback directory - local fallback_path = vim.fn.fnamemodify(current_file_path, ":h") .. "/Screenshots/" .. image_path - if file_exists(fallback_path) then - absolute_image_path = fallback_path - else - print("Image not found in either current directory or ../Screenshots/") - return - end - end - - -- Verify if trash utility exists - if vim.fn.executable("trash") == 0 then - vim.api.nvim_echo({ - { "- Trash utility not installed. Install `trash-cli`.\n", "ErrorMsg" }, - }, false, {}) - return - end - - vim.ui.select({ "yes", "no" }, { prompt = "Delete image file? " }, function(choice) - if choice == "yes" then - -- Attempt to delete using trash - local command = { "trash", absolute_image_path } - local success, err = pcall(vim.fn.system, command) - - -- Debug message for troubleshooting - print("Debug: Trash command -", table.concat(command, " ")) - - if success and vim.fn.filereadable(absolute_image_path) == 0 then - vim.api.nvim_echo({ - { "Image file deleted using trash:\n", "Normal" }, - { absolute_image_path, "Normal" }, - }, false, {}) - require("image").clear() - vim.cmd("edit!") - vim.cmd("normal! dd") - else - -- If trash fails, log the error - vim.api.nvim_echo({ - { "Trash deletion failed. Error:\n", "ErrorMsg" }, - { err or "Unknown error", "ErrorMsg" }, - }, false, {}) - end - else - vim.api.nvim_echo({ { "Image deletion canceled.", "Normal" } }, false, {}) - end - end) - else - print("No image found under the cursor") - end - end, { desc = "Delete image file under cursor" }) - - -- Refresh the images in the current buffer - -- Useful if you delete an actual image file and want to see the changes - -- without having to re-open neovim - vim.keymap.set("n", "<leader>ir", function() - -- First I clear the images - require("image").clear() - -- I'm using [[ ]] to escape the special characters in a command - -- vim.cmd([[lua require("image").clear()]]) - -- Reloads the file to reflect the changes - vim.cmd("edit!") - print("Images refreshed") - end, { desc = "Refresh images" }) - - -- Set up a keymap to clear all images in the current buffer - vim.keymap.set("n", "<leader>ic", function() - -- This is the command that clears the images - require("image").clear() - -- I'm using [[ ]] to escape the special characters in a command - -- vim.cmd([[lua require("image").clear()]]) - print("Images cleared") - end, { desc = "Clear images" }) - end, - keys = { - -- suggested keymap - { "<leader>pi", "<cmd>PasteImage<cr>", desc = "Paste image from clipboard" }, - }, -} |
