--vim.lsp.inlay_hint.enable() vim.diagnostic.config({ virtual_text = true, --virtual_lines = true, --virtual_lines = { -- current_line = true, --}, severity_sort = true, }) vim.opt.completeopt = { "menuone", "noselect", "popup", "fuzzy" } vim.lsp.enable('html') vim.lsp.enable('cssls') vim.lsp.enable('jsonls') vim.lsp.enable('typos_lsp') -- Go vim.lsp.config("gopls", { settings = { gopls = { gofumpt = true, staticcheck = true, analyses = { unusedparams = true, unusedresult = true, unusedwrite = true, unusedvariable = true, useany = true, fieldalignment = false, nilness = true, shadow = true, }, hints = { assignVariableTypes = true, compositeLiteralFields = true, compositeLiteralTypes = true, constantValues = true, functionTypeParameters = true, parameterNames = true, rangeVariableTypes = true, }, codelenses = { gc_details = true, generate = true, regenerate_cgo = true, tidy = true, upgrade_dependency = true, vendor = true, }, }, }, }) vim.api.nvim_create_autocmd({"BufWritePre"}, { pattern = "*.go", callback = function() local params = vim.lsp.util.make_range_params() params.context = {only = {"source.organizeImports"}} local result = vim.lsp.buf_request_sync(0, "textDocument/codeAction", params) for cid, res in pairs(result or {}) do for _, r in pairs(res.result or {}) do if r.edit then local enc = (vim.lsp.get_client_by_id(cid) or {}).offset_encoding or "utf-16" vim.lsp.util.apply_workspace_edit(r.edit, enc) end end end vim.lsp.buf.format({async = false}) end }) vim.lsp.enable('gopls')