diff options
author | Toby Vincent <tobyv@tobyvin.dev> | 2023-09-30 22:12:41 -0500 |
---|---|---|
committer | Toby Vincent <tobyv@tobyvin.dev> | 2023-09-30 22:14:24 -0500 |
commit | 0f4ebad8282436f31f8d31478c8e2c86a1614549 (patch) | |
tree | de1d4f4cb1ec53b342d7b6d538d0b00db2cd0e89 | |
parent | b63ac0a9a19d41f9cb3e72d7988608790c287adf (diff) |
fix(nvim): replace efm with conform and nvim-lint
-rw-r--r-- | nvim/.config/nvim/lazy-lock.json | 2 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/plugins/conform.lua | 49 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/plugins/efmls-configs.lua | 73 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/plugins/nvim-lint.lua | 38 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/lsp.lua | 9 |
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 |