aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorToby Vincent <tobyv@tobyvin.dev>2023-09-30 22:12:41 -0500
committerToby Vincent <tobyv@tobyvin.dev>2023-09-30 22:14:24 -0500
commit0f4ebad8282436f31f8d31478c8e2c86a1614549 (patch)
treede1d4f4cb1ec53b342d7b6d538d0b00db2cd0e89
parentb63ac0a9a19d41f9cb3e72d7988608790c287adf (diff)
fix(nvim): replace efm with conform and nvim-lint
-rw-r--r--nvim/.config/nvim/lazy-lock.json2
-rw-r--r--nvim/.config/nvim/lua/plugins/conform.lua49
-rw-r--r--nvim/.config/nvim/lua/plugins/efmls-configs.lua73
-rw-r--r--nvim/.config/nvim/lua/plugins/nvim-lint.lua38
-rw-r--r--nvim/.config/nvim/lua/tobyvin/lsp.lua9
5 files changed, 89 insertions, 82 deletions
diff --git a/nvim/.config/nvim/lazy-lock.json b/nvim/.config/nvim/lazy-lock.json
index 13a0465..c67bd5b 100644
--- a/nvim/.config/nvim/lazy-lock.json
+++ b/nvim/.config/nvim/lazy-lock.json
@@ -16,6 +16,7 @@
"cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" },
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"cmp_luasnip": { "branch": "master", "commit": "18095520391186d634a0045dacaa346291096566" },
+ "conform.nvim": { "branch": "master", "commit": "8f86444d62fc4f012a56732b8fb2c595e1e21fde" },
"dressing.nvim": { "branch": "master", "commit": "c1e1d5fa44fe08811b6ef4aadac2b50e602f9504" },
"efmls-configs-nvim": { "branch": "main", "commit": "265037d589bde340227c60d2ceaaf552a2d83d85" },
"git-conflict.nvim": { "branch": "main", "commit": "896261933afe2fddf6fb043d9cd4d88301b151a9" },
@@ -39,6 +40,7 @@
"nvim-dap-repl-highlights": { "branch": "master", "commit": "97a2b322c05cf945c5aabaad5e599a20b25e77d9" },
"nvim-dap-virtual-text": { "branch": "master", "commit": "57f1dbd0458dd84a286b27768c142e1567f3ce3b" },
"nvim-jdtls": { "branch": "master", "commit": "3ca419c52a7c20a2565237db2c110ed68fc7e6f1" },
+ "nvim-lint": { "branch": "master", "commit": "1065763f115a7765ef237347ad676ba348d7193a" },
"nvim-lspconfig": { "branch": "master", "commit": "4266f9bb36b4fb09edd19b67d95043cf7ff88ddf" },
"nvim-neoclip.lua": { "branch": "main", "commit": "4e406ae0f759262518731538f2585abb9d269bac" },
"nvim-notify": { "branch": "master", "commit": "94859430020f5cf32a1b97ddd9e596fed9db7981" },
diff --git a/nvim/.config/nvim/lua/plugins/conform.lua b/nvim/.config/nvim/lua/plugins/conform.lua
new file mode 100644
index 0000000..0f2fd82
--- /dev/null
+++ b/nvim/.config/nvim/lua/plugins/conform.lua
@@ -0,0 +1,49 @@
+---@type LazyPluginSpec
+local M = {
+ "stevearc/conform.nvim",
+ version = "*",
+ event = "BufReadPre",
+ opts = {
+ formatters_by_ft = {
+ lua = { "stylua" },
+ css = { "stylelint" },
+ django = { "djlint" },
+ htmldjango = { "djlint" },
+ ["jinja.html"] = { "djlint" },
+ markdown = { "markdownlint", "cbfmt" },
+ python = { "black" },
+ sass = { "stylua" },
+ scss = { "stylua" },
+ sh = { "shfmt" },
+ },
+ format_on_save = false,
+ format_after_save = false,
+ formatters = {
+ cbfmt = {
+ command = "cbfmt",
+ args = {
+ "--stdin-filepath",
+ "$FILENAME",
+ "--best-effort",
+ "--config",
+ ("%s/cbfmt/cbfmt.toml"):format(vim.env.XDG_CONFIG_HOME),
+ },
+ stdin = true,
+ },
+ },
+ },
+}
+
+function M:init()
+ vim.o.formatexpr = "v:lua.require'conform'.formatexpr()"
+
+ vim.keymap.set({ "n", "v" }, "gqq", function()
+ return require("conform").format()
+ end, { desc = "format" })
+
+ vim.keymap.set({ "n", "v" }, "<leader>lf", function()
+ return require("conform").format()
+ end, { desc = "format" })
+end
+
+return M
diff --git a/nvim/.config/nvim/lua/plugins/efmls-configs.lua b/nvim/.config/nvim/lua/plugins/efmls-configs.lua
deleted file mode 100644
index fa35d77..0000000
--- a/nvim/.config/nvim/lua/plugins/efmls-configs.lua
+++ /dev/null
@@ -1,73 +0,0 @@
----@type LazyPluginSpec
-local M = {
- "creativenull/efmls-configs-nvim",
- version = "*",
- opts = {
- init_options = {
- documentFormatting = true,
- documentRangeFormatting = true,
- },
- },
-}
-
-function M:config(opts)
- opts.settings = vim.tbl_extend("force", opts.settings or {}, {
- languages = {
- css = {
- require("efmls-configs.formatters.stylelint"),
- },
- django = {
- require("efmls-configs.linters.djlint"),
- require("efmls-configs.formatters.djlint"),
- },
- htmldjango = {
- require("efmls-configs.linters.djlint"),
- require("efmls-configs.formatters.djlint"),
- },
- ["jinja.html"] = {
- require("efmls-configs.linters.djlint"),
- require("efmls-configs.formatters.djlint"),
- },
- lua = {
- require("efmls-configs.formatters.stylua"),
- },
- markdown = {
- (function()
- local markdownlint = require("efmls-configs.linters.markdownlint")
- markdownlint.lintCommand = ("%s --config %s/markdownlint/markdownlint.yaml"):format(
- markdownlint.lintCommand,
- vim.env.XDG_CONFIG_HOME
- )
- return markdownlint
- end)(),
- (function()
- local cbfmt = require("efmls-configs.formatters.cbfmt")
- cbfmt.formatCommand = ("%s --config %s/cbfmt/cbfmt.toml"):format(
- cbfmt.formatCommand,
- vim.env.XDG_CONFIG_HOME
- )
- return cbfmt
- end)(),
- require("efmls-configs.formatters.mdformat"),
- },
- python = {
- require("efmls-configs.formatters.black"),
- },
- sass = {
- require("efmls-configs.formatters.stylelint"),
- },
- scss = {
- require("efmls-configs.formatters.stylelint"),
- },
- sh = {
- require("efmls-configs.formatters.shfmt"),
- },
- },
- })
-
- vim.list_extend(opts.filetypes or {}, vim.tbl_keys(opts.settings.languages))
-
- require("tobyvin.lsp.configs").efm = opts
-end
-
-return M
diff --git a/nvim/.config/nvim/lua/plugins/nvim-lint.lua b/nvim/.config/nvim/lua/plugins/nvim-lint.lua
new file mode 100644
index 0000000..e4ef5c7
--- /dev/null
+++ b/nvim/.config/nvim/lua/plugins/nvim-lint.lua
@@ -0,0 +1,38 @@
+---@type LazyPluginSpec
+local M = {
+ "mfussenegger/nvim-lint",
+ opts = {
+ linters_by_ft = {
+ django = { "djlint" },
+ htmldjango = { "djlint" },
+ ["jinja.html"] = { "djlint" },
+ markdown = { "markdownlint" },
+ },
+ },
+}
+
+function M:init()
+ vim.api.nvim_create_autocmd({ "BufWritePost" }, {
+ callback = function()
+ require("lint").try_lint()
+ end,
+ })
+
+ vim.api.nvim_create_autocmd({ "BufReadPost" }, {
+ callback = function()
+ require("lint").try_lint()
+ end,
+ })
+end
+
+function M:config(opts)
+ local markdownlint = require("lint").linters.markdownlint
+ markdownlint.args = {
+ "--config",
+ ("%s/markdownlint/markdownlint.yaml"):format(vim.env.XDG_CONFIG_HOME),
+ }
+
+ require("lint").linters_by_ft = opts.linters_by_ft
+end
+
+return M
diff --git a/nvim/.config/nvim/lua/tobyvin/lsp.lua b/nvim/.config/nvim/lua/tobyvin/lsp.lua
index b97c809..d60111e 100644
--- a/nvim/.config/nvim/lua/tobyvin/lsp.lua
+++ b/nvim/.config/nvim/lua/tobyvin/lsp.lua
@@ -27,15 +27,6 @@ vim.api.nvim_create_autocmd("LspAttach", {
})
end
- if client.server_capabilities.documentFormattingProvider then
- vim.keymap.set("n", "gqq", vim.lsp.buf.format, { desc = "format", buffer = args.buf })
- vim.keymap.set("n", "<leader>lf", vim.lsp.buf.format, { desc = "format", buffer = args.buf })
- end
-
- if client.server_capabilities.documentRangeFormattingProvider then
- vim.keymap.set("v", "<leader>lf", vim.lsp.buf.format, { desc = "format", buffer = args.buf })
- end
-
if client.server_capabilities.hoverProvider then
vim.keymap.set({ "n", "v" }, "K", vim.lsp.buf.hover, { desc = "hover", buffer = args.buf })
end