From 539127ebdb18a4c6148b51e15126a2e4ab40987e Mon Sep 17 00:00:00 2001 From: xengineering Date: Fri, 1 Mar 2024 10:21:25 +0100 Subject: nvim: Refactor init.lua --- nvim/init.lua | 106 +++++++++++++++++++++++++++++++--------------------------- 1 file changed, 57 insertions(+), 49 deletions(-) (limited to 'nvim') diff --git a/nvim/init.lua b/nvim/init.lua index 273200b..863c40b 100644 --- a/nvim/init.lua +++ b/nvim/init.lua @@ -1,5 +1,53 @@ +-- completion configuration +local cmp = require'cmp' +cmp.setup({ + snippet = { + expand = function(args) + require('luasnip').lsp_expand(args.body) + end, + }, + window = { + completion = cmp.config.window.bordered(), + documentation = cmp.config.window.bordered(), + }, + mapping = cmp.mapping.preset.insert({ + [''] = cmp.mapping.scroll_docs(-4), + [''] = cmp.mapping.scroll_docs(4), + [''] = cmp.mapping.complete(), + [''] = cmp.mapping.abort(), + [''] = cmp.mapping.confirm({ select = true }), + }), + sources = cmp.config.sources({ + { name = 'nvim_lsp' }, + { name = 'luasnip' }, + }, { + { name = 'buffer' }, + }) +}) + +-- Language Server Protocol server configuration +local capabilities = require('cmp_nvim_lsp').default_capabilities() +local lsp = require'lspconfig' +local servers = { + 'clangd', + 'pyright', + 'gopls', +-- more: pack/neovim/start/nvim-lspconfig/lua/lspconfig/server_configurations +} +for _, server in ipairs(servers) do + lsp[server].setup{capabilities = capabilities} +end + +-- snippet loading configuration +require("luasnip.loaders.from_vscode").lazy_load() + +-- setup telescope +local telescope_builtin = require('telescope.builtin') + vim.cmd.syntax('on') vim.cmd.filetype({'plugin', 'indent', 'on'}) +vim.cmd.highlight('SpellBad', 'ctermbg=Red') +vim.cmd.highlight('SpellBad', 'ctermfg=Black') vim.opt.mouse = nil vim.opt.tabstop = 4 @@ -15,57 +63,17 @@ vim.opt.list = true vim.opt.listchars = {tab = '→ ', nbsp = '␣', trail = '•'} vim.opt.spell = true +-- telescope related keymaps +vim.g.mapleader = ' ' +vim.keymap.set('n', 'ff', telescope_builtin.find_files, {}) +vim.keymap.set('n', 'fg', telescope_builtin.live_grep, {}) +vim.keymap.set('n', 'fb', telescope_builtin.buffers, {}) +vim.keymap.set('n', 'fh', telescope_builtin.help_tags, {}) + +-- tab management vim.keymap.set('n', '', ':tabn ') vim.keymap.set('n', '', ':tabp ') +-- convert binary buffer to ASCII and back vim.keymap.set('n', '', ':%!xxd -r ') vim.keymap.set('n', '', ':%!xxd ') - -vim.cmd.highlight('SpellBad', 'ctermbg=Red') -vim.cmd.highlight('SpellBad', 'ctermfg=Black') - -local cmp = require'cmp' -cmp.setup({ - snippet = { - expand = function(args) - require('luasnip').lsp_expand(args.body) - end, - }, - window = { - completion = cmp.config.window.bordered(), - documentation = cmp.config.window.bordered(), - }, - mapping = cmp.mapping.preset.insert({ - [''] = cmp.mapping.scroll_docs(-4), - [''] = cmp.mapping.scroll_docs(4), - [''] = cmp.mapping.complete(), - [''] = cmp.mapping.abort(), - [''] = cmp.mapping.confirm({ select = true }), - }), - sources = cmp.config.sources({ - { name = 'nvim_lsp' }, - { name = 'luasnip' }, - }, { - { name = 'buffer' }, - }) -}) - -local capabilities = require('cmp_nvim_lsp').default_capabilities() -local lsp = require'lspconfig' -local servers = { - 'clangd', - 'pyright', - 'gopls', -} -for _, server in ipairs(servers) do - lsp[server].setup{capabilities = capabilities} -end - -require("luasnip.loaders.from_vscode").lazy_load() - -vim.g.mapleader = ' ' -local builtin = require('telescope.builtin') -vim.keymap.set('n', 'ff', builtin.find_files, {}) -vim.keymap.set('n', 'fg', builtin.live_grep, {}) -vim.keymap.set('n', 'fb', builtin.buffers, {}) -vim.keymap.set('n', 'fh', builtin.help_tags, {}) -- cgit v1.2.3-70-g09d2