From 8cc68ac8a50756dfc21ce269a969bd7897e173fd Mon Sep 17 00:00:00 2001 From: adamstuck Date: Sat, 12 Mar 2022 17:38:32 +0100 Subject: nvim: config cleanup + speedup (lazy load) --- .config/nvim/lua/setup/indent-blankline.lua | 6 ++++ .config/nvim/lua/setup/kommentary.lua | 3 ++ .config/nvim/lua/setup/lsp_signature.lua | 3 ++ .config/nvim/lua/setup/lualine.lua | 27 ++++++++++++++ .config/nvim/lua/setup/nvim-cmp.lua | 51 +++++++++++++++++++++++++++ .config/nvim/lua/setup/nvim-lsp-installer.lua | 17 +++++++++ .config/nvim/lua/setup/nvim-treesitter.lua | 5 +++ 7 files changed, 112 insertions(+) create mode 100644 .config/nvim/lua/setup/indent-blankline.lua create mode 100644 .config/nvim/lua/setup/kommentary.lua create mode 100644 .config/nvim/lua/setup/lsp_signature.lua create mode 100644 .config/nvim/lua/setup/lualine.lua create mode 100644 .config/nvim/lua/setup/nvim-cmp.lua create mode 100644 .config/nvim/lua/setup/nvim-lsp-installer.lua create mode 100644 .config/nvim/lua/setup/nvim-treesitter.lua (limited to '.config/nvim/lua/setup') diff --git a/.config/nvim/lua/setup/indent-blankline.lua b/.config/nvim/lua/setup/indent-blankline.lua new file mode 100644 index 0000000..ff81338 --- /dev/null +++ b/.config/nvim/lua/setup/indent-blankline.lua @@ -0,0 +1,6 @@ +require("indent_blankline").setup { + char = "▏", + show_trailing_blankline_indent = false, + buftype_exclude = {"startify", "help", "terminal"}, + filetype_exclude = {"startify", "help", "terminal"}, +} diff --git a/.config/nvim/lua/setup/kommentary.lua b/.config/nvim/lua/setup/kommentary.lua new file mode 100644 index 0000000..3ca608d --- /dev/null +++ b/.config/nvim/lua/setup/kommentary.lua @@ -0,0 +1,3 @@ +require('kommentary.config').configure_language("default", { + prefer_single_line_comments = true, +}) diff --git a/.config/nvim/lua/setup/lsp_signature.lua b/.config/nvim/lua/setup/lsp_signature.lua new file mode 100644 index 0000000..65f7070 --- /dev/null +++ b/.config/nvim/lua/setup/lsp_signature.lua @@ -0,0 +1,3 @@ +require'lsp_signature'.setup { + floating_window = false +} diff --git a/.config/nvim/lua/setup/lualine.lua b/.config/nvim/lua/setup/lualine.lua new file mode 100644 index 0000000..0c07a4a --- /dev/null +++ b/.config/nvim/lua/setup/lualine.lua @@ -0,0 +1,27 @@ +require'lualine'.setup { + options = { + icons_enabled = true, + theme = 'onedark', + component_separators = {left = '', right = ''}, + section_separators = {left = '', right = ''}, + disabled_filetypes = {'startify', 'terminal', 'netrw', 'NvimTree'} + }, + sections = { + lualine_a = {'mode'}, + lualine_b = {'branch'}, + lualine_c = {'filename'}, + lualine_x = {'encoding', 'filetype'}, + lualine_y = {'progress'}, + lualine_z = {'location'} + }, + inactive_sections = { + lualine_a = {}, + lualine_b = {}, + lualine_c = {'filename'}, + lualine_x = {'location'}, + lualine_y = {}, + lualine_z = {} + }, + tabline = {}, + extensions = {} +} diff --git a/.config/nvim/lua/setup/nvim-cmp.lua b/.config/nvim/lua/setup/nvim-cmp.lua new file mode 100644 index 0000000..42bf348 --- /dev/null +++ b/.config/nvim/lua/setup/nvim-cmp.lua @@ -0,0 +1,51 @@ +local has_words_before = function() + local line, col = unpack(vim.api.nvim_win_get_cursor(0)) + return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil +end + +local luasnip = require("luasnip") +local cmp = require("cmp") +require("luasnip/loaders/from_vscode").lazy_load() +vim.o.completeopt = 'menuone,noselect' + +cmp.setup { + snippet = { + expand = function(args) + require('luasnip').lsp_expand(args.body) + end, + }, + mapping = { + [''] = cmp.mapping.confirm({ select = true }), + [''] = cmp.mapping.select_next_item(), + [''] = cmp.mapping.select_prev_item(), + [''] = cmp.mapping.scroll_docs(4), + [''] = cmp.mapping.scroll_docs(-4), + [''] = cmp.mapping.close(), + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif luasnip.expand_or_jumpable() then + luasnip.expand_or_jump() + elseif has_words_before() then + cmp.complete() + else + fallback() + end + end, { "i", "s" }), + + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif luasnip.jumpable(-1) then + luasnip.jump(-1) + else + fallback() + end + end, { "i", "s" }), + }, + sources = { + { name = 'nvim_lsp' }, + { name = 'luasnip' }, + }, +} +vim.cmd('autocmd FileType markdown lua require("cmp").setup.buffer { enabled = false }') diff --git a/.config/nvim/lua/setup/nvim-lsp-installer.lua b/.config/nvim/lua/setup/nvim-lsp-installer.lua new file mode 100644 index 0000000..bd3496e --- /dev/null +++ b/.config/nvim/lua/setup/nvim-lsp-installer.lua @@ -0,0 +1,17 @@ +local lsp_installer = require("nvim-lsp-installer") + +-- Register a handler that will be called for each installed server when it's ready (i.e. when installation is finished +-- or if the server is already installed). +lsp_installer.on_server_ready(function(server) + local opts = {} + + -- (optional) Customize the options passed to the server + -- if server.name == "tsserver" then + -- opts.root_dir = function() ... end + -- end + + -- This setup() function will take the provided server configuration and decorate it with the necessary properties + -- before passing it onwards to lspconfig. + -- Refer to https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md + server:setup(opts) +end) diff --git a/.config/nvim/lua/setup/nvim-treesitter.lua b/.config/nvim/lua/setup/nvim-treesitter.lua new file mode 100644 index 0000000..42bfcbd --- /dev/null +++ b/.config/nvim/lua/setup/nvim-treesitter.lua @@ -0,0 +1,5 @@ +require'nvim-treesitter.configs'.setup { + highlight = { + enable = true, + }, +} -- cgit v1.2.3-70-g09d2