diff --git a/lua/plugins/searching.lua b/lua/plugins/searching.lua index 229e16a..f0ea4a2 100644 --- a/lua/plugins/searching.lua +++ b/lua/plugins/searching.lua @@ -34,14 +34,8 @@ return { { "g", function() - require('telescope.builtin').live_grep({ - disable_devicons = true, - cwd = vim.fn.getcwd(), - additional_args = function() - return { '--hidden', '--glob', '!.git/*' } - end, - }) - end + require('utils.functions').fzf_wrapped("grep") + end }, { "fh", @@ -52,20 +46,8 @@ return { { "", function() - require('telescope.builtin').find_files({ - hidden = true, - no_ignore = true, - follow = true, - disable_devicons = false, - prompt_title = "Find Files", - find_command = { - "rg", "--files", - "--glob", "!**/.git/*", - "--glob", "!**/build/*", - "--glob", "!**/*.{jpg,png,gif,mp4,mkv,tar,zip,iso}" - } - }) - end + require('utils.functions').fzf_wrapped("find") + end } }, config = true, diff --git a/lua/utils/functions.lua b/lua/utils/functions.lua index af76a2a..7cbf140 100644 --- a/lua/utils/functions.lua +++ b/lua/utils/functions.lua @@ -2,109 +2,137 @@ local M = {} function M.sleep(n) - os.execute("sleep " .. tonumber(n)) + os.execute("sleep " .. tonumber(n)) end --- @return string function M.get_cwd() - local cwd = vim.fn.getcwd() - local home = os.getenv("HOME") + local cwd = vim.fn.getcwd() + local home = os.getenv("HOME") - if cwd:sub(1, #home) == home then - return "~" .. cwd:sub(#home + 1) - else - return cwd - end + if cwd:sub(1, #home) == home then + return "~" .. cwd:sub(#home + 1) + else + return cwd + end +end + +function M.fzf_wrapped(type) + local t = require("telescope.builtin") + + if type == "grep" then + t.live_grep({ + disable_devicons = true, + cwd = vim.fn.getcwd(), + additional_args = function() + return { '--hidden', '--glob', '!.git/*' } + end, + }) + end + if type == "find" then + t.find_files({ + hidden = true, + no_ignore = true, + follow = true, + disable_devicons = false, + prompt_title = "Find Files", + find_command = { + "rg", "--files", + "--glob", "!**/.git/*", + "--glob", "!**/build/*", + "--glob", "!**/*.{jpg,png,gif,mp4,mkv,tar,zip,iso}" + } + }) + end end --- @return {} function M.get_lsp_servers() - local servers = { "lua_ls" } + local servers = { "lua_ls" } - -- persistent state file - local state_file = vim.fn.stdpath("state") .. "/mason_skipped_jonas.json" + -- persistent state file + local state_file = vim.fn.stdpath("state") .. "/mason_skipped_jonas.json" - -- load previous warnings - local warned = {} - local ok, data = pcall(vim.fn.readfile, state_file) - if ok and #data > 0 then - local decoded = vim.fn.json_decode(data) - if decoded then warned = decoded end - end + -- load previous warnings + local warned = {} + local ok, data = pcall(vim.fn.readfile, state_file) + if ok and #data > 0 then + local decoded = vim.fn.json_decode(data) + if decoded then warned = decoded end + end - local function save_state() - vim.fn.writefile({ vim.fn.json_encode(warned) }, state_file) - end + local function save_state() + vim.fn.writefile({ vim.fn.json_encode(warned) }, state_file) + end - local function warn_once(key, msg) - if not warned[key] then - vim.notify(msg, vim.log.levels.WARN) - warned[key] = true - save_state() - end - end + local function warn_once(key, msg) + if not warned[key] then + vim.notify(msg, vim.log.levels.WARN) + warned[key] = true + save_state() + end + end - local function populate_servers() - if vim.fn.executable("go") == 1 then - table.insert(servers, "gopls") - else - warn_once("gopls", "[mason] Skipping gopls (go not found)") - end + local function populate_servers() + if vim.fn.executable("go") == 1 then + table.insert(servers, "gopls") + else + warn_once("gopls", "[mason] Skipping gopls (go not found)") + end - if vim.fn.executable("php") == 1 then - table.insert(servers, "intelephense") - else - warn_once("php", "[mason] Skipping intelephense (php not found)") - end + if vim.fn.executable("php") == 1 then + table.insert(servers, "intelephense") + else + warn_once("php", "[mason] Skipping intelephense (php not found)") + end - if vim.fn.executable("hls") == 1 then - table.insert(servers, "hls") - else - warn_once("haskell", "[mason] Skipping hls (hls not found)") - end + if vim.fn.executable("hls") == 1 then + table.insert(servers, "hls") + else + warn_once("haskell", "[mason] Skipping hls (hls not found)") + end - if vim.fn.executable("npm") == 1 then - if vim.fn.executable("clangd") == 1 then - table.insert(servers, "clangd") - end + if vim.fn.executable("npm") == 1 then + if vim.fn.executable("clangd") == 1 then + table.insert(servers, "clangd") + end - if vim.fn.executable("java") == 1 then - table.insert(servers, "jdtls") - end - table.insert(servers, "pyright") - table.insert(servers, "bashls") - table.insert(servers, "cssls") - table.insert(servers, "html") - table.insert(servers, "jsonls") - else - warn_once("npm", "[mason] Skipping npm related (npm not found)") - end + if vim.fn.executable("java") == 1 then + table.insert(servers, "jdtls") + end + table.insert(servers, "pyright") + table.insert(servers, "bashls") + table.insert(servers, "cssls") + table.insert(servers, "html") + table.insert(servers, "jsonls") + else + warn_once("npm", "[mason] Skipping npm related (npm not found)") + end - if vim.fn.executable("cargo") == 1 then - if vim.fn.executable("nix") == 1 then - table.insert(servers, "nil_ls") - else - warn_once("nix", "[mason] Skipping nil_ls and nixfmt (nix not found)") - end - table.insert(servers, "rust_analyzer") - else - warn_once("cargo", "[mason] Skipping nil_ls/rust_analyzer (cargo not found)") - end + if vim.fn.executable("cargo") == 1 then + if vim.fn.executable("nix") == 1 then + table.insert(servers, "nil_ls") + else + warn_once("nix", "[mason] Skipping nil_ls and nixfmt (nix not found)") + end + table.insert(servers, "rust_analyzer") + else + warn_once("cargo", "[mason] Skipping nil_ls/rust_analyzer (cargo not found)") + end - if vim.fn.executable("deno") == 1 then - table.insert(servers, "ts_ls") - else - warn_once("deno", "[mason] Skipping denols and tsserver (deno not found)") - end + if vim.fn.executable("deno") == 1 then + table.insert(servers, "ts_ls") + else + warn_once("deno", "[mason] Skipping denols and tsserver (deno not found)") + end - if vim.fn.executable("zls") == 1 then - table.insert(servers, "zls") - end + if vim.fn.executable("zls") == 1 then + table.insert(servers, "zls") + end + end - end - - populate_servers() - return servers + populate_servers() + return servers end return M