diff options
author | Gustaf Rydholm <gustaf.rydholm@gmail.com> | 2023-12-04 22:20:46 +0100 |
---|---|---|
committer | Gustaf Rydholm <gustaf.rydholm@gmail.com> | 2023-12-04 22:20:46 +0100 |
commit | b96571d104ab72d95c41ffc120afa260dd280934 (patch) | |
tree | 5cd8be3110f07a3a7e02121703f52f8ab3da1554 /fnl/plugins/editor | |
parent | 3df5dfb5fe0d05005f9216421444695a9acae9b4 (diff) |
Replace null(none)-ls with conform and nvim-lint
Diffstat (limited to 'fnl/plugins/editor')
-rw-r--r-- | fnl/plugins/editor/conform.fnl | 34 | ||||
-rw-r--r-- | fnl/plugins/editor/lualine.fnl | 3 | ||||
-rw-r--r-- | fnl/plugins/editor/nvim-lint.fnl | 26 |
3 files changed, 61 insertions, 2 deletions
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] :<leader>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]} |