Browse Source

Merge branch 'master' of github.com:ChristianChiarulli/LunarVim into stable

christianchiarulli 4 years ago
parent
commit
bc720781eb
6 changed files with 145 additions and 85 deletions
  1. 2 1
      ftplugin/lua.lua
  2. 75 63
      ftplugin/rust.lua
  3. 3 0
      lua/default-config.lua
  4. 0 3
      lua/lv-barbar/init.lua
  5. 52 0
      lua/lv-bufferline/init.lua
  6. 13 18
      lua/plugins.lua

+ 2 - 1
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
             }
         }
     }

+ 75 - 63
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>

+ 3 - 0
lua/default-config.lua

@@ -167,6 +167,9 @@ O = {
         yaml = {},
         terraform = {},
         rust = {
+            rust_tools = {
+                active = false
+            },
             linter = '',
             formatter = '',
             autoformat = false,

+ 0 - 3
lua/lv-barbar/init.lua

@@ -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 })

+ 52 - 0
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

+ 13 - 18
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 {