diff --git a/lua/pika/plugins/explorer.lua b/lua/pika/plugins/explorer.lua index 22b181a..47237a3 100644 --- a/lua/pika/plugins/explorer.lua +++ b/lua/pika/plugins/explorer.lua @@ -12,37 +12,72 @@ return { -- vim.keymap.set("n", "e", ":Neotree toggle"), -- }, + ---@type LazySpec { - "kelly-lin/ranger.nvim", - config = function() - local ranger_nvim = require("ranger-nvim") - ranger_nvim.setup({ - enable_cmds = false, - replace_netrw = false, - keybinds = { - [""] = ranger_nvim.OPEN_MODE.vsplit, - [""] = ranger_nvim.OPEN_MODE.split, - ["ot"] = ranger_nvim.OPEN_MODE.tabedit, - ["or"] = ranger_nvim.OPEN_MODE.rifle, - }, - ui = { - border = "none", - height = 0.7, - width = 0.7, - x = 0.5, - y = 0.5, - }, - }) - require("ranger-nvim").setup({ replace_netrw = true }) - vim.api.nvim_set_keymap("n", "lf", "", { - noremap = true, - callback = function() - require("ranger-nvim").open(true) - end, - }) - end, + "mikavilpas/yazi.nvim", + event = "VeryLazy", + keys = { + -- 👇 in this section, choose your own keymappings! + -- { + -- "lf", + -- "Yazi", + -- desc = "Open yazi at the current file", + -- }, + -- { + -- -- Open in the current working directory + -- "-", + -- "Yazi cwd", + -- desc = "Open the file manager in nvim's working directory", + -- }, + { + -- NOTE: this requires a version of yazi that includes + -- https://github.com/sxyazi/yazi/pull/1305 from 2024-07-18 + "lf", + "Yazi toggle", + desc = "Resume the last yazi session", + }, + }, + ---@type YaziConfig + opts = { + -- if you want to open yazi instead of netrw, see below for more info + open_for_directories = false, + keymaps = { + show_help = "", + }, + }, }, + -- { + -- "kelly-lin/ranger.nvim", + -- config = function() + -- local ranger_nvim = require("ranger-nvim") + -- ranger_nvim.setup({ + -- enable_cmds = false, + -- replace_netrw = false, + -- keybinds = { + -- [""] = ranger_nvim.OPEN_MODE.vsplit, + -- [""] = ranger_nvim.OPEN_MODE.split, + -- ["ot"] = ranger_nvim.OPEN_MODE.tabedit, + -- ["or"] = ranger_nvim.OPEN_MODE.rifle, + -- }, + -- ui = { + -- border = "none", + -- height = 0.7, + -- width = 0.7, + -- x = 0.5, + -- y = 0.5, + -- }, + -- }) + -- require("ranger-nvim").setup({ replace_netrw = true }) + -- vim.api.nvim_set_keymap("n", "lf", "", { + -- noremap = true, + -- callback = function() + -- require("ranger-nvim").open(true) + -- end, + -- }) + -- end, + -- }, + -- { -- "lmburns/lf.nvim", -- dependencies = { diff --git a/snippets/sh.json b/snippets/sh.json index 00285f9..eced123 100644 --- a/snippets/sh.json +++ b/snippets/sh.json @@ -1 +1 @@ -{"command_exists":{"prefix":"command_exists","body":["# ─< Check if the given command exists silently >─────────────────────────────────────────","command_exists() {"," command -v \"\\$@\" >\/dev\/null 2>&1","}"]},"posix echo essentials + echos":{"body":["# ─< ANSI color codes >───────────────────────────────────────────────────────────────────","RED='\\033[0;31m'","CYAN='\\033[0;36m'","YELLOW='\\033[0;33m'","LIGHT_GREEN='\\033[0;92m'","BOLD='\\033[1m'","NC='\\033[0m' # No Color","","echo_error() {"," printf \"\\${BOLD}\\${RED}ERROR: \\${NC}\\${RED}%s\\${NC}\\n\" \"\\$1\" >&2","}","","echo_info() {"," printf \"\\${BOLD}\\${CYAN}INFO: \\${NC}\\${CYAN}%s\\${NC}\\n\" \"\\$1\"","}","","echo_warning() {"," printf \"\\${BOLD}\\${YELLOW}WARNING: \\${NC}\\${YELLOW}%s\\${NC}\\n\" \"\\$1\"","}","","echo_note() {"," printf \"\\${BOLD}\\${LIGHT_GREEN}NOTE: \\${NC}\\${LIGHT_GREEN}%s\\${NC}\\n\" \"\\$1\"","}"],"prefix":["posix echo essentials","echos"]},"posix logging essentials + logging":{"body":["# ─< ANSI color codes >───────────────────────────────────────────────────────────────────","RED='\\033[0;31m'","CYAN='\\033[0;36m'","YELLOW='\\033[0;33m'","LIGHT_GREEN='\\033[0;92m'","BOLD='\\033[1m'","NC='\\033[0m'","","# ─< Initialize storage variables >───────────────────────────────────────────────────────","_STORED_ERRORS=\"\"","_STORED_WARNINGS=\"\"","_STORED_INFOS=\"\"","_STORED_NOTES=\"\"","","# ─< echo functions that store and display messages >────────────────────────────","echo_error() {"," local message=\"\\${RED}\\$1\\${NC}\\n\""," printf \"\\$message\" >&2"," _STORED_ERRORS=\"\\${_STORED_ERRORS}\\${message}\"","}","","echo_warning() {"," local message=\"\\${YELLOW}\\$1\\${NC}\\n\""," printf \"\\$message\""," _STORED_WARNINGS=\"\\${_STORED_WARNINGS}\\${message}\"","}","","echo_info() {"," local message=\"\\${CYAN}\\$1\\${NC}\\n\""," printf \"\\$message\""," _STORED_INFOS=\"\\${_STORED_INFOS}\\${message}\"","}","","echo_note() {"," local message=\"\\${LIGHT_GREEN}\\$1\\${NC}\\n\""," printf \"\\$message\""," _STORED_NOTES=\"\\${_STORED_NOTES}\\${message}\"","}","","# ─< Improved display function that only shows categories with content >──────────────────","display_stored_messages() {"," local has_messages=0",""," # ─< First check if we have any messages at all >─────────────────────────────────────────"," if [ -z \"\\$_STORED_ERRORS\" ] && [ -z \"\\$_STORED_WARNINGS\" ] && [ -z \"\\$_STORED_INFOS\" ] && [ -z \"\\$_STORED_NOTES\" ]; then"," return 0"," fi",""," # ─< Now display each non-empty category with proper spacing >────────────────────────────"," if [ -n \"\\$_STORED_ERRORS\" ]; then"," printf \"\\n\\${BOLD}\\${RED}=== Errors ===\\${NC}\\n\""," printf \"\\$_STORED_ERRORS\""," has_messages=1"," fi",""," if [ -n \"\\$_STORED_WARNINGS\" ]; then"," [ \"\\$has_messages\" -eq 1 ] && printf \"\\n\""," printf \"\\${BOLD}\\${YELLOW}=== Warnings ===\\${NC}\\n\""," printf \"\\$_STORED_WARNINGS\""," has_messages=1"," fi",""," if [ -n \"\\$_STORED_INFOS\" ]; then"," [ \"\\$has_messages\" -eq 1 ] && printf \"\\n\""," printf \"\\${BOLD}\\${CYAN}=== Info ===\\${NC}\\n\""," printf \"\\$_STORED_INFOS\""," has_messages=1"," fi",""," if [ -n \"\\$_STORED_NOTES\" ]; then"," [ \"\\$has_messages\" -eq 1 ] && printf \"\\n\""," printf \"\\${BOLD}\\${LIGHT_GREEN}=== Notes ===\\${NC}\\n\""," printf \"\\$_STORED_NOTES\""," fi","}"],"prefix":["posix logging essentials","logging"]},"posix check_root + cr":{"prefix":["posix check_root","cr"],"body":["# ─< Check if the user is root and set sudo variable if necessary >───────────────────────","check_root() {"," if [ \"\\$(id -u)\" -ne 0 ]; then"," if command_exists sudo; then"," echo_binfo \"User is not root. Using sudo for privileged operations.\""," _sudo=\"sudo\""," else"," echo_error \"No sudo found and you're not root! Can't install packages.\""," return 1"," fi"," else"," echo_binfo \"Root access confirmed.\""," _sudo=\"\""," fi","}"]},"posix packager detection + get_packager":{"prefix":["posix packager detection","get_packager"],"body":["# ─< Distribution detection and installation >────────────────────────────────────────","get_packager() {"," if [ -e \/etc\/os-release ]; then"," echo_info \"Detecting distribution...\""," . \/etc\/os-release",""," # ─< Convert \\$ID and \\$ID_LIKE to lowercase >──────────────────────────────────────────────"," ID=\\$(printf \"%s\" \"\\$ID\" | tr '[:upper:]' '[:lower:]')"," ID_LIKE=\\$(printf \"%s\" \"\\$ID_LIKE\" | tr '[:upper:]' '[:lower:]')",""," case \"\\$ID\" in"," ubuntu | pop) inst_ubuntu ;;"," debian) inst_debian ;;"," fedora) inst_fedora ;;"," alpine) inst_alpine ;;"," arch | manjaro | garuda | endeavour) inst_arch ;;"," opensuse*) inst_opensuse ;;"," *)"," if [ \"\\${ID_LIKE#*debian}\" != \"\\$ID_LIKE\" ]; then"," inst_debian"," elif [ \"\\${ID_LIKE#*ubuntu}\" != \"\\$ID_LIKE\" ]; then"," inst_ubuntu"," elif [ \"\\${ID_LIKE#*arch}\" != \"\\$ID_LIKE\" ]; then"," inst_arch"," elif [ \"\\${ID_LIKE#*fedora}\" != \"\\$ID_LIKE\" ]; then"," inst_fedora"," elif [ \"\\${ID_LIKE#*suse}\" != \"\\$ID_LIKE\" ]; then"," inst_opensuse"," else"," echo_error \"Unsupported distribution: \\$ID\""," exit 1"," fi"," ;;"," esac"," else"," echo_error \"Unable to detect distribution. \/etc\/os-release not found.\""," exit 1"," fi","}"]}} \ No newline at end of file +{"command_exists":{"body":["# ─< Check if the given command exists silently >─────────────────────────────────────────","command_exists() {"," command -v \"\\$@\" >\/dev\/null 2>&1","}"],"prefix":"command_exists"},"posix packager detection + get_packager":{"body":["# ─< Distribution detection and installation >────────────────────────────────────────","get_packager() {"," if [ -e \/etc\/os-release ]; then"," echo_info \"Detecting distribution...\""," . \/etc\/os-release",""," # ─< Convert \\$ID and \\$ID_LIKE to lowercase >──────────────────────────────────────────────"," ID=\\$(printf \"%s\" \"\\$ID\" | tr '[:upper:]' '[:lower:]')"," ID_LIKE=\\$(printf \"%s\" \"\\$ID_LIKE\" | tr '[:upper:]' '[:lower:]')",""," case \"\\$ID\" in"," ubuntu | pop) ${1:inst_ubuntu} ;;"," debian) ${2:inst_debian} ;;"," fedora) ${3:inst_fedora} ;;"," alpine) inst_alpine ;;"," arch | manjaro | garuda | endeavour) ${4:inst_arch} ;;"," opensuse*) inst_opensuse ;;"," *)"," if [ \"\\${ID_LIKE#*debian}\" != \"\\$ID_LIKE\" ]; then"," ${2:inst_debian}"," elif [ \"\\${ID_LIKE#*ubuntu}\" != \"\\$ID_LIKE\" ]; then"," ${1:inst_ubuntu}"," elif [ \"\\${ID_LIKE#*arch}\" != \"\\$ID_LIKE\" ]; then"," ${4:inst_arch}"," elif [ \"\\${ID_LIKE#*fedora}\" != \"\\$ID_LIKE\" ]; then"," ${3:inst_fedora}"," elif [ \"\\${ID_LIKE#*suse}\" != \"\\$ID_LIKE\" ]; then"," inst_opensuse"," else"," echo_error \"Unsupported distribution: \\$ID\""," exit 1"," fi"," ;;"," esac"," else"," echo_error \"Unable to detect distribution. \/etc\/os-release not found.\""," exit 1"," fi","}"],"prefix":["posix packager detection","get_packager"]},"posix echo essentials + echos":{"body":["# ─< ANSI color codes >───────────────────────────────────────────────────────────────────","RED='\\033[0;31m'","CYAN='\\033[0;36m'","YELLOW='\\033[0;33m'","LIGHT_GREEN='\\033[0;92m'","BOLD='\\033[1m'","NC='\\033[0m' # No Color","","echo_error() {"," printf \"\\${BOLD}\\${RED}ERROR: \\${NC}\\${RED}%s\\${NC}\\n\" \"\\$1\" >&2","}","","echo_info() {"," printf \"\\${BOLD}\\${CYAN}INFO: \\${NC}\\${CYAN}%s\\${NC}\\n\" \"\\$1\"","}","","echo_warning() {"," printf \"\\${BOLD}\\${YELLOW}WARNING: \\${NC}\\${YELLOW}%s\\${NC}\\n\" \"\\$1\"","}","","echo_note() {"," printf \"\\${BOLD}\\${LIGHT_GREEN}NOTE: \\${NC}\\${LIGHT_GREEN}%s\\${NC}\\n\" \"\\$1\"","}"],"prefix":["posix echo essentials","echos"]},"posix logging essentials + logging":{"body":["# ─< ANSI color codes >───────────────────────────────────────────────────────────────────","RED='\\033[0;31m'","CYAN='\\033[0;36m'","YELLOW='\\033[0;33m'","LIGHT_GREEN='\\033[0;92m'","BOLD='\\033[1m'","NC='\\033[0m'","","# ─< Initialize storage variables >───────────────────────────────────────────────────────","_STORED_ERRORS=\"\"","_STORED_WARNINGS=\"\"","_STORED_INFOS=\"\"","_STORED_NOTES=\"\"","","# ─< echo functions that store and display messages >────────────────────────────","echo_error() {"," local message=\"\\${RED}\\$1\\${NC}\\n\""," printf \"\\$message\" >&2"," _STORED_ERRORS=\"\\${_STORED_ERRORS}\\${message}\"","}","","echo_warning() {"," local message=\"\\${YELLOW}\\$1\\${NC}\\n\""," printf \"\\$message\""," _STORED_WARNINGS=\"\\${_STORED_WARNINGS}\\${message}\"","}","","echo_info() {"," local message=\"\\${CYAN}\\$1\\${NC}\\n\""," printf \"\\$message\""," _STORED_INFOS=\"\\${_STORED_INFOS}\\${message}\"","}","","echo_note() {"," local message=\"\\${LIGHT_GREEN}\\$1\\${NC}\\n\""," printf \"\\$message\""," _STORED_NOTES=\"\\${_STORED_NOTES}\\${message}\"","}","","# ─< Improved display function that only shows categories with content >──────────────────","display_stored_messages() {"," local has_messages=0",""," # ─< First check if we have any messages at all >─────────────────────────────────────────"," if [ -z \"\\$_STORED_ERRORS\" ] && [ -z \"\\$_STORED_WARNINGS\" ] && [ -z \"\\$_STORED_INFOS\" ] && [ -z \"\\$_STORED_NOTES\" ]; then"," return 0"," fi",""," # ─< Now display each non-empty category with proper spacing >────────────────────────────"," if [ -n \"\\$_STORED_ERRORS\" ]; then"," printf \"\\n\\${BOLD}\\${RED}=== Errors ===\\${NC}\\n\""," printf \"\\$_STORED_ERRORS\""," has_messages=1"," fi",""," if [ -n \"\\$_STORED_WARNINGS\" ]; then"," [ \"\\$has_messages\" -eq 1 ] && printf \"\\n\""," printf \"\\${BOLD}\\${YELLOW}=== Warnings ===\\${NC}\\n\""," printf \"\\$_STORED_WARNINGS\""," has_messages=1"," fi",""," if [ -n \"\\$_STORED_INFOS\" ]; then"," [ \"\\$has_messages\" -eq 1 ] && printf \"\\n\""," printf \"\\${BOLD}\\${CYAN}=== Info ===\\${NC}\\n\""," printf \"\\$_STORED_INFOS\""," has_messages=1"," fi",""," if [ -n \"\\$_STORED_NOTES\" ]; then"," [ \"\\$has_messages\" -eq 1 ] && printf \"\\n\""," printf \"\\${BOLD}\\${LIGHT_GREEN}=== Notes ===\\${NC}\\n\""," printf \"\\$_STORED_NOTES\""," fi","}"],"prefix":["posix logging essentials","logging"]},"posix check_root + cr":{"body":["# ─< Check if the user is root and set sudo variable if necessary >───────────────────────","check_root() {"," if [ \"\\$(id -u)\" -ne 0 ]; then"," if command_exists sudo; then"," echo_binfo \"User is not root. Using sudo for privileged operations.\""," _sudo=\"sudo\""," else"," echo_error \"No sudo found and you're not root! Can't install packages.\""," return 1"," fi"," else"," echo_binfo \"Root access confirmed.\""," _sudo=\"\""," fi","}"],"prefix":["posix check_root","cr"]}} \ No newline at end of file