From a32f5752fa94ab5ac35b763fc81c85038b47141d Mon Sep 17 00:00:00 2001 From: Tomas Mirchev Date: Mon, 1 Jun 2026 14:10:14 +0300 Subject: [PATCH] Add manual buffer format command --- lua/plugins/language-manager.lua | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/lua/plugins/language-manager.lua b/lua/plugins/language-manager.lua index 9c24d36..76a2af0 100644 --- a/lua/plugins/language-manager.lua +++ b/lua/plugins/language-manager.lua @@ -525,11 +525,34 @@ local function apply_biome_save_actions(bufnr) end function M.format.setup() - require('conform').setup({ + local conform = require('conform') + + conform.setup({ formatters_by_ft = (M.general and M.general.formatters_by_ft) or {}, default_format_opts = { stop_after_first = true, lsp_format = 'fallback' }, }) + local function format_buffer(bufnr) + conform.format({ bufnr = bufnr, timeout_ms = 500, lsp_format = 'fallback' }) + end + + vim.api.nvim_create_user_command('Format', function(args) + local bufnr = vim.api.nvim_get_current_buf() + local ft = vim.trim(args.args) + + if ft ~= '' then + vim.bo[bufnr].filetype = ft + end + + format_buffer(bufnr) + end, { + nargs = '?', + complete = function(arg_lead) + return vim.fn.getcompletion(arg_lead, 'filetype') + end, + desc = 'Format current buffer', + }) + vim.api.nvim_create_autocmd('BufWritePre', { group = vim.api.nvim_create_augroup('language-manager.format', { clear = true }), callback = function(args) @@ -538,7 +561,7 @@ function M.format.setup() end apply_biome_save_actions(args.buf) - require('conform').format({ bufnr = args.buf, timeout_ms = 500, lsp_format = 'fallback' }) + format_buffer(args.buf) end, }) end