From 94cc7bed34b0032d3c6bc1fb216a520fdc8889dd Mon Sep 17 00:00:00 2001 From: "Mariano Z." Date: Wed, 2 Apr 2025 18:07:53 -0300 Subject: [PATCH] chore: some qol crap --- .luarc.json | 6 + init.lua | 4 + lazy-lock.json | 61 +++++---- lua/config/autocomands.lua | 13 -- lua/config/lsp/vtsls.lua | 39 ++++++ lua/config/remap.lua | 4 +- lua/globals/map.lua | 10 ++ lua/plugins/ai.lua | 12 +- lua/plugins/blankline.lua | 31 ----- lua/plugins/chezmoi.lua | 31 ----- lua/plugins/{ui => }/colors.lua | 0 lua/plugins/completion.lua | 24 +++- lua/plugins/db.lua | 2 +- lua/plugins/diagnostics.lua | 184 ++++++++++++++------------ lua/plugins/fold.lua | 77 ++++------- lua/plugins/format.lua | 7 +- lua/plugins/fzf.lua | 4 - lua/plugins/git.lua | 22 ++- lua/plugins/knap.lua | 6 + lua/plugins/lint.lua | 10 +- lua/plugins/lsp/extras/typescript.lua | 68 ---------- lua/plugins/lsp/init.lua | 29 ++-- lua/plugins/mini.lua | 48 +++++++ lua/plugins/obsidian.lua | 28 ++++ lua/plugins/oil.lua | 13 +- lua/plugins/presenterm.lua | 4 +- lua/plugins/qol.lua | 58 ++++++++ lua/plugins/ui/alpha.lua | 17 --- lua/plugins/ui/dressing.lua | 9 -- lua/plugins/ui/init.lua | 11 -- lua/plugins/ui/noice.lua | 92 ------------- lua/plugins/ui/scroll.lua | 41 ------ lua/plugins/ui/status.lua | 66 --------- lua/plugins/{ui => }/whichkey.lua | 0 34 files changed, 433 insertions(+), 598 deletions(-) create mode 100644 .luarc.json create mode 100644 lua/config/lsp/vtsls.lua delete mode 100644 lua/plugins/blankline.lua delete mode 100644 lua/plugins/chezmoi.lua rename lua/plugins/{ui => }/colors.lua (100%) delete mode 100644 lua/plugins/lsp/extras/typescript.lua create mode 100644 lua/plugins/obsidian.lua create mode 100644 lua/plugins/qol.lua delete mode 100755 lua/plugins/ui/alpha.lua delete mode 100644 lua/plugins/ui/dressing.lua delete mode 100644 lua/plugins/ui/init.lua delete mode 100644 lua/plugins/ui/noice.lua delete mode 100644 lua/plugins/ui/scroll.lua delete mode 100644 lua/plugins/ui/status.lua rename lua/plugins/{ui => }/whichkey.lua (100%) diff --git a/.luarc.json b/.luarc.json new file mode 100644 index 0000000..8780040 --- /dev/null +++ b/.luarc.json @@ -0,0 +1,6 @@ +{ + "diagnostics.globals": [ + "Snacks" + ] +} + diff --git a/init.lua b/init.lua index c73ee61..50f581a 100644 --- a/init.lua +++ b/init.lua @@ -1,3 +1,7 @@ +-- Fuck off with the warnings... +---@diagnostic disable-next-line: duplicate-set-field +vim.deprecate = function() end + require("globals") require("config.options") require("config.remap") diff --git a/lazy-lock.json b/lazy-lock.json index 3c48a55..af097d6 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,56 +1,55 @@ { "Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" }, "LuaSnip": { "branch": "master", "commit": "03c8e67eb7293c404845b3982db895d59c0d1538" }, - "alpha-nvim": { "branch": "main", "commit": "de72250e054e5e691b9736ee30db72c65d560771" }, - "blink.cmp": { "branch": "main", "commit": "49f211fe5d729df53df4c042d7c3464cf47d199e" }, - "chezmoi.nvim": { "branch": "main", "commit": "3f72cffa2d18aaec884502443bae37226f3decd2" }, + "blink.cmp": { "branch": "main", "commit": "cb5e346d9e0efa7a3eee7fd4da0b690c48d2a98e" }, "cloak.nvim": { "branch": "main", "commit": "648aca6d33ec011dc3166e7af3b38820d01a71e4" }, - "codeium.vim": { "branch": "main", "commit": "000de972de76f357c03da14f4f8dd9a969d4fe8c" }, - "conform.nvim": { "branch": "master", "commit": "b1a75324ddf96b7bb84963a297b1ed334db087c0" }, - "dressing.nvim": { "branch": "master", "commit": "2d7c2db2507fa3c4956142ee607431ddb2828639" }, + "conform.nvim": { "branch": "master", "commit": "372fc521f8421b7830ea6db4d6ea3bae1c77548c" }, + "fidget.nvim": { "branch": "main", "commit": "d9ba6b7bfe29b3119a610892af67602641da778e" }, "flash.nvim": { "branch": "main", "commit": "3c942666f115e2811e959eabbdd361a025db8b63" }, - "friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" }, - "fzf-lua": { "branch": "main", "commit": "caee13203d6143d691710c34f85ad6441fe3f535" }, + "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, + "fzf-lua": { "branch": "main", "commit": "b11467c3fbfe48e4a815e4909f5c4e5b413ce6d0" }, "gitlinker.nvim": { "branch": "master", "commit": "cc59f732f3d043b626c8702cb725c82e54d35c25" }, - "gitsigns.nvim": { "branch": "main", "commit": "3c76f7fabac723aa682365ef782f88a83ccdb4ac" }, - "go.nvim": { "branch": "master", "commit": "0d426e87227dd14584881ecc595c173121456111" }, - "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, + "gitsigns.nvim": { "branch": "main", "commit": "ee28ba3e70ecea811b8f6d7b51d81976e94b121c" }, + "go.nvim": { "branch": "master", "commit": "fbceaf55e18e9e473f289df008d6b508a479fbf8" }, "knap": { "branch": "main", "commit": "7db44d0bb760120142cc1e8f43e44976de59c2f6" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, "lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" }, - "lualine.nvim": { "branch": "master", "commit": "1517caa8fff05e4b4999857319d3b0609a7f57fa" }, "markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" }, + "mason-tool-installer.nvim": { "branch": "main", "commit": "1255518cb067e038a4755f5cb3e980f79b6ab89c" }, "mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" }, - "mini.ai": { "branch": "main", "commit": "978ffc65c6b513fde9ef075326d34d89197f1ea5" }, - "mini.icons": { "branch": "main", "commit": "86a633f0dffcfd80110bac86681dbf4b5c37ba5c" }, - "mini.surround": { "branch": "main", "commit": "97796f68a8698d9b63ac3927da0d0bf5c3a0876b" }, - "neoscroll.nvim": { "branch": "master", "commit": "f957373912e88579e26fdaea4735450ff2ef5c9c" }, + "mini.ai": { "branch": "main", "commit": "e139eb1101beb0250fea322f8c07a42f0f175688" }, + "mini.icons": { "branch": "main", "commit": "397ed3807e96b59709ef3292f0a3e253d5c1dc0a" }, + "mini.statusline": { "branch": "main", "commit": "e331175f10d9f400b42523b3890841aba202ce16" }, + "mini.surround": { "branch": "main", "commit": "5aab42fcdcf31fa010f012771eda5631c077840a" }, "nightfox.nvim": { "branch": "main", "commit": "ba47d4b4c5ec308718641ba7402c143836f35aa9" }, - "noice.nvim": { "branch": "main", "commit": "0427460c2d7f673ad60eb02b35f5e9926cf67c59" }, - "nui.nvim": { "branch": "main", "commit": "8d3bce9764e627b62b07424e0df77f680d47ffdb" }, "nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" }, "nvim-lastplace": { "branch": "main", "commit": "0bb6103c506315044872e0f84b1f736c4172bb20" }, - "nvim-lint": { "branch": "master", "commit": "93b8040115c9114dac1047311763bef275e752dc" }, - "nvim-lspconfig": { "branch": "master", "commit": "ff6471d4f837354d8257dfa326b031dd8858b16e" }, - "nvim-spectre": { "branch": "master", "commit": "ddd7383e856a7c939cb4f5143278fe041bbb8cb9" }, - "nvim-treesitter": { "branch": "master", "commit": "9be6836ebeb88a536055bf1ce0961eef68da4bc6" }, + "nvim-lint": { "branch": "master", "commit": "9dfb77ef6c5092a19502883c02dc5a02ec648729" }, + "nvim-lspconfig": { "branch": "master", "commit": "94d0fec9135719e046903bbbbf8f39e3d3436d4e" }, + "nvim-spectre": { "branch": "master", "commit": "197150cd3f30eeb1b3fd458339147533d91ac385" }, + "nvim-treesitter": { "branch": "master", "commit": "94ea4f436d2b59c80f02e293466c374584f03b8c" }, "nvim-ts-context-commentstring": { "branch": "main", "commit": "1b212c2eee76d787bbea6aa5e92a2b534e7b4f8f" }, - "oil.nvim": { "branch": "master", "commit": "302bbaceeafc690e6419e0c8296e804d60cb9446" }, + "nvim-ufo": { "branch": "main", "commit": "cac999ec9f6302d2fd4ad8a846bf8f731af6e7cf" }, + "obsidian.nvim": { "branch": "main", "commit": "ae1f76a75c7ce36866e1d9342a8f6f5b9c2caf9b" }, + "oil.nvim": { "branch": "master", "commit": "685cdb4ffa74473d75a1b97451f8654ceeab0f4a" }, "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, - "pretty-fold.nvim": { "branch": "master", "commit": "1eb18f228972e86b7b8f5ef33ca8091e53fb1e49" }, - "render-markdown.nvim": { "branch": "main", "commit": "a020c88e9552b50916a78dec9eeb4656c6391e6d" }, - "schemastore.nvim": { "branch": "main", "commit": "e659e0c6ca06727ed898aaaeea3850f528898684" }, + "presenterm.nvim": { "branch": "main", "commit": "2db942337aeeca99e33f627459df2264b3987634" }, + "promise-async": { "branch": "main", "commit": "119e8961014c9bfaf1487bf3c2a393d254f337e2" }, + "quicker.nvim": { "branch": "master", "commit": "1798be71cdcb15fb84fa8054148a56e17fd391dc" }, + "render-markdown.nvim": { "branch": "main", "commit": "bd5657594bf1a96b04f900c87e8d74226a54d832" }, + "schemastore.nvim": { "branch": "main", "commit": "442901b78dca4da1078b32e25e1afb32460e0082" }, + "snacks.nvim": { "branch": "main", "commit": "bc0630e43be5699bb94dadc302c0d21615421d93" }, "suda.vim": { "branch": "master", "commit": "9adda7d195222d4e2854efb2a88005a120296c47" }, "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }, - "trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" }, - "typescript-tools.nvim": { "branch": "master", "commit": "e0887c1e336edbb01243e9f1e60d74b0bc0a2bed" }, + "typst-preview.nvim": { "branch": "master", "commit": "2503b188cd2a17ce44fdd21a944a93335e935215" }, "undotree": { "branch": "master", "commit": "b951b87b46c34356d44aa71886aecf9dd7f5788a" }, - "vim-dadbod": { "branch": "master", "commit": "9f0ca8bcef704659820a95c3bbd2c262583a66a1" }, + "vim-dadbod": { "branch": "master", "commit": "fa31d0ffeebaa59cf97a81e7f92194cced54a13f" }, "vim-dadbod-completion": { "branch": "master", "commit": "a8dac0b3cf6132c80dc9b18bef36d4cf7a9e1fe6" }, - "vim-dadbod-ui": { "branch": "master", "commit": "685e75b34ee0e12f92ec4507ea8bb7f1aaa936e5" }, + "vim-dadbod-ui": { "branch": "master", "commit": "460432301a5cb280ea265ddfa15c9f3dcd1d26b7" }, "vim-fugitive": { "branch": "master", "commit": "4a745ea72fa93bb15dd077109afbb3d1809383f2" }, "vim-hugo": { "branch": "master", "commit": "324fb8c7371d31701349c1192e25a0bdcf9898f8" }, "vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" }, - "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" } + "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" }, + "windsurf.vim": { "branch": "main", "commit": "272c6e2755e8faa90e26bcdcd9fde6b9e61751ea" } } diff --git a/lua/config/autocomands.lua b/lua/config/autocomands.lua index cfe4fa6..99e075c 100644 --- a/lua/config/autocomands.lua +++ b/lua/config/autocomands.lua @@ -1,7 +1,6 @@ -- Create autogroups first local MZuninoGroup = vim.api.nvim_create_augroup("mzunino", {}) local yank_group = vim.api.nvim_create_augroup("HighlightYank", {}) -local bigfile_group = vim.api.nvim_create_augroup("bigfile", {}) -- Set bigfile size threshold vim.g.bigfile_size = 1024 * 1024 * 1.5 -- 1.5 MB @@ -50,15 +49,3 @@ vim.filetype.add({ }, }, }) - --- Bigfile handling -vim.api.nvim_create_autocmd("FileType", { - group = bigfile_group, - pattern = "bigfile", - callback = function(ev) - vim.b.minianimate_disable = true - vim.schedule(function() - vim.bo[ev.buf].syntax = vim.filetype.match({ buf = ev.buf }) or "" - end) - end, -}) diff --git a/lua/config/lsp/vtsls.lua b/lua/config/lsp/vtsls.lua new file mode 100644 index 0000000..81b6909 --- /dev/null +++ b/lua/config/lsp/vtsls.lua @@ -0,0 +1,39 @@ +return { + -- explicitly add default filetypes, so that we can extend + -- them in related extras + filetypes = { + "javascript", + "javascriptreact", + "javascript.jsx", + "typescript", + "typescriptreact", + "typescript.tsx", + }, + settings = { + complete_function_calls = true, + vtsls = { + enableMoveToFileCodeAction = true, + autoUseWorkspaceTsdk = true, + experimental = { + maxInlayHintLength = 30, + completion = { + enableServerSideFuzzyMatch = true, + }, + }, + }, + typescript = { + updateImportsOnFileMove = { enabled = "always" }, + suggest = { + completeFunctionCalls = true, + }, + inlayHints = { + enumMemberValues = { enabled = true }, + functionLikeReturnTypes = { enabled = true }, + parameterNames = { enabled = "literals" }, + parameterTypes = { enabled = true }, + propertyDeclarationTypes = { enabled = true }, + variableTypes = { enabled = false }, + }, + }, + }, +} diff --git a/lua/config/remap.lua b/lua/config/remap.lua index 2af866f..279afd5 100644 --- a/lua/config/remap.lua +++ b/lua/config/remap.lua @@ -39,9 +39,9 @@ end, { desc = "Quit all" }) -- create a user command to save without formatting :noa w vim.api.nvim_create_user_command("W", function() - -- if buffer is empty, don't save if vim.fn.empty(vim.fn.expand("%:t")) == 1 then - return vim.notify("Buffer is empty, not saving", vim.log.levels.ERROR) + Snacks.notifier.notify("Buffer is empty, not saving", vim.log.levels.ERROR) + return end vim.api.nvim_command("noa w") end, { nargs = 0, desc = "Save without formatting" }) diff --git a/lua/globals/map.lua b/lua/globals/map.lua index f3197c3..09be7f3 100644 --- a/lua/globals/map.lua +++ b/lua/globals/map.lua @@ -15,3 +15,13 @@ end _G.vmap = function(keys, func, opts) _G.map("v", keys, func, opts) end + +_G.dd = function(...) + Snacks.debug.inspect(...) +end + +_G.bt = function() + Snacks.debug.backtrace() +end + +vim.print = _G.dd diff --git a/lua/plugins/ai.lua b/lua/plugins/ai.lua index 2c0139d..2859a4d 100644 --- a/lua/plugins/ai.lua +++ b/lua/plugins/ai.lua @@ -1,13 +1,10 @@ local M = { - "Exafunction/codeium.vim", - cmd = "Codeium", - keys = { - { "ce", "Codeium Toggle", desc = "Codeium Enable" }, - }, + "Exafunction/windsurf.vim", } M.config = function() vim.g.codeium_disable_bindings = 1 + vim.g.codeium_enabled = 0 imap("", function() return vim.fn["codeium#Accept"]() @@ -24,6 +21,11 @@ M.config = function() imap("", function() return vim.fn["codeium#Clear"]() end, { expr = true, silent = true, desc = "[codeium] Clear" }) + + nmap("ce", function() + vim.cmd("Codeium Toggle") + Snacks.notifier.notify("Codeium " .. (vim.g.codeium_enabled == 1 and "enabled" or "disabled")) + end, { expr = true, silent = true, desc = "[codeium] Toggle" }) end return M diff --git a/lua/plugins/blankline.lua b/lua/plugins/blankline.lua deleted file mode 100644 index 0a6d578..0000000 --- a/lua/plugins/blankline.lua +++ /dev/null @@ -1,31 +0,0 @@ -local M = { - "lukas-reineke/indent-blankline.nvim", - main = "ibl", -} - -M.config = function() - require("ibl").setup({ - indent = { - char = "│", - tab_char = "│", - }, - scope = { enabled = false }, - exclude = { - filetypes = { - "help", - "alpha", - "dashboard", - "neo-tree", - "Trouble", - "trouble", - "lazy", - "mason", - "notify", - "toggleterm", - "lazyterm", - }, - }, - }) -end - -return M diff --git a/lua/plugins/chezmoi.lua b/lua/plugins/chezmoi.lua deleted file mode 100644 index 824ecf3..0000000 --- a/lua/plugins/chezmoi.lua +++ /dev/null @@ -1,31 +0,0 @@ -return { - "xvzc/chezmoi.nvim", - dependencies = { "nvim-lua/plenary.nvim" }, - config = function() - require("chezmoi").setup({ - -- your configurations - edit = { - watch = true, -- Set true to automatically apply on save. - force = true, -- Set true to force apply. Works only when watch = true. - }, - notification = { - on_open = true, -- vim.notify when start editing chezmoi-managed file. - on_apply = true, -- vim.notify on apply. - }, - }) - - vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, { - pattern = { os.getenv("HOME") .. "/.local/share/chezmoi/*" }, - callback = function() - -- invoke with vim.schedule() for better startup time - vim.schedule(require("chezmoi.commands.__edit").watch) - end, - }) - - -- Auto-apply chezmoi changes - vim.api.nvim_create_autocmd("BufWritePost", { - pattern = { os.getenv("HOME") .. "/.local/share/chezmoi/*" }, - command = [[silent! !chezmoi apply --source-path "%"]], - }) - end, -} diff --git a/lua/plugins/ui/colors.lua b/lua/plugins/colors.lua similarity index 100% rename from lua/plugins/ui/colors.lua rename to lua/plugins/colors.lua diff --git a/lua/plugins/completion.lua b/lua/plugins/completion.lua index 997686b..b3ab336 100644 --- a/lua/plugins/completion.lua +++ b/lua/plugins/completion.lua @@ -1,8 +1,11 @@ local M = { "saghen/blink.cmp", - dependencies = { "L3MON4D3/LuaSnip", version = "v2.*" }, - - version = "v1.*", + dependencies = { + "nvim-lua/plenary.nvim", + { "L3MON4D3/LuaSnip", version = "v2.*" }, + "folke/lazydev.nvim", + }, + version = "*", } M.config = function() @@ -26,19 +29,22 @@ M.config = function() nerd_font_variant = "mono", }, - snippets = { preset = "luasnip" }, + snippets = { + preset = "luasnip", + }, sources = { - default = { "lsp", "path", "snippets", "buffer", "dadbod" }, + default = { "lsp", "path", "snippets", "buffer", "dadbod", "lazydev" }, providers = { dadbod = { name = "Dadbod", module = "vim_dadbod_completion.blink" }, + lazydev = { module = "lazydev.integrations.blink", score_offset = 100 }, }, }, signature = { enabled = true, window = { - border = "single", + border = "rounded", }, }, @@ -50,7 +56,7 @@ M.config = function() }, }, menu = { - border = "single", + border = "rounded", draw = { components = { kind_icon = { @@ -70,6 +76,10 @@ M.config = function() return ctx.mode ~= "default" end, }, + documentation = { + auto_show = true, + auto_show_delay_ms = 200, + }, }, fuzzy = { diff --git a/lua/plugins/db.lua b/lua/plugins/db.lua index 94fe64c..ca4044a 100644 --- a/lua/plugins/db.lua +++ b/lua/plugins/db.lua @@ -12,7 +12,7 @@ local M = { M.config = function() vim.g.db_ui_use_nerd_fonts = 1 -- g:db_ui_save_location - vim.g.db_ui_save_location = "~/Sync/saved_queries" + vim.g.db_ui_save_location = "~/Sync/Work/Stuzo/queries" end return M diff --git a/lua/plugins/diagnostics.lua b/lua/plugins/diagnostics.lua index 8e65ea0..883743f 100644 --- a/lua/plugins/diagnostics.lua +++ b/lua/plugins/diagnostics.lua @@ -1,59 +1,69 @@ local M = { - "folke/trouble.nvim", - branch = "main", + "stevearc/quicker.nvim", + -- Set plugin to load on VimEnter instead of FileType qf to ensure diagnostics are configured early + event = { "VimEnter" }, + -- Add an explicit dependency for diagnostics loading + dependencies = { "nvim-lspconfig" }, -- Assuming you're using nvim-lspconfig } -local function setup_keymaps(trouble) - -- Diagnostic navigation - nmap("[d", function() - vim.diagnostic.jump({ count = -1, float = true }) - end, { desc = "Previous diagnostic" }) +-- Move sign registration outside of the config function to ensure it runs early +local function register_diagnostic_signs() + -- Define diagnostic sign icons + local sign_icons = { + [vim.diagnostic.severity.ERROR] = "󰅙", -- Alternative error symbol + [vim.diagnostic.severity.WARN] = "󱈸", -- Alternative warning + [vim.diagnostic.severity.HINT] = "󰮱", -- Star for hints + [vim.diagnostic.severity.INFO] = "󰋼", -- Info circle + } - nmap("]d", function() - vim.diagnostic.jump({ count = 1, float = true }) - end, { desc = "Next diagnostic" }) + -- Register signs explicitly + for severity, icon in pairs(sign_icons) do + local name = "DiagnosticSign" .. vim.diagnostic.severity[severity] + vim.fn.sign_define(name, { text = icon, texthl = name }) + end - -- Trouble specific navigation - nmap("", function() - trouble.previous({ skip_groups = true, jump = true }) - end, { desc = "Previous trouble item" }) - nmap("", function() - trouble.next({ skip_groups = true, jump = true }) - end, { desc = "Next trouble item" }) + -- Set sign highlights for better visibility + vim.cmd([[ + highlight DiagnosticSignError guifg=#f7768e gui=bold + highlight DiagnosticSignWarn guifg=#e0af68 gui=bold + highlight DiagnosticSignInfo guifg=#7dcfff gui=bold + highlight DiagnosticSignHint guifg=#9ece6a gui=bold + ]]) +end - -- Trouble mode toggles - nmap("tt", "TroubleToggle", { desc = "Toggle trouble" }) - nmap("tw", "TroubleToggle workspace_diagnostics", { desc = "Workspace diagnostics" }) - nmap("td", "TroubleToggle document_diagnostics", { desc = "Document diagnostics" }) - nmap("tq", "TroubleToggle quickfix", { desc = "Quickfix list" }) - nmap("tl", "TroubleToggle loclist", { desc = "Location list" }) +-- This will now be called during setup() which happens at init +M.init = function() + register_diagnostic_signs() end local function setup_diagnostic_config() + -- Define prettier diagnostic icons + local diagnostic_icons = { + [vim.diagnostic.severity.ERROR] = "󰅚", -- More prominent error symbol + [vim.diagnostic.severity.WARN] = "󰀦", -- Warning triangle + [vim.diagnostic.severity.HINT] = "󰌵", -- Lightbulb for hints + [vim.diagnostic.severity.INFO] = "󰋽", -- Information symbol + } + + -- Configure diagnostics vim.diagnostic.config({ virtual_text = { prefix = "●", suffix = "", format = function(diagnostic) - local icons = { - [vim.diagnostic.severity.ERROR] = " ", - [vim.diagnostic.severity.WARN] = " ", - [vim.diagnostic.severity.HINT] = " ", - [vim.diagnostic.severity.INFO] = " ", - } - local icon = icons[diagnostic.severity] or "" + local icon = diagnostic_icons[diagnostic.severity] or "" return string.format("%s %s", icon, diagnostic.message) end, }, - underline = false, + underline = true, -- Enable underline for better visibility update_in_insert = false, signs = { active = true, text = { - [vim.diagnostic.severity.ERROR] = "", - [vim.diagnostic.severity.WARN] = "", - [vim.diagnostic.severity.HINT] = "", - [vim.diagnostic.severity.INFO] = "", + [vim.diagnostic.severity.ERROR] = "󰅙", -- Alternative error symbol + [vim.diagnostic.severity.WARN] = "󱈸", -- Alternative warning + [vim.diagnostic.severity.HINT] = "󰮱", -- Star for hints + [vim.diagnostic.severity.INFO] = "󰋼", -- Info circle }, }, float = { @@ -65,62 +75,72 @@ local function setup_diagnostic_config() prefix = "", format = function(diagnostic) local severity = vim.diagnostic.severity[diagnostic.severity] - return string.format("%s: %s", severity:lower(), diagnostic.message) + local icon = diagnostic_icons[diagnostic.severity] or "" + return string.format("%s %s: %s", icon, severity:lower(), diagnostic.message) end, }, severity_sort = true, }) end +local function cycle_qf(cmd) + local qf_list_empty = vim.fn.getqflist({ size = 0 }).size == 0 + if qf_list_empty then + return + end + local current_qf = vim.fn.getqflist({ idx = 0 }).idx + local qf_size = vim.fn.getqflist({ size = 0 }).size + if cmd == "next" then + if current_qf == qf_size then + vim.cmd("cfirst") + else + vim.cmd("cnext") + end + elseif cmd == "prev" then + if current_qf == 1 then + vim.cmd("clast") + else + vim.cmd("cprev") + end + end +end + function M.config() - local trouble = require("trouble") - - trouble.setup({ - position = "bottom", - height = 10, - width = 50, - -- icons = false, - mode = "workspace_diagnostics", - fold_open = "", - fold_closed = "", - group = true, - padding = true, - action_keys = { - close = "q", -- close the list - cancel = "", -- cancel the preview and get back to your last window / buffer / cursor - refresh = "r", -- manually refresh - jump = { "", "" }, -- jump to the diagnostic or open / close folds - open_split = { "" }, -- open buffer in new split - open_vsplit = { "" }, -- open buffer in new vsplit - open_tab = { "" }, -- open buffer in new tab - toggle_mode = "m", -- toggle between "workspace" and "document" mode - toggle_preview = "P", -- toggle auto_preview - preview = "p", -- preview the diagnostic location - close_folds = { "zM", "zm" }, -- close all folds - open_folds = { "zR", "zr" }, -- open all folds - toggle_fold = { "zA", "za" }, -- toggle fold of current file - previous = "k", -- previous item - next = "j", -- next item + local opts = { + keys = { + { + ">", + function() + require("quicker").expand({ before = 2, after = 2, add_to_existing = true }) + end, + desc = "Expand quickfix context", + }, + { + "<", + function() + require("quicker").collapse() + end, + desc = "Collapse quickfix context", + }, }, - auto_preview = true, - auto_fold = false, - auto_jump = { "lsp_definitions" }, - -- signs = { - -- -- Icons / text used for a diagnostic - -- error = "", - -- warning = "", - -- hint = "", - -- information = "", - -- other = "", - -- }, - use_diagnostic_signs = false, - }) - - -- Setup keymaps - setup_keymaps(trouble) - - -- Setup diagnostic configuration + type_icons = { + E = "󰅚 ", -- Error + W = "󰀦 ", -- Warning + I = "󰋽 ", -- Info + N = "󰎚 ", -- Note + H = "󰌵 ", -- Hint + }, + } + require("quicker").setup(opts) setup_diagnostic_config() + + -- Replace the existing mappings with the cycling versions + nmap("", function() + cycle_qf("next") + end, { desc = "Next quickfix item (cycles)" }) + nmap("", function() + cycle_qf("prev") + end, { desc = "Previous quickfix item (cycles)" }) end return M diff --git a/lua/plugins/fold.lua b/lua/plugins/fold.lua index 6d0f8b8..b7f6f53 100644 --- a/lua/plugins/fold.lua +++ b/lua/plugins/fold.lua @@ -1,53 +1,26 @@ -local M = { - "bbjornstad/pretty-fold.nvim", +return { + "kevinhwang91/nvim-ufo", + event = "BufRead", + dependencies = "kevinhwang91/promise-async", + config = function() + vim.o.foldcolumn = "0" -- '0' is not bad + vim.o.foldlevel = 99 -- Using ufo provider need a large value, feel free to decrease the value + vim.o.foldlevelstart = 99 + vim.o.foldenable = true + + vim.keymap.set("n", "zA", require("ufo").openAllFolds, { desc = "Open all folds" }) + vim.keymap.set("n", "zC", require("ufo").closeAllFolds, { desc = "Close all folds" }) + vim.keymap.set("n", "zk", function() + local winid = require("ufo").peekFoldedLinesUnderCursor() + if not winid then + vim.lsp.buf.hover() + end + end, { desc = "Peek Fold" }) + + require("ufo").setup({ + provider_selector = function() + return { "lsp", "indent" } + end, + }) + end, } - -M.config = function() - local global_setup = { - sections = { - left = { "content" }, - right = { - " ", - function() - return ("[%dL]"):format(vim.v.foldend - vim.v.foldstart) - end, - "[", - "percentage", - "]", - }, - }, - matchup_patterns = { - { "{", "}" }, - { "%(", ")" }, - { "%[", "]" }, - }, - process_comment_signs = ({ "delete", "spaces", false })[2], - } - - local function ft_setup(lang, options) -- {{{ - local opts = vim.tbl_deep_extend("force", global_setup, options) - if opts and opts.matchup_patterns and global_setup.matchup_patterns then - opts.matchup_patterns = vim.list_extend(opts.matchup_patterns, global_setup.matchup_patterns) - end - require("pretty-fold").ft_setup(lang, opts) - end -- }}} - - require("pretty-fold").setup(global_setup) - - ft_setup("lua", { - matchup_patterns = { - { "^%s*do$", "end" }, - { "^%s*if", "end" }, - { "^%s*for", "end" }, - { "function[^%(]*%(", "end" }, - }, - }) - - ft_setup("vim", { - matchup_patterns = { - { "^%s*function!?[^%(]*%(", "endfunction" }, - }, - }) -end - -return M diff --git a/lua/plugins/format.lua b/lua/plugins/format.lua index 70598e9..a26929a 100644 --- a/lua/plugins/format.lua +++ b/lua/plugins/format.lua @@ -12,9 +12,12 @@ return { svelte = { lsp_format = "fallback" }, html = { "prettierd", "prettier" }, typescript = { "prettierd", "prettier" }, - lua = { "stylua" }, + typescriptreact = { "prettierd", "prettier" }, javascript = { "prettierd", "prettier", stop_after_first = true }, json = { "prettierd", "prettier" }, + htmlhugo = { "prettierd", "prettier" }, + markdown = { "prettierd", "prettier" }, + lua = { "stylua" }, sh = { "shfmt" }, bash = { "shfmt" }, tex = { "latexindent" }, @@ -25,8 +28,6 @@ return { cpp = { "clang-format" }, hcl = { "hcl" }, toml = { "taplo" }, - htmlhugo = { "prettierd", "prettier" }, - markdown = { "prettierd", "prettier" }, }, formatters = { csharpier = { diff --git a/lua/plugins/fzf.lua b/lua/plugins/fzf.lua index 580a527..b4707a9 100644 --- a/lua/plugins/fzf.lua +++ b/lua/plugins/fzf.lua @@ -3,10 +3,6 @@ local M = { } M.config = function() - local config = require("fzf-lua.config") - local actions = require("trouble.sources.fzf").actions - config.defaults.actions.files["ctrl-q"] = actions.open - local fzf_lua = require("fzf-lua") -- Basic fzf-lua setup diff --git a/lua/plugins/git.lua b/lua/plugins/git.lua index 68ff337..4b5f1df 100644 --- a/lua/plugins/git.lua +++ b/lua/plugins/git.lua @@ -24,13 +24,13 @@ local M = { callback = function() nmap("P", function() local cmd = "git push --force-with-lease" - vim.notify("Pushing...", vim.log.levels.INFO) + Snacks.notifier.notify("Pushing...", vim.log.levels.INFO) vim.fn.jobstart(cmd, { on_exit = function(_, code) if code == 0 then - vim.notify("Push completed successfully", vim.log.levels.INFO) + Snacks.notifier.notify("Push completed successfully", vim.log.levels.INFO) else - vim.notify("Push failed with exit code: " .. code, vim.log.levels.ERROR) + Snacks.notifier.notify("Push failed with exit code: " .. code, vim.log.levels.ERROR) end end, detach = true, @@ -41,6 +41,22 @@ local M = { local win_id = vim.api.nvim_get_current_win() vim.api.nvim_win_close(win_id, false) end, { buffer = true, desc = "Close window" }) + + -- Git Pull + nmap("gp", function() + local cmd = "git pull" + Snacks.notifier.notify("Pulling...", vim.log.levels.INFO) + vim.fn.jobstart(cmd, { + on_exit = function(_, code) + if code == 0 then + Snacks.notifier.notify("Pull completed successfully", vim.log.levels.INFO) + else + Snacks.notifier.notify("Pull failed with exit code: " .. code, vim.log.levels.ERROR) + end + end, + detach = true, + }) + end, { buffer = true, desc = "Close window" }) end, }) end, diff --git a/lua/plugins/knap.lua b/lua/plugins/knap.lua index 933ceda..577109a 100644 --- a/lua/plugins/knap.lua +++ b/lua/plugins/knap.lua @@ -23,4 +23,10 @@ return { }) end, }, + { + "chomosuke/typst-preview.nvim", + lazy = false, -- or ft = 'typst' + version = "1.*", + opts = {}, -- lazy.nvim will implicitly calls `setup {}` + }, } diff --git a/lua/plugins/lint.lua b/lua/plugins/lint.lua index ed4c8fe..fdded7a 100644 --- a/lua/plugins/lint.lua +++ b/lua/plugins/lint.lua @@ -10,10 +10,12 @@ M.config = function() local lint = require("lint") lint.linters_by_ft = { - javascript = {}, - typescript = {}, - javascriptreact = {}, - typescriptreact = {}, + -- fuck this shit, 1.5Gb of RAM for this crap + -- + -- javascript = {"eslint_d"}, + -- typescript = {"eslint_d"}, + -- javascriptreact = {"eslint_d"}, + -- typescriptreact = {"eslint_d"}, } local lint_augroup = vim.api.nvim_create_augroup("lint", { clear = true }) diff --git a/lua/plugins/lsp/extras/typescript.lua b/lua/plugins/lsp/extras/typescript.lua deleted file mode 100644 index 364bb15..0000000 --- a/lua/plugins/lsp/extras/typescript.lua +++ /dev/null @@ -1,68 +0,0 @@ -return { - "pmizio/typescript-tools.nvim", - dependencies = { - "nvim-lua/plenary.nvim", - "neovim/nvim-lspconfig", - }, - ft = { "typescript", "javascript", "jsx", "tsx", "json" }, - config = function() - local lsp_common = require("plugins.lsp").get_common_config() - local ts_api = require("typescript-tools.api") - local original_on_attach = lsp_common.on_attach - - lsp_common.on_attach = function(client, bufnr) - original_on_attach(client, bufnr) - vim.keymap.set("n", "ca", function() - local diagnostics = vim.diagnostic.get(0, { lnum = vim.fn.line(".") - 1 }) - local context = { diagnostics = diagnostics } - local params = vim.lsp.util.make_range_params(0) - params.context = context - - params = vim.tbl_extend("force", {}, params) - vim.lsp.buf_request(bufnr, "textDocument/codeAction", params, function(err, result, ctx) - local actions = result or {} - table.insert(actions, { title = "Organize Imports", command = "typescript.custom.organize_imports" }) - table.insert(actions, { title = "Fix All", command = "typescript.custom.fix_all" }) - table.insert(actions, { title = "Add Missing Imports", command = "typescript.custom.add_missing_imports" }) - table.insert(actions, { title = "Remove Unused", command = "typescript.custom.remove_unused" }) - vim.ui.select(actions, { - prompt = "Code Actions", - format_item = function(action) - return action.title - end, - }, function(action) - if not action then - return - end - if action.command == "typescript.custom.organize_imports" then - pcall(ts_api.organize_imports) - elseif action.command == "typescript.custom.fix_all" then - pcall(ts_api.fix_all) - elseif action.command == "typescript.custom.add_missing_imports" then - pcall(ts_api.add_missing_imports) - elseif action.command == "typescript.custom.remove_unused" then - pcall(ts_api.remove_unused) - else - if action.edit or type(action.command) == "table" then - if action.edit then - vim.lsp.util.apply_workspace_edit(action.edit, "utf-8") - end - if type(action.command) == "table" then - vim.lsp.buf.execute_command(action.command) - end - end - end - end) - end) - end, { buffer = bufnr, desc = "Code Actions" }) - end - - require("typescript-tools").setup(vim.tbl_deep_extend("force", lsp_common, { - settings = { - separate_diagnostic_server = true, - publish_diagnostic_on = "insert_leave", - expose_as_code_action = {}, - }, - })) - end, -} diff --git a/lua/plugins/lsp/init.lua b/lua/plugins/lsp/init.lua index acbb826..0c1c7b4 100644 --- a/lua/plugins/lsp/init.lua +++ b/lua/plugins/lsp/init.lua @@ -2,11 +2,13 @@ local M = { "neovim/nvim-lspconfig", dependencies = { "saghen/blink.cmp", + "williamboman/mason.nvim", "williamboman/mason-lspconfig.nvim", + "WhoIsSethDaniel/mason-tool-installer.nvim", + { "j-hui/fidget.nvim", opts = {} }, require("plugins.lsp.extras.lazydev"), require("plugins.lsp.extras.gopher"), - require("plugins.lsp.extras.typescript"), }, } @@ -93,6 +95,9 @@ function M.config() local ensure_installed = { -- LSP servers "gopls", + "jsonls", + "lua_ls", + "yamlls", "graphql-language-service-cli", "html-lsp", "htmx-lsp", @@ -101,6 +106,7 @@ function M.config() "omnisharp", "yaml-language-server", "svelte-language-server", + "vtsls", -- Formatters "prettierd", @@ -115,27 +121,12 @@ function M.config() "templ", } - -- Install missing tools - local registry = require("mason-registry") - for _, tool in ipairs(ensure_installed) do - if not registry.is_installed(tool) then - vim.cmd("MasonInstall " .. tool) - end - end + require("mason-tool-installer").setup({ ensure_installed = ensure_installed }) -- Set up Mason LSP config require("mason-lspconfig").setup({ - automatic_installation = true, - ensure_installed = { - "gopls", - "html", - "htmx", - "jsonls", - "lua_ls", - "omnisharp", - "yamlls", - "graphql", - }, + ensure_installed = {}, -- explicitly set to an empty table (populated via mason-tool-installer) + automatic_installation = false, handlers = { function(server_name) local base_opts = M.get_common_config() diff --git a/lua/plugins/mini.lua b/lua/plugins/mini.lua index 9b61b45..e5379b6 100644 --- a/lua/plugins/mini.lua +++ b/lua/plugins/mini.lua @@ -28,6 +28,54 @@ local M = { require("mini.surround").setup({}) end, }, + { + "echasnovski/mini.statusline", + version = false, + config = function() + require("mini.statusline").setup({}) + + MiniStatusline.section_codeium = function(args) + args = args or {} + local trunc_width = args.trunc_width or 75 + + if MiniStatusline.is_truncated(trunc_width) then + return "" + end + + local status = vim.fn["codeium#GetStatusString"]() + + if status and status ~= "" then + local icon = args.icon or "󰘦 " + return icon .. status + end + + return "" + end + + MiniStatusline.config.content.active = function() + local mode, mode_hl = MiniStatusline.section_mode({ trunc_width = 120 }) + local git = MiniStatusline.section_git({ trunc_width = 40 }) + local diff = MiniStatusline.section_diff({ trunc_width = 75 }) + local diagnostics = MiniStatusline.section_diagnostics({ trunc_width = 75 }) + local lsp = MiniStatusline.section_lsp({ trunc_width = 75 }) + local filename = MiniStatusline.section_filename({ trunc_width = 140 }) + local fileinfo = MiniStatusline.section_fileinfo({ trunc_width = 120 }) + local location = MiniStatusline.section_location({ trunc_width = 75 }) + local search = MiniStatusline.section_searchcount({ trunc_width = 75 }) + local codeium = MiniStatusline.section_codeium({ trunc_width = 75 }) + + return MiniStatusline.combine_groups({ + { hl = mode_hl, strings = { mode } }, + { hl = "MiniStatuslineDevinfo", strings = { git, diff, diagnostics, lsp } }, + "%<", -- Mark general truncate point + { hl = "MiniStatuslineFilename", strings = { filename } }, + "%=", -- End left alignment + { hl = "MiniStatuslineFileinfo", strings = { fileinfo } }, + { hl = mode_hl, strings = { codeium, search, location } }, + }) + end + end, + }, } return M diff --git a/lua/plugins/obsidian.lua b/lua/plugins/obsidian.lua new file mode 100644 index 0000000..c11c6a3 --- /dev/null +++ b/lua/plugins/obsidian.lua @@ -0,0 +1,28 @@ +return { + "epwalsh/obsidian.nvim", + version = "*", -- recommended, use latest release instead of latest commit + lazy = true, + ft = "markdown", + -- Replace the above line with this if you only want to load obsidian.nvim for markdown files in your vault: + -- event = { + -- -- If you want to use the home shortcut '~' here you need to call 'vim.fn.expand'. + -- -- E.g. "BufReadPre " .. vim.fn.expand "~" .. "/my-vault/*.md" + -- -- refer to `:h file-pattern` for more examples + -- "BufReadPre path/to/my-vault/*.md", + -- "BufNewFile path/to/my-vault/*.md", + -- }, + dependencies = { + -- Required. + "nvim-lua/plenary.nvim", + + -- see below for full list of optional dependencies 👇 + }, + opts = { + workspaces = { + { + name = "Vault", + path = "~/Documents/Vault/", + }, + }, + }, +} diff --git a/lua/plugins/oil.lua b/lua/plugins/oil.lua index 25f0b49..69b7f9d 100644 --- a/lua/plugins/oil.lua +++ b/lua/plugins/oil.lua @@ -61,9 +61,16 @@ M.config = function() }, }) - vim.keymap.set("n", "-", function() - require("oil").open() - end) + nmap("-", require("oil").open, { desc = "Open parent directory" }) + + vim.api.nvim_create_autocmd("User", { + pattern = "OilActionsPost", + callback = function(event) + if event.data.actions.type == "move" then + Snacks.rename.on_rename_file(event.data.actions.src_url, event.data.actions.dest_url) + end + end, + }) end return M diff --git a/lua/plugins/presenterm.lua b/lua/plugins/presenterm.lua index 6e01ec5..c279c6e 100644 --- a/lua/plugins/presenterm.lua +++ b/lua/plugins/presenterm.lua @@ -1,11 +1,9 @@ return { - dir = "/home/forbi/Dev/marianozunino/presenterm.nvim", + "marianozunino/presenterm.nvim", config = function() require("presenterm").setup({ patterns = { - "*.presenterm", "*.pterm", - "*.md", }, auto_launch = true, terminal_cmd = "kitty --title 'Presenterm: {title}' --override font_size=18 {cmd}", diff --git a/lua/plugins/qol.lua b/lua/plugins/qol.lua new file mode 100644 index 0000000..1cd15ef --- /dev/null +++ b/lua/plugins/qol.lua @@ -0,0 +1,58 @@ +return { + "folke/snacks.nvim", + priority = 1000, + config = function() + local snacks = require("snacks") + snacks.setup({ + bigfile = { enabled = true }, + debug = { enabled = true }, + image = { enabled = true }, + indent = { enabled = true, animate = { enabled = false } }, + rename = { enabled = true }, + notifier = { enabled = true }, + scroll = { + enabled = true, + animate = { + duration = { step = 5, total = 50 }, + easing = "linear", + }, + }, + dashboard = { + preset = { + keys = function() + return { + { icon = "⏻", key = "q", desc = "Quit", action = "qa" }, + { icon = "󱇧", key = "e", desc = "New Buffer", action = "ene" }, + } + end, + header = table.concat({ + [[ █ █ ]], + [[ █ ██ ]], + [[ ████ ]], + [[ ██ ███ ]], + [[ █ █ ]], + [[ ]], + [[ n e o v i m ]], + }, "\n"), + }, + sections = { + { + section = "header", + }, + { title = "MRU ", file = vim.fn.fnamemodify(".", ":~"), padding = 1 }, + { section = "recent_files", cwd = true, limit = 10, padding = 1 }, + { title = "GMRU", padding = 1 }, + { section = "recent_files", limit = 5, padding = 1 }, + { title = "Sessions", padding = 1 }, + { section = "projects", padding = 1 }, + { section = "keys", gap = 0, padding = 1 }, + }, + }, + }) + + nmap(".", snacks.scratch.open, { desc = "Toggle Scratch Buffer" }) + nmap(",", snacks.scratch.select, { desc = "Select Scratch Buffer" }) + -- Show notifier history + nmap("ns", snacks.notifier.show_history, { desc = "Show notifier history" }) + end, +} diff --git a/lua/plugins/ui/alpha.lua b/lua/plugins/ui/alpha.lua deleted file mode 100755 index c62a18a..0000000 --- a/lua/plugins/ui/alpha.lua +++ /dev/null @@ -1,17 +0,0 @@ -local M = { - "goolord/alpha-nvim", -} - -M.config = function() - local startify = require("alpha.themes.startify") - - startify.section.top_buttons.val = { - startify.button("e", "New file", "ene "), - startify.button("q", "Quit", "q "), - } - startify.section.bottom_buttons.val = {} - - require("alpha").setup(startify.config) -end - -return M diff --git a/lua/plugins/ui/dressing.lua b/lua/plugins/ui/dressing.lua deleted file mode 100644 index 834805e..0000000 --- a/lua/plugins/ui/dressing.lua +++ /dev/null @@ -1,9 +0,0 @@ -local M = { - "stevearc/dressing.nvim", -} - -M.config = function() - require("dressing").setup() -end - -return M diff --git a/lua/plugins/ui/init.lua b/lua/plugins/ui/init.lua deleted file mode 100644 index ca1f816..0000000 --- a/lua/plugins/ui/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local M = { - require("plugins.ui.colors"), - require("plugins.ui.alpha"), - require("plugins.ui.dressing"), - require("plugins.ui.whichkey"), - require("plugins.ui.noice"), - require("plugins.ui.scroll"), - require("plugins.ui.status"), -} - -return M diff --git a/lua/plugins/ui/noice.lua b/lua/plugins/ui/noice.lua deleted file mode 100644 index f98d9d8..0000000 --- a/lua/plugins/ui/noice.lua +++ /dev/null @@ -1,92 +0,0 @@ -local M = { - "folke/noice.nvim", - event = "VeryLazy", - dependencies = { - "MunifTanjim/nui.nvim", - }, -} - -M.config = function() - local noice = require("noice") - - noice.setup({ - routes = { - { - filter = { - event = "msg_show", - any = { - { find = "%d+L, %d+B" }, - { find = "; after #%d+" }, - { find = "; before #%d+" }, - { find = "%d fewer lines" }, - { find = "%d more lines" }, - }, - }, - opts = { skip = true }, - }, - }, - lsp = { - progress = { enabled = true }, - override = { - ["vim.lsp.util.convert_input_to_markdown_lines"] = true, - ["vim.lsp.util.stylize_markdown"] = true, - ["cmp.entry.get_documentation"] = true, - }, - hover = { silent = true }, - signature = { - auto_open = { throttle = vim.api.nvim_get_option_value("updatetime", { scope = "global" }) }, - }, - }, - cmdline = { - format = { - cmdline = { icon = "" }, - search_down = { icon = " " }, - search_up = { icon = " " }, - }, - }, - messages = { - enabled = false, - }, - popupmenu = { enabled = true }, - presets = { - bottom_search = true, - long_message_to_split = true, - lsp_doc_border = true, - }, - views = { - split = { - enter = true, - size = "25%", - win_options = { - signcolumn = "no", - number = false, - relativenumber = false, - list = false, - wrap = false, - }, - }, - popup = { border = { style = "rounded" } }, - hover = { - border = { style = "rounded" }, - position = { row = 2, col = 2 }, - }, - mini = { - timeout = 1000, - position = { row = 2, col = "99%" }, -- Positions at top-right - border = { style = "rounded" }, - win_options = { - winblend = vim.api.nvim_get_option_value("winblend", { scope = "global" }), - }, - }, - cmdline_popup = { border = { style = "rounded" } }, - confirm = { - border = { - style = "rounded", - padding = { 0, 1 }, - }, - }, - }, - }) -end - -return M diff --git a/lua/plugins/ui/scroll.lua b/lua/plugins/ui/scroll.lua deleted file mode 100644 index 79f44d8..0000000 --- a/lua/plugins/ui/scroll.lua +++ /dev/null @@ -1,41 +0,0 @@ -local M = { - "karb94/neoscroll.nvim", -} - -M.config = function() - require("neoscroll").setup({ - -- All these keys will be mapped to their corresponding default scrolling animation - mappings = { "", "" }, - hide_cursor = true, -- Hide cursor while scrolling - stop_eof = true, -- Stop at when scrolling downwards - respect_scrolloff = false, -- Stop scrolling when the cursor reaches the scrolloff margin of the file - cursor_scrolls_alone = true, -- The cursor will keep on scrolling even if the window cannot scroll further - easing_function = nil, -- Default easing function - pre_hook = nil, -- Function to run before the scrolling animation starts - post_hook = nil, -- Function to run after the scrolling animation ends - performance_mode = false, -- Disable "Performance Mode" on all buffers. - }) - local neoscroll = require("neoscroll") - - local t = { - [""] = function() - neoscroll.ctrl_u({ duration = 50 }) - end, - [""] = function() - neoscroll.ctrl_u({ duration = 50 }) - end, - [""] = function() - neoscroll.ctrl_d({ duration = 50 }) - end, - [""] = function() - neoscroll.ctrl_d({ duration = 50 }) - end, - } - - local modes = { "n", "v", "x" } - for key, func in pairs(t) do - vim.keymap.set(modes, key, func) - end -end - -return M diff --git a/lua/plugins/ui/status.lua b/lua/plugins/ui/status.lua deleted file mode 100644 index 13866de..0000000 --- a/lua/plugins/ui/status.lua +++ /dev/null @@ -1,66 +0,0 @@ -local M = { - "nvim-lualine/lualine.nvim", -} - -function M.config() - local lualine = require("lualine") - - local mode = "mode" - local filetype = { "filetype", icon_only = true } - - local diagnostics = { - "diagnostics", - sources = { "nvim_diagnostic" }, - sections = { "error", "warn", "info", "hint" }, - symbols = { - error = icons.diagnostics.Error, - hint = icons.diagnostics.Hint, - info = icons.diagnostics.Info, - warn = icons.diagnostics.Warning, - }, - colored = true, - update_in_insert = false, - always_visible = false, - } - - local diff = { - "diff", - source = function() - local gitsigns = vim.b.gitsigns_status_dict - if gitsigns then - return { - added = gitsigns.added, - modified = gitsigns.changed, - removed = gitsigns.removed, - } - end - end, - symbols = { - added = icons.git.LineAdded .. " ", - modified = icons.git.LineModified .. " ", - removed = icons.git.LineRemoved .. " ", - }, - colored = true, - always_visible = false, - } - - lualine.setup({ - options = { - theme = "auto", - globalstatus = true, - section_separators = "", - component_separators = "", - disabled_filetypes = { statusline = { "dashboard", "lazy", "alpha" } }, - }, - sections = { - lualine_a = { mode }, - lualine_b = {}, - lualine_c = { "filename" }, - lualine_x = { diff, diagnostics, filetype }, - lualine_y = {}, - lualine_z = {}, - }, - }) -end - -return M diff --git a/lua/plugins/ui/whichkey.lua b/lua/plugins/whichkey.lua similarity index 100% rename from lua/plugins/ui/whichkey.lua rename to lua/plugins/whichkey.lua