From 5193d3bd42e5e30defc43ac561e28e34a62c59a4 Mon Sep 17 00:00:00 2001 From: S4NKALP Date: Fri, 15 Mar 2024 13:40:24 +0545 Subject: [PATCH] refactor(nvim): use prettypath function from lazyvim utils --- config/nvim/lazy-lock.json | 40 ++++----- .../plugins/extras/editor/git/diffview.lua | 4 +- .../extras/editor/terminal/floaterm.lua | 4 + .../lua/plugins/extras/lazyvim/lualine.lua | 89 ++----------------- 4 files changed, 33 insertions(+), 104 deletions(-) diff --git a/config/nvim/lazy-lock.json b/config/nvim/lazy-lock.json index 4e485116..ea5d0765 100644 --- a/config/nvim/lazy-lock.json +++ b/config/nvim/lazy-lock.json @@ -1,7 +1,7 @@ { - "LazyVim": { "branch": "main", "commit": "e3bfcb9bf74292dc846f5d1710fbb2e8f36a687a" }, + "LazyVim": { "branch": "main", "commit": "0107a1079be7fb92f7d5b7e2c40818f47cf425d9" }, "LuaSnip": { "branch": "master", "commit": "a7a4b4682c4b3e2ba82b82a4e6e5f5a0e79dec32" }, - "SchemaStore.nvim": { "branch": "main", "commit": "9fa646ab0b8d411b5f2e415728a99792c62109ac" }, + "SchemaStore.nvim": { "branch": "main", "commit": "f5cc69661af579fc5b991aeed180831428357392" }, "actions-preview.nvim": { "branch": "master", "commit": "5072b1b1065a6b22bdd46b5c21780a91d6a08071" }, "autolist.nvim": { "branch": "main", "commit": "5f70a5f99e96c8fe3069de042abd2a8ed2deb855" }, "bigfile.nvim": { "branch": "main", "commit": "33eb067e3d7029ac77e081cfe7c45361887a311a" }, @@ -13,31 +13,31 @@ "cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" }, "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, - "codeium.vim": { "branch": "main", "commit": "5b8f68d5c0e32ae97d073a56ff14dba5646ec223" }, - "compiler.nvim": { "branch": "main", "commit": "cb684ac7cfb3872bbdcd64cfc4d3e0c2affaab62" }, - "conform.nvim": { "branch": "master", "commit": "db2c697fe8302f0328b50b480204be1b577a1e2f" }, - "crates.nvim": { "branch": "main", "commit": "535773ed3b321d68ddd6ef8cd5a1e07b345026a6" }, + "codeium.vim": { "branch": "main", "commit": "bef9cbaa5c19ab85d8048f364bfc0ac8c7ab335d" }, + "compiler.nvim": { "branch": "main", "commit": "3d3fe576cad12d9c2011c4101fc93737761bd342" }, + "conform.nvim": { "branch": "master", "commit": "a605ce4b2db397c84ae6fa8bcfc85f00b985bc73" }, + "crates.nvim": { "branch": "main", "commit": "b4f4987ccdb1cc3899ee541ef4375c73c48c4570" }, "dashboard-nvim": { "branch": "master", "commit": "413442b12d85315fc626c44a0ce4929b213ef604" }, "dial.nvim": { "branch": "master", "commit": "27eb570085db2ef44bff4f620d3806039184651c" }, "diffview.nvim": { "branch": "main", "commit": "3dc498c9777fe79156f3d32dddd483b8b3dbd95f" }, "dooku.nvim": { "branch": "main", "commit": "123e34d3b0b4cfb8b2e6d686bc713b671123cbf0" }, - "dressing.nvim": { "branch": "master", "commit": "6f212262061a2120e42da0d1e87326e8a41c0478" }, + "dressing.nvim": { "branch": "master", "commit": "18e5beb3845f085b6a33c24112b37988f3f93c06" }, "edgy.nvim": { "branch": "main", "commit": "0b35dc6da4cae6cc2f724bc610eadf955cd2319b" }, "flash.nvim": { "branch": "main", "commit": "48817af25f51c0590653bbc290866e4890fe1cbe" }, "friendly-snippets": { "branch": "main", "commit": "dcd4a586439a1c81357d5b9d26319ae218cc9479" }, "garbage-day.nvim": { "branch": "main", "commit": "029214aff15487822fbbbce6c622d1c380a20fed" }, - "gitsigns.nvim": { "branch": "main", "commit": "41dc075ef67b556b0752ad3967649371bd95cb95" }, + "gitsigns.nvim": { "branch": "main", "commit": "4e348641b8206c3b8d23080999e3ddbe4ca90efc" }, "glance.nvim": { "branch": "master", "commit": "8ed5cf3b3b1231ea696d88c9efd977027429d869" }, "grapple.nvim": { "branch": "main", "commit": "2c54086e6623ed79dec417447d4673bf9dbb97d7" }, "headlines.nvim": { "branch": "master", "commit": "618ef1b2502c565c82254ef7d5b04402194d9ce3" }, "hydra.nvim": { "branch": "master", "commit": "55de54543d673824435930ecf533256eea2e565b" }, "icon-picker.nvim": { "branch": "master", "commit": "3ee9a0ea9feeef08ae35e40c8be6a2fa2c20f2d3" }, - "indent-blankline.nvim": { "branch": "master", "commit": "821a7acd88587d966f7e464b0b3031dfe7f5680c" }, - "kitty-scrollback.nvim": { "branch": "main", "commit": "95c401021ed1f272081b422da547faffc096d943" }, + "indent-blankline.nvim": { "branch": "master", "commit": "3d08501caef2329aba5121b753e903904088f7e6" }, + "kitty-scrollback.nvim": { "branch": "main", "commit": "af95c02d558216202639609a56123fed9d8fb193" }, "lazy.nvim": { "branch": "main", "commit": "83493db50a434a4c5c648faf41e2ead80f96e478" }, "live-server.nvim": { "branch": "main", "commit": "f6f00a3f541251f0320910bb0d03c4ae14ee6d10" }, "lsp-lens.nvim": { "branch": "main", "commit": "48bb1a7e271424c15f3d588d54adc9b7c319d977" }, - "lualine.nvim": { "branch": "master", "commit": "3c55675a7bc170d21d7ea70874ae66fbf5cfb0dc" }, + "lualine.nvim": { "branch": "master", "commit": "26dac2fcadb6e622790ab08e36d0dba3d3765398" }, "markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "55716a879568a498fa236593c8119789054a3b8e" }, "mason-nvim-dap.nvim": { "branch": "main", "commit": "67210c0e775adec55de9826b038e8b62de554afc" }, @@ -49,8 +49,8 @@ "mini.pairs": { "branch": "main", "commit": "04f58f2545ed80ac3b52dd4826e93f33e15b2af6" }, "mini.surround": { "branch": "main", "commit": "a1b590cc3b676512de507328d6bbab5e43794720" }, "multicursors.nvim": { "branch": "main", "commit": "8b3e14682eed06a532b155c7eae33e174846b3fd" }, - "neo-tree.nvim": { "branch": "v3.x", "commit": "7f2ebdef3b55374390714ac7c0a7fe6b0dae498a" }, - "neoconf.nvim": { "branch": "main", "commit": "cc846d17b034957b7cf49df98632ffa8b9e6a889" }, + "neo-tree.nvim": { "branch": "v3.x", "commit": "742db4e60c74e5fbcc596aaf9e7575e1342dfd09" }, + "neoconf.nvim": { "branch": "main", "commit": "ffdeab72dc167543f9b3355baceb0918f1e81fc0" }, "neodev.nvim": { "branch": "main", "commit": "84e0290f5600e8b89c0dfcafc864f45496a53400" }, "neogen": { "branch": "main", "commit": "b95347a588401a755eadd17482edc1662876bd58" }, "noice.nvim": { "branch": "main", "commit": "bf67d70bd7265d075191e7812d8eb42b9791f737" }, @@ -60,23 +60,23 @@ "nvim-dap-ui": { "branch": "master", "commit": "9720eb5fa2f41988e8770f973cd11b76dd568a5d" }, "nvim-dap-virtual-text": { "branch": "master", "commit": "baa5b0dc6663284cce32e0d00ac1f2511b13496f" }, "nvim-devdocs": { "branch": "master", "commit": "521d24661ffe6d1ba025debea2675c765a9c1ee1" }, - "nvim-lint": { "branch": "master", "commit": "e824adb9bc01647f71e55457353a68f0f37f9931" }, + "nvim-lint": { "branch": "master", "commit": "d78c8ab992f48890580653f74a362c6e5ef2eccc" }, "nvim-lsp-file-operations": { "branch": "master", "commit": "223aca86b737dc66e9c51ebcda8788a8d9cc6cf2" }, "nvim-lspconfig": { "branch": "master", "commit": "4bdd3800b4148f670c6cf55ef65f490148eeb550" }, "nvim-notify": { "branch": "master", "commit": "5371f4bfc1f6d3adf4fe9d62cd3a9d44356bfd15" }, - "nvim-puppeteer": { "branch": "main", "commit": "a5be4f12f0e5df4797f6fb603297a710617e38f6" }, + "nvim-puppeteer": { "branch": "main", "commit": "ea340595967919222f3ba5c6c6def0787a336c82" }, "nvim-recorder": { "branch": "main", "commit": "f37f8e80b32c2a5dca2bd8f6d9dce278b3f5e434" }, - "nvim-spectre": { "branch": "master", "commit": "3712ff0cdf4f9f877d9ca708d835a877d9a0abaf" }, - "nvim-treesitter": { "branch": "master", "commit": "8d3176cfbc0e3c5b8eadf4dfc20681878529c3af" }, + "nvim-spectre": { "branch": "master", "commit": "d1db6c1d37252b5a38f199e2f590c5a1617d9254" }, + "nvim-treesitter": { "branch": "master", "commit": "3ae78f376c2e721ce4feb23e9a5e8bc6062a2657" }, "nvim-treesitter-context": { "branch": "master", "commit": "b8b7e52c1517d401d7c519787d5dc4528c41291a" }, "nvim-treesitter-endwise": { "branch": "master", "commit": "60e8c288e011403f248b5f6478dde12bed8a6c55" }, - "nvim-treesitter-textobjects": { "branch": "master", "commit": "f0375e1bdc1b245ae5a7f71272bec17053b1163f" }, + "nvim-treesitter-textobjects": { "branch": "master", "commit": "d2a4ffc22d9d38d44edb73da007b3cf43451e9b4" }, "nvim-ts-autotag": { "branch": "main", "commit": "531f48334c422222aebc888fd36e7d109cb354cd" }, "nvim-ts-context-commentstring": { "branch": "main", "commit": "7ab799a9792f7cf3883cf28c6a00ad431f3d382a" }, "nvim-various-textobjs": { "branch": "main", "commit": "6cefba253d69306004a641a11c395381ae428903" }, "nvim-web-devicons": { "branch": "master", "commit": "75df79feb02d5e0ec114e447453775d4d291ea03" }, "nvim_context_vt": { "branch": "master", "commit": "8f7b6b46292e0819290b0d368abc3366b8a163fc" }, - "obsidian.nvim": { "branch": "main", "commit": "f68f5c89bec3a175a08123c59db2a89409bd1841" }, + "obsidian.nvim": { "branch": "main", "commit": "0f4ea504f51e3d1591e90184967c75503106a89b" }, "outline.nvim": { "branch": "main", "commit": "a8d40aecb799196303ff3521c0e31c87bba57198" }, "overseer.nvim": { "branch": "master", "commit": "b72f6d23ce47ccd427be2341f389c63448278f17" }, "package-info.nvim": { "branch": "master", "commit": "45acce5b12ce824332d8000cc2c91805b6710446" }, @@ -95,7 +95,7 @@ "telescope-lazy.nvim": { "branch": "main", "commit": "3487d6212fe1b5750ae239e2207f4cb603004d36" }, "telescope-undo.nvim": { "branch": "main", "commit": "d3afc1c105535a90caec092ce27a113f77ba7b84" }, "telescope-zoxide": { "branch": "main", "commit": "68966349aa1b8e9ade403e18479ecf79447389a7" }, - "telescope.nvim": { "branch": "master", "commit": "7472420f8734c710bd7009081cef9b97f08a3821" }, + "telescope.nvim": { "branch": "master", "commit": "b323abeb4baf9e4851c3af1961e770ce76c657c7" }, "todo-comments.nvim": { "branch": "main", "commit": "833d8dd8b07eeda37a09e99460f72a02616935cb" }, "tokyonight.nvim": { "branch": "main", "commit": "c025baf23b62f044eff1f4ef561c45de636f0e32" }, "trouble.nvim": { "branch": "main", "commit": "f1168feada93c0154ede4d1fe9183bf69bac54ea" }, diff --git a/config/nvim/lua/plugins/extras/editor/git/diffview.lua b/config/nvim/lua/plugins/extras/editor/git/diffview.lua index 2872e8d6..f7573cad 100644 --- a/config/nvim/lua/plugins/extras/editor/git/diffview.lua +++ b/config/nvim/lua/plugins/extras/editor/git/diffview.lua @@ -2,8 +2,8 @@ return { { "sindrets/diffview.nvim", keys = { - { "gd", "DiffviewFileHistory", desc = "Diff File History" }, - { "gD", "DiffviewOpen", desc = "Diff View Open" }, + { "gF", "DiffviewFileHistory", desc = "File History (Diff)" }, + { "gd", "DiffviewOpen", desc = "Diff View" }, }, opts = function(_, opts) local actions = require("diffview.actions") diff --git a/config/nvim/lua/plugins/extras/editor/terminal/floaterm.lua b/config/nvim/lua/plugins/extras/editor/terminal/floaterm.lua index b664fac2..ad5c3708 100644 --- a/config/nvim/lua/plugins/extras/editor/terminal/floaterm.lua +++ b/config/nvim/lua/plugins/extras/editor/terminal/floaterm.lua @@ -9,6 +9,10 @@ return { { "gG", "FloatermNew --name=lazygitbuffer --opener=edit --titleposition=center --height=0.85 --width=0.85 --cwd= lazygit", desc = "Lazygit (cwd)" }, { "cen", "FloatermNew --name=node --opener=edit --titleposition=center --wintype=split --height=0.35 node", desc = "Node" }, { "cep", "FloatermNew --name=python --opener=edit --titleposition=center --wintype=split --height=0.35 python", desc = "Python" }, + { "gf", function() + local git_path = vim.fn.system("git ls-files --full-name " .. vim.api.nvim_buf_get_name(0)) + vim.api.nvim_command("FloatermNew --name=lazygitroot --opener=edit --titleposition=center --height=0.85 --width=0.85 lazygit -f " .. vim.trim(git_path)) + end, desc = "File History (LazyGit)" }, { "", "FloatermNext", mode = { "t" }, desc = "Next Terminal" }, { "", "FloatermPrev", mode = { "t" }, desc = "Prev Terminal" }, { "", "FloatermLast", mode = { "t" }, desc = "Last Terminal" }, diff --git a/config/nvim/lua/plugins/extras/lazyvim/lualine.lua b/config/nvim/lua/plugins/extras/lazyvim/lualine.lua index e88cc940..43324379 100644 --- a/config/nvim/lua/plugins/extras/lazyvim/lualine.lua +++ b/config/nvim/lua/plugins/extras/lazyvim/lualine.lua @@ -1,84 +1,3 @@ -local util = require("lazyvim.util") - --- Format and pretty_path extracted from https://github.com/LazyVim/LazyVim/discussions/2605 -local function format(component, text, hl_group) - if not hl_group then - return text - end - - ---@type table - component.hl_cache = component.hl_cache or {} - local lualine_hl_group = component.hl_cache[hl_group] - if not lualine_hl_group then - local utils = require("lualine.utils.utils") - local mygui = function() - local mybold = utils.extract_highlight_colors(hl_group, "bold") and "bold" - local myitalic = utils.extract_highlight_colors(hl_group, "italic") and "italic" - if mybold and myitalic then - return mybold .. "," .. myitalic - elseif mybold then - return mybold - elseif myitalic then - return myitalic - else - return "" - end - end - - lualine_hl_group = component:create_hl({ - fg = utils.extract_highlight_colors(hl_group, "fg"), - gui = mygui(), - }, "LV_" .. hl_group) - component.hl_cache[hl_group] = lualine_hl_group - end - return component:format_hl(lualine_hl_group) .. text .. component:get_default_hl() -end - -local function pretty_path(opts) - opts = vim.tbl_extend("force", { - relative = "cwd", - modified_hl = "NeogitGraphBoldYellow", - filename_hl = "NeogitGraphBoldWhite", - dirpath_hl = "Conceal", - }, opts or {}) - - return function(self) - local path = vim.fn.expand("%:p") --[[@as string]] - if path == "" then - return "" - end - - local root = util.root.get({ normalize = true }) - local cwd = util.root.cwd() - - if opts.relative == "cwd" and path:find(cwd, 1, true) == 1 then - path = path:sub(#cwd + 2) - else - path = path:sub(#root + 2) - end - - local sep = package.config:sub(1, 1) - local parts = vim.split(path, "[\\/]") - - if #parts > 3 then - parts = { parts[1], "…", parts[#parts - 1], parts[#parts] } - end - - if opts.modified_hl and vim.bo.modified then - parts[#parts] = format(self, parts[#parts], opts.modified_hl) - else - parts[#parts] = format(self, parts[#parts], opts.filename_hl) - end - - local dirpath = "" - if #parts > 1 then - dirpath = table.concat({ unpack(parts, 1, #parts - 1) }, sep) - dirpath = format(self, dirpath .. sep, opts.dirpath_hl) - end - return dirpath .. parts[#parts] - end -end - local lsp = function() local buf_clients = vim.lsp.get_clients({ bufnr = 0 }) if #buf_clients == 0 then @@ -113,7 +32,13 @@ return { opts.options.section_separators = { left = "", right = "" } opts.sections.lualine_a = { { "mode", icon = "" } } - opts.sections.lualine_c[4] = { pretty_path({ filename_hl = "Bold", modified_hl = "MatchParen" }) } + opts.sections.lualine_c[4] = { + require("lazyvim.util.lualine").pretty_path({ + filename_hl = "Bold", + modified_hl = "MatchParen", + directory_hl = "Conceal", + }), + } table.insert(opts.sections.lualine_x, 2, lsp) table.insert(opts.sections.lualine_x, 2, formatter)