summaryrefslogtreecommitdiff
path: root/.config/nvim/lua/setup
diff options
context:
space:
mode:
authoradamstuck <adam.moloney.stuck@gmail.com>2022-03-12 17:38:32 +0100
committeradamstuck <adam.moloney.stuck@gmail.com>2022-03-12 22:47:03 +0100
commit8cc68ac8a50756dfc21ce269a969bd7897e173fd (patch)
treef05d8b44e06d6166115a3b68d30239941fd34931 /.config/nvim/lua/setup
parentd394e7dc27de4416f3ba74da736a5251c19a36f4 (diff)
nvim: config cleanup + speedup (lazy load)
Diffstat (limited to '.config/nvim/lua/setup')
-rw-r--r--.config/nvim/lua/setup/indent-blankline.lua6
-rw-r--r--.config/nvim/lua/setup/kommentary.lua3
-rw-r--r--.config/nvim/lua/setup/lsp_signature.lua3
-rw-r--r--.config/nvim/lua/setup/lualine.lua27
-rw-r--r--.config/nvim/lua/setup/nvim-cmp.lua51
-rw-r--r--.config/nvim/lua/setup/nvim-lsp-installer.lua17
-rw-r--r--.config/nvim/lua/setup/nvim-treesitter.lua5
7 files changed, 112 insertions, 0 deletions
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 = {
+ ['<CR>'] = cmp.mapping.confirm({ select = true }),
+ ['<C-n>'] = cmp.mapping.select_next_item(),
+ ['<C-p>'] = cmp.mapping.select_prev_item(),
+ ['<C-f>'] = cmp.mapping.scroll_docs(4),
+ ['<C-d>'] = cmp.mapping.scroll_docs(-4),
+ ['<C-e>'] = cmp.mapping.close(),
+ ["<Tab>"] = 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" }),
+
+ ["<S-Tab>"] = 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,
+ },
+}