From f153abafc0d2947ccd4e8e903118ecb3c9504906 Mon Sep 17 00:00:00 2001 From: Charles Danesi Date: Fri, 16 Jan 2026 23:07:34 -0500 Subject: [PATCH] feat: add custom formatter and linter for beancount --- .config/nvim/lua/plugins/linting.lua | 13 +++++++++++++ .config/nvim/lua/plugins/prettier.lua | 14 ++++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/.config/nvim/lua/plugins/linting.lua b/.config/nvim/lua/plugins/linting.lua index 4467686..5a89d6b 100644 --- a/.config/nvim/lua/plugins/linting.lua +++ b/.config/nvim/lua/plugins/linting.lua @@ -37,6 +37,19 @@ return { -- SQL sql = { 'sqlfluff' }, + + -- Custom linters + -- Beancount + beancount = { 'beancount' }, + } + + lint.linters.beancount = { + cmd = 'bean-check', + stdin = false, + args = { '--' }, + stream = 'stderr', + ignore_exitcode = true, + parser = require('lint.parser').from_errorformat('%f:%l: %m', { source = 'bean-check' }), } local lint_augroup = vim.api.nvim_create_augroup('lint', { clear = true }) diff --git a/.config/nvim/lua/plugins/prettier.lua b/.config/nvim/lua/plugins/prettier.lua index 5cd868b..20ac7c3 100644 --- a/.config/nvim/lua/plugins/prettier.lua +++ b/.config/nvim/lua/plugins/prettier.lua @@ -29,8 +29,8 @@ return { -- Web / Frontend html = { 'prettier' }, - css = { 'prettier', 'stylelint' }, - javascript = { 'prettier', 'eslint_d' }, + css = { 'prettier' }, + javascript = { 'prettier' }, php = { 'phpcbf' }, -- YAML @@ -44,6 +44,9 @@ return { -- SQL sql = { 'sqlfluff' }, + + -- Beancount + beancount = { 'bean_format' }, }, format_injected = true, default_format_opts = { @@ -53,6 +56,13 @@ return { lsp_format = 'fallback', timeout_ms = 1000, }, + formatters = { + bean_format = { + command = 'bean-format', + args = { '-' }, + stdin = true, + }, + }, }, config = function(_, opts)