diff options
| -rw-r--r-- | ftplugin/lua.lua | 3 | ||||
| -rw-r--r-- | ftplugin/rust.lua | 138 | ||||
| -rw-r--r-- | lua/default-config.lua | 3 | ||||
| -rw-r--r-- | lua/lv-barbar/init.lua | 3 | ||||
| -rw-r--r-- | lua/lv-bufferline/init.lua | 52 | ||||
| -rw-r--r-- | lua/plugins.lua | 31 | 
6 files changed, 145 insertions, 85 deletions
| diff --git a/ftplugin/lua.lua b/ftplugin/lua.lua index cfcd9b92..bd541177 100644 --- a/ftplugin/lua.lua +++ b/ftplugin/lua.lua @@ -23,7 +23,8 @@ require'lspconfig'.sumneko_lua.setup {                      [vim.fn.expand('$VIMRUNTIME/lua')] = true,                      [vim.fn.expand('$VIMRUNTIME/lua/vim/lsp')] = true                  }, -                maxPreload = 10000 +                maxPreload = 100000, +                preloadFileSize = 1000              }          }      } diff --git a/ftplugin/rust.lua b/ftplugin/rust.lua index d210cadb..2fddb982 100644 --- a/ftplugin/rust.lua +++ b/ftplugin/rust.lua @@ -1,75 +1,87 @@ -local opts = { -    tools = { -- rust-tools options -        -- automatically set inlay hints (type hints) -        -- There is an issue due to which the hints are not applied on the first -        -- opened file. For now, write to the file to trigger a reapplication of -        -- the hints or just run :RustSetInlayHints. -        -- default: true -        autoSetHints = true, - -        -- whether to show hover actions inside the hover window -        -- this overrides the default hover handler -        -- default: true -        hover_with_actions = true, - -        runnables = { -            -- whether to use telescope for selection menu or not +if O.lang.rust.rust_tools.active then +    local opts = { +        tools = { -- rust-tools options +            -- automatically set inlay hints (type hints) +            -- There is an issue due to which the hints are not applied on the first +            -- opened file. For now, write to the file to trigger a reapplication of +            -- the hints or just run :RustSetInlayHints.              -- default: true -            use_telescope = true +            autoSetHints = true, -            -- rest of the opts are forwarded to telescope -        }, - -        inlay_hints = { -            -- wheter to show parameter hints with the inlay hints or not +            -- whether to show hover actions inside the hover window +            -- this overrides the default hover handler              -- default: true -            show_parameter_hints = true, - -            -- prefix for parameter hints -            -- default: "<-" -            parameter_hints_prefix = "<-", - -            -- prefix for all the other hints (type, chaining) -            -- default: "=>" -            other_hints_prefix = "=>", - -            -- whether to align to the lenght of the longest line in the file -            max_len_align = false, - -            -- padding from the left if max_len_align is true -            max_len_align_padding = 1, - -            -- whether to align to the extreme right or not -            right_align = false, - -            -- padding from the right if right_align is true -            right_align_padding = 7 +            hover_with_actions = true, + +            runnables = { +                -- whether to use telescope for selection menu or not +                -- default: true +                use_telescope = true + +                -- rest of the opts are forwarded to telescope +            }, + +            inlay_hints = { +                -- wheter to show parameter hints with the inlay hints or not +                -- default: true +                show_parameter_hints = true, + +                -- prefix for parameter hints +                -- default: "<-" +                parameter_hints_prefix = "<-", + +                -- prefix for all the other hints (type, chaining) +                -- default: "=>" +                other_hints_prefix = "=>", + +                -- whether to align to the lenght of the longest line in the file +                max_len_align = false, + +                -- padding from the left if max_len_align is true +                max_len_align_padding = 1, + +                -- whether to align to the extreme right or not +                right_align = false, + +                -- padding from the right if right_align is true +                right_align_padding = 7 +            }, + +            hover_actions = { +                -- the border that is used for the hover window +                -- see vim.api.nvim_open_win() +                border = { +                    {"╭", "FloatBorder"}, {"─", "FloatBorder"}, +                    {"╮", "FloatBorder"}, {"│", "FloatBorder"}, +                    {"╯", "FloatBorder"}, {"─", "FloatBorder"}, +                    {"╰", "FloatBorder"}, {"│", "FloatBorder"} +                } +            }          }, -        hover_actions = { -            -- the border that is used for the hover window -            -- see vim.api.nvim_open_win() -            border = { -                {"╭", "FloatBorder"}, {"─", "FloatBorder"}, -                {"╮", "FloatBorder"}, {"│", "FloatBorder"}, -                {"╯", "FloatBorder"}, {"─", "FloatBorder"}, -                {"╰", "FloatBorder"}, {"│", "FloatBorder"} -            } -        } -    }, +        -- all the opts to send to nvim-lspconfig +        -- these override the defaults set by rust-tools.nvim +        -- see https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#rust_analyzer +        server = { +            cmd = {DATA_PATH .. "/lspinstall/rust/rust-analyzer"}, +            on_attach = require'lsp'.common_on_attach +        } -- rust-analyser options +    } +    require('rust-tools').setup(opts) + +else -    -- all the opts to send to nvim-lspconfig -    -- these override the defaults set by rust-tools.nvim -    -- see https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#rust_analyzer -    server = { +    require'lspconfig'.rust_analyzer.setup {          cmd = {DATA_PATH .. "/lspinstall/rust/rust-analyzer"}, -        on_attach = require'lsp'.common_on_attach -    } -- rust-analyser options -} +        on_attach = require'lsp'.common_on_attach, +        filetypes = {"rust"}, +        root_dir = require'lspconfig.util'.root_pattern("Cargo.toml", +                                                         "rust-project.json") +    } -require('rust-tools').setup(opts) +end --- TODO add this later +-- TODO fix these mappings  vim.api.nvim_exec([[      autocmd Filetype rust nnoremap <leader>lm <Cmd>RustExpandMacro<CR>      autocmd Filetype rust nnoremap <leader>lH <Cmd>RustToggleInlayHints<CR> diff --git a/lua/default-config.lua b/lua/default-config.lua index 7a26f242..9563ffe5 100644 --- a/lua/default-config.lua +++ b/lua/default-config.lua @@ -167,6 +167,9 @@ O = {          yaml = {},          terraform = {},          rust = { +            rust_tools = { +                active = false +            },              linter = '',              formatter = '',              autoformat = false, diff --git a/lua/lv-barbar/init.lua b/lua/lv-barbar/init.lua deleted file mode 100644 index 49c1206b..00000000 --- a/lua/lv-barbar/init.lua +++ /dev/null @@ -1,3 +0,0 @@ -vim.api.nvim_set_keymap('n', '<TAB>', ':BufferNext<CR>', { noremap = true, silent = true }) -vim.api.nvim_set_keymap('n', '<S-TAB>', ':BufferPrevious<CR>', { noremap = true, silent = true }) -vim.api.nvim_set_keymap('n', '<S-x>', ':BufferClose<CR>', { noremap = true, silent = true }) diff --git a/lua/lv-bufferline/init.lua b/lua/lv-bufferline/init.lua new file mode 100644 index 00000000..c6c37371 --- /dev/null +++ b/lua/lv-bufferline/init.lua @@ -0,0 +1,52 @@ +local M = {} + +M.config = function() +require('bufferline').setup { +  options = { +    -- numbers = "none" | "ordinal" | "buffer_id" | "both", +    -- number_style = "superscript" | "" | { "none", "subscript" }, -- buffer_id at index 1, ordinal at index 2 +    -- mappings = true | false, +    -- close_command = "bdelete! %d",       -- can be a string | function, see "Mouse actions" +    -- right_mouse_command = "bdelete! %d", -- can be a string | function, see "Mouse actions" +    -- left_mouse_command = "buffer %d",    -- can be a string | function, see "Mouse actions" +    middle_mouse_command = nil,          -- can be a string | function, see "Mouse actions" +    indicator_icon = '▎', +    buffer_close_icon = '', +    modified_icon = '●', +    close_icon = '', +    left_trunc_marker = '', +    right_trunc_marker = '', +    --- name_formatter can be used to change the buffer's label in the bufferline. +    --- Please note some names can/will break the +    --- bufferline so use this at your discretion knowing that it has +    --- some limitations that will *NOT* be fixed. +    -- name_formatter = function(buf)  -- buf contains a "name", "path" and "bufnr" +    --   -- remove extension from markdown files for example +    --   if buf.name:match('%.md') then +    --     return vim.fn.fnamemodify(buf.name, ':t:r') +    --   end +    -- end, +    max_name_length = 18, +    max_prefix_length = 15, -- prefix used when a buffer is de-duplicated +    tab_size = 18, +    -- diagnostics = "nvim_lsp", +    offsets = {{filetype = "NvimTree", text = "File Explorer", text_align = "left", padding = 1}}, +    -- show_buffer_icons = true | false, -- disable filetype icons for buffers +    show_buffer_close_icons = true +    -- show_close_icon = true | false, +    -- show_tab_indicators = true | false, +    -- persist_buffer_sort = true, -- whether or not custom sorted buffers should persist +    -- can also be a table containing 2 custom separators +    -- [focused and unfocused]. eg: { '|', '|' } +    -- separator_style = "slant" | "thick" | "thin" | { 'any', 'any' }, +    -- enforce_regular_tabs = false | true, +    -- always_show_bufferline = true | false, +    -- sort_by = 'extension' | 'relative_directory' | 'directory' | function(buffer_a, buffer_b) +      -- add custom logic +      -- return buffer_a.modified > buffer_b.modified +    -- end +  } +} +end + +return M diff --git a/lua/plugins.lua b/lua/plugins.lua index 0a59ae8d..bdda5847 100644 --- a/lua/plugins.lua +++ b/lua/plugins.lua @@ -46,12 +46,12 @@ return require("packer").startup(function(use)      }      -- Snap TODO disable for now, need to only install fzy when user specifies they want to use snap      -- use { -        -- "camspiers/snap", -        -- rocks = "fzy", -        -- config = function() -        --    require("lv-snap").config() -        -- end, -        -- disable = not O.plugin.snap.active +    -- "camspiers/snap", +    -- rocks = "fzy", +    -- config = function() +    --    require("lv-snap").config() +    -- end, +    -- disable = not O.plugin.snap.active      -- }      -- Autocomplete      use { @@ -114,15 +114,9 @@ return require("packer").startup(function(use)      use {"glepnir/galaxyline.nvim"}      use { -        "romgrk/barbar.nvim", - +        "akinsho/nvim-bufferline.lua",          config = function() -            vim.api.nvim_set_keymap('n', '<TAB>', ':BufferNext<CR>', -                                    {noremap = true, silent = true}) -            vim.api.nvim_set_keymap('n', '<S-TAB>', ':BufferPrevious<CR>', -                                    {noremap = true, silent = true}) -            vim.api.nvim_set_keymap('n', '<S-x>', ':BufferClose<CR>', -                                    {noremap = true, silent = true}) +            require("lv-bufferline").config()          end,          event = "BufRead" @@ -228,8 +222,9 @@ return require("packer").startup(function(use)              vim.g.indentLine_enabled = 1              vim.g.indent_blankline_char = "▏" -            vim.g.indent_blankline_filetype_exclude = -                {"help", "terminal", "dashboard"} +            vim.g.indent_blankline_filetype_exclude = { +                "help", "terminal", "dashboard" +            }              vim.g.indent_blankline_buftype_exclude = {"terminal"}              vim.g.indent_blankline_show_trailing_blankline_indent = false @@ -378,7 +373,7 @@ return require("packer").startup(function(use)          cmd = "LazyGit",          disable = not O.plugin.lazygit.active      } -    -- Lazygit +    -- Octo      use {          "pwntester/octo.nvim",          event = "BufRead", @@ -401,7 +396,7 @@ return require("packer").startup(function(use)      use {          "rktjmp/lush.nvim",          -- cmd = {"LushRunQuickstart", "LushRunTutorial", "Lushify"}, -        disable = not O.plugin.lush.active, +        disable = not O.plugin.lush.active      }      -- HTML preview      use { | 
