local u = require 'config.utils' u.nmap('E', vim.diagnostic.open_float) u.nmap('[d', vim.diagnostic.goto_prev) u.nmap(']d', vim.diagnostic.goto_next) u.nmap('q', vim.diagnostic.setloclist) local on_attach = function(_, bufnr) vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') vim.o.signcolumn = 'yes' local map = function(from, to) vim.keymap.set('n', from, to, { noremap = true, silent = true, buffer = bufnr }) end map('gd', vim.lsp.buf.definition) map('gr', vim.lsp.buf.references) map('gi', vim.lsp.buf.implementation) map('gD', vim.lsp.buf.declaration) map('K', vim.lsp.buf.hover) map('', vim.lsp.buf.signature_help) map('wa', vim.lsp.buf.add_workspace_folder) map('wr', vim.lsp.buf.remove_workspace_folder) map('wl', function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end) map('D', vim.lsp.buf.type_definition) map('rn', vim.lsp.buf.rename) map('ca', vim.lsp.buf.code_action) map('fm', vim.lsp.buf.formatting) end local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) require 'lspconfig'.sumneko_lua.setup { on_attach = on_attach, capabilities = capabilities, settings = { Lua = { diagnostics = { globals = { 'vim' }, }, }, }, } require 'rust-tools'.setup { server = { on_attach = on_attach, capabilities = capabilities, } } vim.g.markdown_fenced_languages = { "ts=typescript" } require'lspconfig'.denols.setup{ on_attach = on_attach, capabilities = capabilities, }