local augroup_name = 'CosmicNvimLspFormat' local group = vim.api.nvim_create_augroup(augroup_name, { clear = true }) local config = require('cosmic.core.user') if config.lsp.format_on_save then local format_filetypes = '' if vim.tbl_islist(config.lsp.format_on_save) then for _, ft in pairs(config.lsp.format_on_save) do format_filetypes = format_filetypes .. '*' .. ft end else format_filetypes = '*' end vim.api.nvim_create_autocmd(string.format('BufWritePre %s', format_filetypes), { callback = function() vim.lsp.buf.format({ timeout_ms = config.lsp.format_timeout, -- check user config to see if we can format on save filter = function(client) if config.lsp.can_client_format(client.name) then return client.name end end, }) end, group = group, nested = true, }) end