return { } -- -- autoformat.lua -- -- -- -- Use your language server to automatically format your code on save. -- -- Adds additional commands as well to manage the behavior -- -- return { -- 'neovim/nvim-lspconfig', -- dependencies = { -- 'ray-x/go.nvim', -- 'ray-x/guihua.lua', -- }, -- config = function() -- require("go").setup() -- -- Switch for controlling whether you want autoformatting. -- -- Use :KickstartFormatToggle to toggle autoformatting on or off -- local format_is_enabled = true -- vim.api.nvim_create_user_command('KickstartFormatToggle', function() -- format_is_enabled = not format_is_enabled -- print('Setting autoformatting to: ' .. tostring(format_is_enabled)) -- end, {}) -- -- -- Create an augroup that is used for managing our formatting autocmds. -- -- We need one augroup per client to make sure that multiple clients -- -- can attach to the same buffer without interfering with each other. -- local _augroups = {} -- local get_augroup = function(client) -- if not _augroups[client.id] then -- local group_name = 'kickstart-lsp-format-' .. client.name -- local id = vim.api.nvim_create_augroup(group_name, { clear = true }) -- _augroups[client.id] = id -- end -- -- return _augroups[client.id] -- end -- -- -- Whenever an LSP attaches to a buffer, we will run this function. -- -- -- -- See `:help LspAttach` for more information about this autocmd event. -- vim.api.nvim_create_autocmd('LspAttach', { -- group = vim.api.nvim_create_augroup('kickstart-lsp-attach-format', { clear = true }), -- -- This is where we attach the autoformatting for reasonable clients -- callback = function(args) -- local client_id = args.data.client_id -- local client = vim.lsp.get_client_by_id(client_id) -- local bufnr = args.buf -- -- -- Only attach to clients that support document formatting -- if not client.server_capabilities.documentFormattingProvider then -- return -- end -- -- -- Tsserver usually works poorly. Sorry you work with bad languages -- -- You can remove this line if you know what you're doing :) -- if client.name == 'tsserver' then -- return -- end -- -- -- Create an autocmd that will run *before* we save the buffer. -- -- Run the formatting command for the LSP that has just attached. -- vim.api.nvim_create_autocmd('BufWritePre', { -- group = get_augroup(client), -- buffer = bufnr, -- callback = function() -- if not format_is_enabled then -- return -- end -- -- if vim.bo.filetype == 'go' then -- require('go.format').goimport() -- else -- vim.lsp.buf.format { -- async = false, -- filter = function(c) -- return c.id == client.id -- end, -- } -- end -- end, -- }) -- end, -- }) -- end, -- }