nvim-lua.kickstart.nvim/lua/kickstart/plugins/autoformat.lua
2025-06-11 10:48:56 -04:00

85 lines
3.1 KiB
Lua

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,
-- }