summaryrefslogtreecommitdiffstatshomepage
path: root/nvim
diff options
context:
space:
mode:
authorToby Vincent <tobyv13@gmail.com>2023-06-23 16:41:57 -0500
committerToby Vincent <tobyv13@gmail.com>2023-06-23 16:42:26 -0500
commit01af646e16538fcadd2197b87d90fdebe2fcd498 (patch)
tree3aaa5fe87ef880c93c5200d19e3691705335a2e5 /nvim
parent75776586c7cd4771456a734f97b9b027548993cd (diff)
fix(nvim): set nginx formatter
Diffstat (limited to 'nvim')
-rw-r--r--nvim/.config/nvim/after/ftplugin/nginx.lua1
-rw-r--r--nvim/.config/nvim/lua/plugins/null-ls.lua23
-rw-r--r--nvim/.config/nvim/lua/tobyvin/lsp.lua2
3 files changed, 24 insertions, 2 deletions
diff --git a/nvim/.config/nvim/after/ftplugin/nginx.lua b/nvim/.config/nvim/after/ftplugin/nginx.lua
new file mode 100644
index 0000000..64fed59
--- /dev/null
+++ b/nvim/.config/nvim/after/ftplugin/nginx.lua
@@ -0,0 +1 @@
+vim.opt_local.formatprg = "nginxfmt -"
diff --git a/nvim/.config/nvim/lua/plugins/null-ls.lua b/nvim/.config/nvim/lua/plugins/null-ls.lua
index 8493d1a..3d80a2f 100644
--- a/nvim/.config/nvim/lua/plugins/null-ls.lua
+++ b/nvim/.config/nvim/lua/plugins/null-ls.lua
@@ -15,6 +15,28 @@ local M = {
function M.config()
local null_ls = require("null-ls")
+ -- HACK: Workaround for null-ls unconditionally setting formatting capability
+ -- See: https://github.com/jose-elias-alvarez/null-ls.nvim/issues/1131
+ vim.api.nvim_create_autocmd("LspAttach", {
+ group = vim.api.nvim_create_augroup("null-ls", { clear = true }),
+ desc = "set formatexpr based on null-ls source",
+ callback = function(args)
+ local client = vim.lsp.get_client_by_id(args.data.client_id)
+
+ if
+ client.name == "null-ls"
+ and not require("null-ls.generators").can_run(
+ vim.bo[args.buf].filetype,
+ require("null-ls.methods").lsp.FORMATTING
+ )
+ then
+ pcall(vim.keymap.del, "n", "gqq", { buffer = args.buf })
+ pcall(vim.keymap.del, "n", "<leader>lf", { buffer = args.buf })
+ vim.bo[args.buf].formatexpr = nil
+ end
+ end,
+ })
+
null_ls.setup({
sources = {
-- Disabled until sorting for code_actions gets pushed. See: https://github.com/stevearc/dressing.nvim/issues/22
@@ -43,7 +65,6 @@ function M.config()
null_ls.builtins.formatting.shfmt.with({
extra_filetypes = { "PKGBUILD" },
}),
- null_ls.builtins.formatting.nginx_beautifier,
},
})
end
diff --git a/nvim/.config/nvim/lua/tobyvin/lsp.lua b/nvim/.config/nvim/lua/tobyvin/lsp.lua
index b97c809..b008422 100644
--- a/nvim/.config/nvim/lua/tobyvin/lsp.lua
+++ b/nvim/.config/nvim/lua/tobyvin/lsp.lua
@@ -27,7 +27,7 @@ vim.api.nvim_create_autocmd("LspAttach", {
})
end
- if client.server_capabilities.documentFormattingProvider then
+ if client.server_capabilities.documentFormattingProvider and vim.bo[args.buf].formatexpr 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