This is what I’m shown and it seems like hitting tab is not really doing the trick. Am I missing something bt any chance?
local lspconfig = require'lspconfig'
local prettier = require'efm/prettier'
local eslint = require'efm/eslint'
local on_attach = function(client, bufnr)
local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end
local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end
-- Enable completion triggered by <c-x><c-o>
buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc')
-- Mappings
local opts = { noremap = true, silent = true }
-- See `:help vim.lsp.*` for documentation on any of the below functions
buf_set_keymap('n', 'gD', '<Cmd>lua vim.lsp.buf.declaration()<CR>', opts)
buf_set_keymap('n', 'gd', '<Cmd>lua vim.lsp.buf.definition()<CR>', opts)
buf_set_keymap('n', 'K', '<Cmd>lua vim.lsp.buf.hover()<CR>', opts)
buf_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)
buf_set_keymap('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
buf_set_keymap('n', '<space>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts)
buf_set_keymap('n', '<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts)
buf_set_keymap('n', '<space>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts)
buf_set_keymap('n', '<space>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
buf_set_keymap('n', '<space>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
buf_set_keymap('n', '<space>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
buf_set_keymap('n', '<space>e', '<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>', opts)
buf_set_keymap('n', '[d', '<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>', opts)
buf_set_keymap('n', ']d', '<cmd>lua vim.lsp.diagnostic.goto_next()<CR>', opts)
buf_set_keymap('n', '<space>q', '<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>', opts)
buf_set_keymap("n", "<space>f", "<cmd>lua vim.lsp.buf.formatting()<CR>", opts)
end
-- TSServer Setup
lspconfig.tsserver.setup {
root_dir = lspconfig.util.root_pattern("yarn.lock", "lerna.json", ".git"),
settings = { documentFormatting = false }
}
-- VimLS Setup
lspconfig.vimls.setup {
on_attach = on_attach
}
local languages = {
typescript = { prettier, eslint },
javascript = { prettier, eslint },
typescriptreact = { prettier, eslint },
javascriptreact = { prettier, eslint },
yaml = { prettier },
json = { prettier },
html = { prettier },
scss = { prettier },
css = { prettier },
markdown = { prettier },
}
lspconfig.efm.setup {
root_dir = lspconfig.util.root_pattern("yarn.lock", "lerna.json", ".git"),
filestypes = vim.tbl_keys(languages),
init_options = { documentFormatting = true, codeAction = true },
settings = { languages = languages, log_level = 1, log_file = '~/efm.log' },
on_attach = on_attach
}