Skip to content

Gopls is not working with the new lspconfig setup for nvim 0.11 #8

@mrjxtr

Description

@mrjxtr

Here is my full lspconfig file which I basically just copy and pasted from yours with some additional other languages.

When I open a go project, there is no LSP. Other languages seems to work fine. it's just gopls and ts_ls but gopls is my priority.

local on_attach = require("nvchad.configs.lspconfig").on_attach
local on_init = require("nvchad.configs.lspconfig").on_init
local capabilities = require("nvchad.configs.lspconfig").capabilities

-- local lspconfig = require("lspconfig") -- pre nvim 0.11
local lspconfig = require("nvchad.configs.lspconfig") -- nvim 0.11

-- list of all servers configured.
lspconfig.servers = {
  "lua_ls",
  -- "pyright",
  "gopls",
  "ts_ls",
  "eslint",
  "cssls",
  "html",
  -- "djlsp", // removed to avoid ensure_installed error
  "bashls",
  -- "htmx",
  "tailwindcss",
  -- "templ",
  "dockerls",
  -- "denols",
  -- "clangd",
  -- "hls",
  -- "ols",
  "vue_ls",
}

-- list of servers configured with default config.
local default_servers = {
  "cssls",
  "html",
  "djlsp",
  -- "volar",
  "bashls",
  -- "htmx",
  "tailwindcss",
  "templ",
  "dockerls",
  -- "denols",
  -- "ruff",
}

-- lsps with default config
for _, lsp in ipairs(default_servers) do
  -- lspconfig[lsp].setup({
  vim.lsp.config(lsp, {
    on_attach = on_attach,
    on_init = on_init,
    capabilities = capabilities,
  })
end

-- lspconfig.eslint.setup({ -- pre nvim 0.11
vim.lsp.config("eslint", {
  on_attach = on_attach,
  on_init = on_init,
  capabilities = capabilities,
})

-- lspconfig.ts_ls.setup({ -- pre nvim 0.11
vim.lsp.config("ts_ls", {
  on_attach = on_attach,
  on_init = on_init,
  capabilities = capabilities,

  init_options = {
    preferences = {
      disableSuggestions = true,
    },
  },
})

-- NOTE: removed custom pyright config to fixe
-- issues with loading pyright twice

-- - lspconfig.pyright.setup({
--   on_attach = on_attach,
--   on_init = on_init,
--   capabilities = capabilities,
--
--   settings = {
--     python = {
--       analysis = {
--         typeCheckingMode = "off", -- Disable type checking diagnostics
--       },
--     },
--   },
-- })

-- lspconfig.clangd.setup({
--     on_attach = function(client, bufnr)
--         client.server_capabilities.documentFormattingProvider = false
--         client.server_capabilities.documentRangeFormattingProvider = false
--         on_attach(client, bufnr)
--     end,
--     on_init = on_init,
--     capabilities = capabilities,
-- })

-- lspconfig.gopls.setup({ -- pre nvim 0.11
vim.lsp.config("gopls", {
  on_attach = function(client, bufnr)
    client.server_capabilities.documentFormattingProvider = false
    client.server_capabilities.documentRangeFormattingProvider = false
    on_attach(client, bufnr)
  end,
  on_init = on_init,
  capabilities = capabilities,
  cmd = { "gopls" },
  filetypes = { "go", "gomod", "gotmpl", "gowork" },
  -- root_dir = lspconfig.util.root_pattern("go.work", "go.mod", ".git"),
  root_dir = require("lspconfig.util").root_pattern("go.work", "go.mod", ".git"),
  settings = {
    gopls = {
      analyses = {
        unusedparams = true,
      },
      completeUnimported = true,
      usePlaceholders = true,
      staticcheck = true,
    },
  },
})

-- lspconfig.hls.setup({
--     on_attach = function(client, bufnr)
--         client.server_capabilities.documentFormattingProvider = false
--         client.server_capabilities.documentRangeFormattingProvider = false
--         on_attach(client, bufnr)
--     end,
--
--     on_init = on_init,
--     capabilities = capabilities,
-- })

-- lspconfig.lua_ls.setup({ -- pre nvim 0.11
vim.lsp.config("lua_ls", {
  on_attach = on_attach,
  on_init = on_init,
  capabilities = capabilities,

  settings = {
    Lua = {
      diagnostics = {
        enable = false, -- Disable all diagnostics from lua_ls
        -- globals = { "vim" },
      },
      workspace = {
        library = {
          vim.fn.expand("$VIMRUNTIME/lua"),
          vim.fn.expand("$VIMRUNTIME/lua/vim/lsp"),
          vim.fn.stdpath("data") .. "/lazy/ui/nvchad_types",
          vim.fn.stdpath("data") .. "/lazy/lazy.nvim/lua/lazy",
          "${3rd}/love2d/library",
        },
        maxPreload = 100000,
        preloadFileSize = 10000,
      },
    },
  },
})

-- lspconfig.tailwindcss.setup({ -- pre nvim 0.11
vim.lsp.config("tailwindcss", {
  settings = {
    editor = {
      tabSize = 2,
    },
  },
})

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions