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, + hover_with_actions = true, - -- prefix for parameter hints - -- default: "<-" - parameter_hints_prefix = "<-", + runnables = { + -- whether to use telescope for selection menu or not + -- default: true + use_telescope = true - -- prefix for all the other hints (type, chaining) - -- default: "=>" - other_hints_prefix = "=>", + -- rest of the opts are forwarded to telescope + }, - -- whether to align to the lenght of the longest line in the file - max_len_align = false, + inlay_hints = { + -- wheter to show parameter hints with the inlay hints or not + -- default: true + show_parameter_hints = true, - -- padding from the left if max_len_align is true - max_len_align_padding = 1, + -- prefix for parameter hints + -- default: "<-" + parameter_hints_prefix = "<-", - -- whether to align to the extreme right or not - right_align = false, + -- prefix for all the other hints (type, chaining) + -- default: "=>" + other_hints_prefix = "=>", - -- padding from the right if right_align is true - right_align_padding = 7 - }, + -- whether to align to the lenght of the longest line in the file + max_len_align = false, - 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"} + -- 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"} + } } - } - }, + }, - -- 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 = { + -- 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 + + 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 lm RustExpandMacro autocmd Filetype rust nnoremap lH RustToggleInlayHints 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', '', ':BufferNext', { noremap = true, silent = true }) -vim.api.nvim_set_keymap('n', '', ':BufferPrevious', { noremap = true, silent = true }) -vim.api.nvim_set_keymap('n', '', ':BufferClose', { 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', '', ':BufferNext', - {noremap = true, silent = true}) - vim.api.nvim_set_keymap('n', '', ':BufferPrevious', - {noremap = true, silent = true}) - vim.api.nvim_set_keymap('n', '', ':BufferClose', - {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 {