[Bug]: custom on_attach is never called
MrPickles1324 opened this issue · comments
Kirill commented
When i open flutter project, the flutter-tools and dartls is starting, but my_on_attach is not called, "on_attach called" is not printed and key mappings do not work.
When i open rust or lua files it works.
Here is my lsp config:
local lsp = require('lsp-zero')
require("lsp-format").setup {}
lsp.preset('recommended')
lsp.ensure_installed({
'rust_analyzer',
'sumneko_lua'
})
local cmp = require('cmp')
local cmp_select = { behavior = cmp.SelectBehavior.Select }
local cmp_mappings = lsp.defaults.cmp_mappings({
['<C-k>'] = cmp.mapping.select_prev_item(cmp_select),
['<C-j>'] = cmp.mapping.select_next_item(cmp_select),
['<Tab>'] = cmp.mapping.confirm({ select = true }),
['<C-Space>'] = cmp.mapping.complete(),
})
lsp.setup_nvim_cmp({
mapping = cmp_mappings
})
local my_on_attach = function(client, buffer)
print("on_attach called")
require("lsp-format").on_attach(client)
local opts = { buffer = buffer, remap = false }
vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, opts)
vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, opts)
vim.keymap.set("n", "<leader>vws", function() vim.lsp.buf.workspace_symbol() end, opts)
vim.keymap.set("n", "<leader>vd", function() vim.diagnostic.open_float() end, opts)
vim.keymap.set("n", "[d", function() vim.diagnostic.goto_next() end, opts)
vim.keymap.set("n", "]d", function() vim.diagnostic.goto_prev() end, opts)
vim.keymap.set("n", "<leader>lca", function() vim.lsp.buf.code_action() end, opts)
vim.keymap.set("n", "<leader>lrr", function() vim.lsp.buf.references() end, opts)
vim.keymap.set("n", "<leader>lrn", function() vim.lsp.buf.rename() end, opts)
-- vim.keymap.set("n", "<C-h>", function() vim.lsp.buf.signature_help() end, opts)
vim.keymap.set("n", "<leader>lf", function() vim.lsp.buf.format() end, opts)
end
require("neodev").setup {
library = { plugin = { "nvim-dap-ui" }, types = true }
}
lsp.on_attach(my_on_attach)
require("lspconfig").gopls.setup { on_attach = my_on_attach }
lsp.nvim_workspace()
lsp.setup()
vim.diagnostic.config({
virtual_text = true
})
require("flutter-tools").setup {
on_attach = my_on_attach,
ui = {
border = "rounded",
},
decorations = {
statusline = {
app_version = true,
device = true,
}
},
debugger = {
enabled = true,
run_via_dap = true,
regiseter_configurations = function(_)
require("dap").configurations.dart = { {
name = "test_app",
request = "launch",
type = "dart",
}
}
require("dap.ext.vscode").load_launchjs()
end
},
widget_guides = {
enabled = true,
},
outline = {
auto_open = true
},
lsp = {
color = {
enabled = true,
virtual_text = true,
}
},
}
Akin commented
@MrPickles1324 you have placed the on_attach
in the wrong place in the config. It is supposed to be nested in the lsp
table. Please go back over the README carefully 🙏🏿