From b96571d104ab72d95c41ffc120afa260dd280934 Mon Sep 17 00:00:00 2001 From: Gustaf Rydholm Date: Mon, 4 Dec 2023 22:20:46 +0100 Subject: Replace null(none)-ls with conform and nvim-lint --- fnl/plugins/editor/conform.fnl | 34 ++++++++++++++++++++++++++++++++++ fnl/plugins/editor/lualine.fnl | 3 +-- fnl/plugins/editor/nvim-lint.fnl | 26 ++++++++++++++++++++++++++ 3 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 fnl/plugins/editor/conform.fnl create mode 100644 fnl/plugins/editor/nvim-lint.fnl (limited to 'fnl/plugins/editor') diff --git a/fnl/plugins/editor/conform.fnl b/fnl/plugins/editor/conform.fnl new file mode 100644 index 0000000..4f1b01a --- /dev/null +++ b/fnl/plugins/editor/conform.fnl @@ -0,0 +1,34 @@ +;; Formatting + +(fn init [] + (vim.keymap.set [:n :v] :e + (lambda [] + (let [conform (require :conform)] + (conform.format {:lsp_fallback true :async true}))) + {:desc :Format})) + +(fn config [] + (let [conform (require :conform)] + (conform.setup {:formatters {:fnlfmt {:command :fnlfmt + :args [:--fix :$FILENAME] + :stdin false}} + :formatters_by_ft {:* [:codespell + :trim_whitespace + :trim_newlines] + :css [:stylelint] + :fennel [:fnlfmt] + :haskell [:fourmolu] + :html [:djlint] + :json [:jq] + :lua [:stylua] + :markdown [:cbfmt] + :ocaml [:ocamlformat] + :org [:cbfmt] + :python [:ruff_format] + :rust [:rustfmt] + :sh [:shfmt :shellharden] + :sql [:pg_format :sqlfluff] + :toml [:taplo] + :yaml [:yamlfmt]}}))) + +{1 :stevearc/conform.nvim : init : config :event [:BufReadPost :BufNewFile]} diff --git a/fnl/plugins/editor/lualine.fnl b/fnl/plugins/editor/lualine.fnl index 06d7fde..a34e73e 100644 --- a/fnl/plugins/editor/lualine.fnl +++ b/fnl/plugins/editor/lualine.fnl @@ -18,8 +18,7 @@ (let [clients (vim.lsp.buf_get_clients) client_names []] (each [_ client (pairs clients)] - (if (not= client.name :null-ls) - (table.insert client_names client.name))) + (table.insert client_names client.name)) (if (> (length client_names) 0) (table.concat client_names ", ") ""))) diff --git a/fnl/plugins/editor/nvim-lint.fnl b/fnl/plugins/editor/nvim-lint.fnl new file mode 100644 index 0000000..bcec08b --- /dev/null +++ b/fnl/plugins/editor/nvim-lint.fnl @@ -0,0 +1,26 @@ +;; Linting + +(fn init [] + (let [lint-augroup (vim.api.nvim_create_augroup :lint {:clear true}) + lint (require :lint)] + (vim.api.nvim_create_autocmd [:BufEnter :BufWritePost :InsertLeave] + {:group lint-augroup + :callback (lambda [] + (lint.try_lint))}))) + +(fn config [] + (let [lint (require :lint)] + (set lint.linters_by_ft {:zsh [:zsh] + :* [:codespell :write_good] + :fennel [:fennel] + :yaml [:yamllint] + :python [:ruff] + :lua [:selene] + :commit [:commitlint] + :docker [:hadolint] + :haskell [:hlint] + :json [:jsonlint] + :sh [:shellcheck] + :sql [:sqlfluff]}))) + +{1 :mfussenegger/nvim-lint : init : config :event [:BufReadPost :BufNewFile]} -- cgit v1.2.3-70-g09d2