-- 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', 'zls', -- 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.colorscheme('vim') 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 = 'a' vim.opt.tabstop = 4 vim.opt.expandtab = false vim.opt.number = true vim.opt.shiftwidth = 4 vim.opt.autoindent = true vim.opt.spelllang = {'en', 'de'} vim.opt.colorcolumn = {81} vim.opt.encoding = 'utf-8' vim.opt.fileencodings = {'utf-8'} vim.opt.list = true vim.opt.listchars = {tab = '→ ', nbsp = '␣', trail = '•'} vim.opt.spell = true vim.opt.termguicolors = false vim.opt.hlsearch = false -- 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', '', ':tabe ') 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 ')