From 14cf97683dd4c8eb86ddd64780baea5cc468fea9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Kmie=C4=87?= Date: Thu, 23 May 2024 12:27:59 +0200 Subject: [PATCH] Nvim: minor tweaks for multiple plugins, better folds --- .config/nvim/lua/plugins/fold.lua | 65 +++++++++++++++++++++++-- .config/nvim/lua/plugins/gitsigns.lua | 4 +- .config/nvim/lua/plugins/lspconfig.lua | 6 --- .config/nvim/lua/plugins/nvim-tree.lua | 4 +- .config/nvim/lua/plugins/obsidian.lua | 7 --- .config/nvim/lua/plugins/snippets.lua | 22 --------- .config/nvim/lua/plugins/treesitter.lua | 3 +- .config/nvim/lua/plugins/trouble.lua | 2 +- 8 files changed, 67 insertions(+), 46 deletions(-) delete mode 100644 .config/nvim/lua/plugins/snippets.lua diff --git a/.config/nvim/lua/plugins/fold.lua b/.config/nvim/lua/plugins/fold.lua index 0e88edb..dc9f253 100644 --- a/.config/nvim/lua/plugins/fold.lua +++ b/.config/nvim/lua/plugins/fold.lua @@ -21,9 +21,64 @@ -- }, -return { - "chrisgrieser/nvim-origami", - event = "BufReadPost", -- later or on keypress would prevent saving folds - config = true, -- needed even when using default config - enabled = true +return +{ + { + "chrisgrieser/nvim-origami", + event = "BufReadPost", -- later or on keypress would prevent saving folds + opts = { + keepFoldsAcrossSessions = false, + }, + enabled = true + }, { + "kevinhwang91/nvim-ufo", + dependencies = { + "kevinhwang91/promise-async" + }, + config = function() + local handler = function(virtText, lnum, endLnum, width, truncate) + local newVirtText = {} + local suffix = (' 󰁂 %d '):format(endLnum - lnum) + local sufWidth = vim.fn.strdisplaywidth(suffix) + local targetWidth = width - sufWidth + local curWidth = 0 + for _, chunk in ipairs(virtText) do + local chunkText = chunk[1] + local chunkWidth = vim.fn.strdisplaywidth(chunkText) + if targetWidth > curWidth + chunkWidth then + table.insert(newVirtText, chunk) + else + chunkText = truncate(chunkText, targetWidth - curWidth) + local hlGroup = chunk[2] + table.insert(newVirtText, {chunkText, hlGroup}) + chunkWidth = vim.fn.strdisplaywidth(chunkText) + -- str width returned from truncate() may less than 2nd argument, need padding + if curWidth + chunkWidth < targetWidth then + suffix = suffix .. (' '):rep(targetWidth - curWidth - chunkWidth) + end + break + end + curWidth = curWidth + chunkWidth + end + table.insert(newVirtText, {suffix, 'MoreMsg'}) + return newVirtText + end + + vim.cmd [[ + hi default UfoFoldedFg guifg=Normal.foreground + hi default UfoFoldedBg guibg=Visual.background + hi default link UfoPreviewSbar PmenuSbar + hi default link UfoPreviewThumb PmenuThumb + hi default link UfoPreviewWinBar UfoFoldedBg + hi default link UfoPreviewCursorLine Visual + hi default link UfoFoldedEllipsis Visual + hi default link UfoCursorFoldedLine Normal + hi Folded gui=NONE guibg=Normal.background + ]] + + require("ufo").setup({ + fold_virt_text_handler = handler + }) + end + } } diff --git a/.config/nvim/lua/plugins/gitsigns.lua b/.config/nvim/lua/plugins/gitsigns.lua index fdbcdd7..27d773b 100644 --- a/.config/nvim/lua/plugins/gitsigns.lua +++ b/.config/nvim/lua/plugins/gitsigns.lua @@ -82,7 +82,7 @@ return { current_line_blame_opts = { virt_text = true, virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align' - delay = 5000, + delay = 2000, ignore_whitespace = true, }, current_line_blame_formatter_opts = { @@ -91,7 +91,7 @@ return { sign_priority = 6, update_debounce = 100, status_formatter = nil, -- Use default - max_file_length = 40000, + max_file_length = 4000, preview_config = { -- Options passed to nvim_open_win border = 'single', diff --git a/.config/nvim/lua/plugins/lspconfig.lua b/.config/nvim/lua/plugins/lspconfig.lua index 4a8a00e..51c3600 100644 --- a/.config/nvim/lua/plugins/lspconfig.lua +++ b/.config/nvim/lua/plugins/lspconfig.lua @@ -98,8 +98,6 @@ return { -- Mappings. vim.keymap.set('n', 'e', vim.diagnostic.open_float) - vim.keymap.set('n', '[d', vim.diagnostic.goto_prev) - vim.keymap.set('n', ']d', vim.diagnostic.goto_next) vim.keymap.set('n', 'E', vim.diagnostic.setloclist) -- Use an on_attach function to only map the following keys @@ -115,14 +113,10 @@ return { vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts) vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts) vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts) - vim.keymap.set('n', '', vim.lsp.buf.signature_help, opts) --vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder, opts) --vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder, opts) --vim.keymap.set('n', 'wl', function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end, opts) vim.keymap.set('n', 'D', vim.lsp.buf.type_definition, opts) - vim.keymap.set('n', 'rn', vim.lsp.buf.rename, opts) - --vim.keymap.set('n', 'ca', vim.lsp.buf.code_action, opts) - vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts) vim.keymap.set('n', '', 'ClangdSwitchSourceHeader', opts) vim.keymap.set("n", "q", function() vim.lsp.buf.format{ async = true } end, opts) diff --git a/.config/nvim/lua/plugins/nvim-tree.lua b/.config/nvim/lua/plugins/nvim-tree.lua index eba78c5..bfb83ae 100644 --- a/.config/nvim/lua/plugins/nvim-tree.lua +++ b/.config/nvim/lua/plugins/nvim-tree.lua @@ -1,7 +1,7 @@ return { - 'kyazdani42/nvim-tree.lua', + 'nvim-tree/nvim-tree.lua', dependencies = { - 'kyazdani42/nvim-web-devicons', + 'nvim-tree/nvim-web-devicons', }, config = function() vim.g.nvim_tree_refresh_wait = 1000 diff --git a/.config/nvim/lua/plugins/obsidian.lua b/.config/nvim/lua/plugins/obsidian.lua index 7360b04..9969fc1 100644 --- a/.config/nvim/lua/plugins/obsidian.lua +++ b/.config/nvim/lua/plugins/obsidian.lua @@ -1,6 +1,5 @@ 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: @@ -10,12 +9,6 @@ return { -- "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 = { { diff --git a/.config/nvim/lua/plugins/snippets.lua b/.config/nvim/lua/plugins/snippets.lua deleted file mode 100644 index 0c9b25a..0000000 --- a/.config/nvim/lua/plugins/snippets.lua +++ /dev/null @@ -1,22 +0,0 @@ -return { - 'dcampos/nvim-snippy', - dependencies = { - 'dcampos/cmp-snippy', - 'honza/vim-snippets', - }, - event = "InsertEnter", - config = function() - require('snippy').setup({ - mappings = { - is = { - [''] = 'expand_or_advance', - [''] = 'previous', - }, - nx = { - ['x'] = 'cut_text', - }, - }, - }) - end, - enabled = false -} diff --git a/.config/nvim/lua/plugins/treesitter.lua b/.config/nvim/lua/plugins/treesitter.lua index b498f13..09404ed 100644 --- a/.config/nvim/lua/plugins/treesitter.lua +++ b/.config/nvim/lua/plugins/treesitter.lua @@ -65,7 +65,7 @@ return { "yaml", }, indent = { - enable = true, + enable = false, }, incremental_selection = { enable = true, @@ -84,5 +84,6 @@ return { } vim.opt.foldmethod = "expr" vim.opt.foldexpr = "nvim_treesitter#foldexpr()" + vim.opt.foldlevelstart = 99 end } diff --git a/.config/nvim/lua/plugins/trouble.lua b/.config/nvim/lua/plugins/trouble.lua index 10cf0ab..e1c0862 100644 --- a/.config/nvim/lua/plugins/trouble.lua +++ b/.config/nvim/lua/plugins/trouble.lua @@ -1,7 +1,7 @@ return { 'folke/trouble.nvim', dependencies = { - 'kyazdani42/nvim-web-devicons', + 'nvim-tree/nvim-web-devicons', }, config = true, }