feat: fennelize conform config
This commit is contained in:
parent
c30b76d62d
commit
74e58bf808
2 changed files with 108 additions and 76 deletions
73
fnl/plugins/conform.fnl
Normal file
73
fnl/plugins/conform.fnl
Normal file
|
@ -0,0 +1,73 @@
|
||||||
|
{1 :conform.nvim
|
||||||
|
:after (fn []
|
||||||
|
((. (require :conform) :setup) {:default_format_opts {:lsp_format :fallback}
|
||||||
|
:format_on_save (fn [bufnr]
|
||||||
|
(when (or vim.g.disable_autoformat
|
||||||
|
(. vim.b
|
||||||
|
bufnr
|
||||||
|
:disable_autoformat))
|
||||||
|
(lua "return "))
|
||||||
|
{:lsp_fallback true
|
||||||
|
:timeout_ms 500})
|
||||||
|
:formatters_by_ft {:c {1 :clang-format
|
||||||
|
:lsp_format :fallback}
|
||||||
|
:cpp {1 :clang-format
|
||||||
|
:lsp_format :fallback}
|
||||||
|
:fennel {1 :fnlfmt
|
||||||
|
:lsp_format :fallback}
|
||||||
|
:haskell {1 :fourmolu
|
||||||
|
2 :ormolu
|
||||||
|
:stop_after_first true}
|
||||||
|
:javascript {1 :prettierd
|
||||||
|
2 :prettier
|
||||||
|
:stop_after_first true}
|
||||||
|
:json {1 :prettierd
|
||||||
|
2 :prettier
|
||||||
|
:stop_after_first true}
|
||||||
|
:jsonc {1 :prettierd
|
||||||
|
2 :prettier
|
||||||
|
:stop_after_first true}
|
||||||
|
:jypescriptreact {1 :prettierd
|
||||||
|
2 :prettier
|
||||||
|
:stop_after_first true}
|
||||||
|
:lua [:stylua]
|
||||||
|
:nix [:nixfmt]
|
||||||
|
:python [:black]
|
||||||
|
:rust {1 :rustfmt
|
||||||
|
:lsp_format :fallback}
|
||||||
|
:svelte {1 :prettier
|
||||||
|
:lsp_format :fallback}
|
||||||
|
:tex [:latexindent]
|
||||||
|
:toml {1 :taplo
|
||||||
|
:stop_after_first true}
|
||||||
|
:typescript {1 :prettierd
|
||||||
|
2 :prettier
|
||||||
|
:stop_after_first true}
|
||||||
|
:typescriptreact {1 :prettierd
|
||||||
|
2 :prettier
|
||||||
|
:stop_after_first true}
|
||||||
|
:typst [:typstyle]
|
||||||
|
:yaml {1 :prettierd
|
||||||
|
2 :prettier
|
||||||
|
:stop_after_first true}}})
|
||||||
|
(set vim.o.formatexpr "v:lua.require'conform'.formatexpr()"))
|
||||||
|
:cmd :ConformInfo
|
||||||
|
:event :BufWritePre
|
||||||
|
:keys [{1 :<leader>cf
|
||||||
|
2 (fn []
|
||||||
|
((. (require :conform) :format) {:async true}))
|
||||||
|
:desc "Format code"
|
||||||
|
:mode [:n :v]}
|
||||||
|
{1 :<leader>ctf
|
||||||
|
2 (fn []
|
||||||
|
(if vim.g.disable_autoformat (set vim.g.disable_autoformat false)
|
||||||
|
(set vim.g.disable_autoformat true)))
|
||||||
|
:desc "Disable autoformat on save globally"
|
||||||
|
:mode [:n :v]}
|
||||||
|
{1 :<leader>cbf
|
||||||
|
2 (fn []
|
||||||
|
(if (. vim.b 0 :disable_autoformat)
|
||||||
|
(tset (. vim.b 0) :disable_autoformat false)
|
||||||
|
(tset (. vim.b 0) :disable_autoformat true)))
|
||||||
|
:desc "Disable autoformat on save buffer"
|
||||||
|
:mode [:n :v]}]}
|
111
lua/plugins/conform.lua
generated
111
lua/plugins/conform.lua
generated
|
@ -1,76 +1,35 @@
|
||||||
return {
|
-- [nfnl] Compiled from ./fnl/plugins/conform.fnl by https://github.com/Olical/nfnl, do not edit.
|
||||||
"conform.nvim",
|
local function _1_()
|
||||||
event = "BufWritePre",
|
local function _2_(bufnr)
|
||||||
cmd = "ConformInfo",
|
if (vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat) then
|
||||||
keys = {
|
return
|
||||||
{
|
else
|
||||||
"<leader>cf",
|
end
|
||||||
function()
|
return {lsp_fallback = true, timeout_ms = 500}
|
||||||
require("conform").format({ async = true })
|
end
|
||||||
end,
|
require("conform").setup({default_format_opts = {lsp_format = "fallback"}, format_on_save = _2_, formatters_by_ft = {c = {"clang-format", lsp_format = "fallback"}, cpp = {"clang-format", lsp_format = "fallback"}, fennel = {"fnlfmt", lsp_format = "fallback"}, haskell = {"fourmolu", "ormolu", stop_after_first = true}, javascript = {"prettierd", "prettier", stop_after_first = true}, json = {"prettierd", "prettier", stop_after_first = true}, jsonc = {"prettierd", "prettier", stop_after_first = true}, jypescriptreact = {"prettierd", "prettier", stop_after_first = true}, lua = {"stylua"}, nix = {"nixfmt"}, python = {"black"}, rust = {"rustfmt", lsp_format = "fallback"}, svelte = {"prettier", lsp_format = "fallback"}, tex = {"latexindent"}, toml = {"taplo", stop_after_first = true}, typescript = {"prettierd", "prettier", stop_after_first = true}, typescriptreact = {"prettierd", "prettier", stop_after_first = true}, typst = {"typstyle"}, yaml = {"prettierd", "prettier", stop_after_first = true}}})
|
||||||
desc = "Format code",
|
vim.o.formatexpr = "v:lua.require'conform'.formatexpr()"
|
||||||
mode = { "n", "v" },
|
return nil
|
||||||
},
|
end
|
||||||
{
|
local function _4_()
|
||||||
"<leader>ctf",
|
return require("conform").format({async = true})
|
||||||
function()
|
end
|
||||||
if vim.g.disable_autoformat then
|
local function _5_()
|
||||||
vim.g.disable_autoformat = false
|
if vim.g.disable_autoformat then
|
||||||
else
|
vim.g.disable_autoformat = false
|
||||||
vim.g.disable_autoformat = true
|
return nil
|
||||||
end
|
else
|
||||||
end,
|
vim.g.disable_autoformat = true
|
||||||
desc = "Disable autoformat on save globally",
|
return nil
|
||||||
mode = { "n", "v" },
|
end
|
||||||
},
|
end
|
||||||
{
|
local function _7_()
|
||||||
"<leader>cbf",
|
if vim.b[0].disable_autoformat then
|
||||||
function()
|
vim.b[0]["disable_autoformat"] = false
|
||||||
if vim.b[0].disable_autoformat then
|
return nil
|
||||||
vim.b[0].disable_autoformat = false
|
else
|
||||||
else
|
vim.b[0]["disable_autoformat"] = true
|
||||||
vim.b[0].disable_autoformat = true
|
return nil
|
||||||
end
|
end
|
||||||
end,
|
end
|
||||||
desc = "Disable autoformat on save buffer",
|
return {"conform.nvim", after = _1_, cmd = "ConformInfo", event = "BufWritePre", keys = {{"<leader>cf", _4_, desc = "Format code", mode = {"n", "v"}}, {"<leader>ctf", _5_, desc = "Disable autoformat on save globally", mode = {"n", "v"}}, {"<leader>cbf", _7_, desc = "Disable autoformat on save buffer", mode = {"n", "v"}}}}
|
||||||
mode = { "n", "v" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
after = function()
|
|
||||||
require("conform").setup({
|
|
||||||
format_on_save = function(bufnr)
|
|
||||||
if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
return { timeout_ms = 500, lsp_fallback = true }
|
|
||||||
end,
|
|
||||||
default_format_opts = {
|
|
||||||
lsp_format = "fallback",
|
|
||||||
},
|
|
||||||
formatters_by_ft = {
|
|
||||||
lua = { "stylua" },
|
|
||||||
python = { "black" },
|
|
||||||
rust = { "rustfmt", lsp_format = "fallback" },
|
|
||||||
javascript = { "prettierd", "prettier", stop_after_first = true },
|
|
||||||
typescript = { "prettierd", "prettier", stop_after_first = true },
|
|
||||||
typescriptreact = { "prettierd", "prettier", stop_after_first = true },
|
|
||||||
jypescriptreact = { "prettierd", "prettier", stop_after_first = true },
|
|
||||||
nix = { "nixfmt" },
|
|
||||||
haskell = { "fourmolu", "ormolu", stop_after_first = true },
|
|
||||||
json = { "prettierd", "prettier", stop_after_first = true },
|
|
||||||
jsonc = { "prettierd", "prettier", stop_after_first = true },
|
|
||||||
toml = { "taplo", stop_after_first = true },
|
|
||||||
yaml = { "prettierd", "prettier", stop_after_first = true },
|
|
||||||
typst = { "typstyle" },
|
|
||||||
svelte = { "prettier", lsp_format = "fallback" },
|
|
||||||
tex = { "latexindent" },
|
|
||||||
cpp = { "clang-format", lsp_format = "fallback" },
|
|
||||||
c = { "clang-format", lsp_format = "fallback" },
|
|
||||||
fennel = { "fnlfmt", lsp_format = "fallback" },
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
vim.o.formatexpr = "v:lua.require'conform'.formatexpr()"
|
|
||||||
end,
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in a new issue