summaryrefslogtreecommitdiff
path: root/fnl/plugins/editor
diff options
context:
space:
mode:
authorGustaf Rydholm <gustaf.rydholm@gmail.com>2023-12-04 22:20:46 +0100
committerGustaf Rydholm <gustaf.rydholm@gmail.com>2023-12-04 22:20:46 +0100
commitb96571d104ab72d95c41ffc120afa260dd280934 (patch)
tree5cd8be3110f07a3a7e02121703f52f8ab3da1554 /fnl/plugins/editor
parent3df5dfb5fe0d05005f9216421444695a9acae9b4 (diff)
Replace null(none)-ls with conform and nvim-lint
Diffstat (limited to 'fnl/plugins/editor')
-rw-r--r--fnl/plugins/editor/conform.fnl34
-rw-r--r--fnl/plugins/editor/lualine.fnl3
-rw-r--r--fnl/plugins/editor/nvim-lint.fnl26
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]}