feat: improve vim formatting
This commit is contained in:
@@ -1,3 +1,16 @@
|
|||||||
|
local function format_options(bufnr)
|
||||||
|
local oxfmt = vim.lsp.get_clients({
|
||||||
|
bufnr = bufnr,
|
||||||
|
name = "oxfmt",
|
||||||
|
method = "textDocument/formatting",
|
||||||
|
})[1]
|
||||||
|
|
||||||
|
return {
|
||||||
|
lsp_format = "fallback",
|
||||||
|
name = oxfmt and "oxfmt" or nil,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
require("lz.n").load({
|
require("lz.n").load({
|
||||||
{
|
{
|
||||||
"conform.nvim",
|
"conform.nvim",
|
||||||
@@ -7,17 +20,15 @@ require("lz.n").load({
|
|||||||
{
|
{
|
||||||
"<leader>f",
|
"<leader>f",
|
||||||
function()
|
function()
|
||||||
require("conform").format({ async = true, lsp_format = "fallback" })
|
local options = format_options(vim.api.nvim_get_current_buf())
|
||||||
|
options.async = true
|
||||||
|
require("conform").format(options)
|
||||||
end,
|
end,
|
||||||
mode = "",
|
mode = "",
|
||||||
desc = "[F]ormat buffer",
|
desc = "[F]ormat buffer",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
after = function()
|
after = function()
|
||||||
-- Conform's built-in oxfmt formatter searches upwards for
|
|
||||||
-- node_modules/.bin/oxfmt before falling back to the wrapped binary.
|
|
||||||
local oxfmt = { "oxfmt" }
|
|
||||||
|
|
||||||
require("conform").setup({
|
require("conform").setup({
|
||||||
notify_on_error = true,
|
notify_on_error = true,
|
||||||
format_on_save = function(bufnr)
|
format_on_save = function(bufnr)
|
||||||
@@ -25,10 +36,9 @@ require("lz.n").load({
|
|||||||
if disable_filetypes[vim.bo[bufnr].filetype] then
|
if disable_filetypes[vim.bo[bufnr].filetype] then
|
||||||
return nil
|
return nil
|
||||||
else
|
else
|
||||||
return {
|
local options = format_options(bufnr)
|
||||||
timeout_ms = 500,
|
options.timeout_ms = 500
|
||||||
lsp_format = "fallback",
|
return options
|
||||||
}
|
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
formatters_by_ft = {
|
formatters_by_ft = {
|
||||||
|
|||||||
@@ -231,7 +231,12 @@ require("lz.n").load({
|
|||||||
vim.lsp.enable("html")
|
vim.lsp.enable("html")
|
||||||
vim.lsp.enable("emmet_language_server")
|
vim.lsp.enable("emmet_language_server")
|
||||||
vim.lsp.enable("oxlint")
|
vim.lsp.enable("oxlint")
|
||||||
|
|
||||||
|
vim.lsp.config("oxfmt", {
|
||||||
|
filetypes = vim.list_extend({ "svelte" }, vim.lsp.config.oxfmt.filetypes),
|
||||||
|
})
|
||||||
vim.lsp.enable("oxfmt")
|
vim.lsp.enable("oxfmt")
|
||||||
|
|
||||||
vim.lsp.enable("tailwindcss")
|
vim.lsp.enable("tailwindcss")
|
||||||
vim.lsp.enable("rust_analyzer")
|
vim.lsp.enable("rust_analyzer")
|
||||||
vim.lsp.enable("ty")
|
vim.lsp.enable("ty")
|
||||||
|
|||||||
Reference in New Issue
Block a user