add conform with yamlfmt
All checks were successful
Build neovim image / build-neovim-amd64 (push) Successful in 8m52s
Build neovim image / build-neovim-arm64 (push) Successful in 10m44s
Build neovim image / update-images-manifest (push) Successful in 18s

This commit is contained in:
Maciej Lebiest 2024-12-17 16:10:37 +01:00 committed by Maciej Lebiest
parent e35fea1f4e
commit 4653116fac
4 changed files with 107 additions and 66 deletions

View file

@ -43,7 +43,8 @@ ENV MASON_PKGS=" \
yaml-language-server \
markdownlint \
ansible-language-server \
ansible-lint"
ansible-lint \
yamlfmt"
ENV MASON_PKGS_NO_ARM="lemminx helm-ls lua-language-server"

View file

@ -33,6 +33,17 @@ require("lazy").setup({
opts = {},
priority = 200
},
{
"stevearc/conform.nvim",
--event = { "BufWritePre" },
cmd = { "ConformInfo" },
-- triggering is in lspconfig conf since it is the same key
opts = require("plugins.conform").opts,
init = function()
-- If you want the formatexpr, here is the place to set it
vim.o.formatexpr = "v:lua.require'conform'.formatexpr()"
end,
},
-- mason-lspconfig might need disabling on first run
{
'williamboman/mason-lspconfig.nvim',

26
lua/plugins/conform.lua Normal file
View file

@ -0,0 +1,26 @@
return {
-- This will provide type hinting with LuaLS
---@module "conform"
---@type conform.setupOpts
opts = {
-- Define your formatters
formatters_by_ft = {
yaml = { "yamlfmt" },
--lua = { "stylua" },
--python = { "isort", "black" },
--javascript = { "prettierd", "prettier", stop_after_first = true },
},
-- Set default options
default_format_opts = {
lsp_format = "fallback",
},
-- Set up format-on-save
--format_on_save = { timeout_ms = 500 },
-- Customize formatters
formatters = {
shfmt = {
prepend_args = { "-i", "2" },
},
},
}
}

View file

@ -32,7 +32,10 @@ return {
vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, bufopts)
vim.keymap.set('n', '<space>ca', vim.lsp.buf.code_action, bufopts)
vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts)
vim.keymap.set('n', '<leader>f', function() vim.lsp.buf.format { async = true } end, bufopts)
vim.keymap.set('n', '<leader>f', function()
vim.lsp.buf.format { async = true }
require("conform").format({ async = true })
end, bufopts)
end
local capabilities = require('cmp_nvim_lsp').default_capabilities()