local nvim_lsp = require('lspconfig') local capabilities = vim.lsp.protocol.make_client_capabilities() capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities) local servers = { 'omnisharp', 'html', 'sumneko_lua', 'bashls', 'tsserver', 'cssls' } for _, lsp in ipairs(servers) do nvim_lsp[lsp].setup { capabilities = capabilities, } end vim.o.completeopt = 'menuone,noselect' -- CMP local cmp = require 'cmp' local t = function(str) return vim.api.nvim_replace_termcodes(str, true, true, true) end cmp.setup { snippet = { expand = function(args) vim.fn["UltiSnips#Anon"](args.body) end, }, mapping = { [''] = 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.confirm { behavior = cmp.ConfirmBehavior.Replace, select = true, }, [""] = cmp.mapping(function(fallback) if vim.fn["UltiSnips#CanJumpForwards"]() == 1 then vim.fn.feedkeys(t(":call UltiSnips#JumpForwards()")) else fallback() end end, { "i", "s", }), [""] = cmp.mapping(function(fallback) if vim.fn["UltiSnips#CanJumpBackwards"]() == 1 then return vim.fn.feedkeys(t(":call UltiSnips#JumpBackwards()")) else fallback() end end, { "i", "s", }), }, sources = { { name = 'nvim_lsp' }, { name = 'ultisnips' }, { name = 'buffer' }, }, } -- C# local pid = vim.fn.getpid() require 'lspconfig'.omnisharp.setup { capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()), on_attach = function(_, bufnr) vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') end, cmd = { "/usr/bin/omnisharp", "--languageserver" , "--hostPID", tostring(pid) }, } -- LUA local sumneko_root_path = "/home/adam/Documents/github/lua-language-server" local sumneko_binary = sumneko_root_path.."/bin/Linux/lua-language-server" local runtime_path = vim.split(package.path, ';') table.insert(runtime_path, "lua/?.lua") table.insert(runtime_path, "lua/?/init.lua") require'lspconfig'.sumneko_lua.setup { cmd = {sumneko_binary, "-E", sumneko_root_path.."/main.lua"}; settings = { Lua = { runtime = { version = 'LuaJIT', path = runtime_path, }, diagnostics = { globals = {'vim'}, }, workspace = { library = vim.api.nvim_get_runtime_file("", true), }, telemetry = { enable = false, }, }, }, } -- HTML, CSS, JS (TS), BASH require'lspconfig'.html.setup{} require'lspconfig'.cssls.setup{} require'lspconfig'.tsserver.setup{} require'lspconfig'.bashls.setup{} -- Treesitter require'nvim-treesitter.configs'.setup { highlight = { enable = true, }, } -- Misc require('kommentary.config').use_extended_mappings() vim.o.tabline = '%!v:lua.require\'luatab\'.tabline()'