diff --git a/lua/lazyvim/config/options.lua b/lua/lazyvim/config/options.lua index 5a071a15..d1605f93 100644 --- a/lua/lazyvim/config/options.lua +++ b/lua/lazyvim/config/options.lua @@ -87,5 +87,7 @@ else vim.opt.foldmethod = "indent" end +vim.o.formatexpr = "v:lua.require'lazyvim.util'.format.formatexpr()" + -- Fix markdown indentation settings vim.g.markdown_recommended_style = 0 diff --git a/lua/lazyvim/plugins/formatting.lua b/lua/lazyvim/plugins/formatting.lua index 28c794fc..66edd1bb 100644 --- a/lua/lazyvim/plugins/formatting.lua +++ b/lua/lazyvim/plugins/formatting.lua @@ -50,7 +50,6 @@ return { }, }, init = function() - vim.o.formatexpr = "v:lua.require'conform'.formatexpr()" -- Install the conform formatter on VeryLazy require("lazyvim.util").on_very_lazy(function() require("lazyvim.util").format.register({ diff --git a/lua/lazyvim/util/format.lua b/lua/lazyvim/util/format.lua index 2a5ef5ac..fa972296 100644 --- a/lua/lazyvim/util/format.lua +++ b/lua/lazyvim/util/format.lua @@ -25,6 +25,13 @@ function M.register(formatter) end) end +function M.formatexpr() + if Util.has("conform.nvim") then + return require("conform").formatexpr() + end + return vim.lsp.formatexpr({ timeout_ms = 3000 }) +end + ---@param buf? number ---@return (LazyFormatter|{active:boolean,resolved:string[]})[] function M.resolve(buf) @@ -67,7 +74,7 @@ function M.info(buf) end end if not have then - lines[#lines+1] = "\n***No formatters available for this buffer.***" + lines[#lines + 1] = "\n***No formatters available for this buffer.***" end Util[enabled and "info" or "warn"]( table.concat(lines, "\n"),