summaryrefslogtreecommitdiffstatshomepage
path: root/nvim/.config
diff options
context:
space:
mode:
Diffstat (limited to 'nvim/.config')
-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