123456789101112131415161718192021222324252627282930313233343536 |
- local status, null_ls = pcall(require, "null-ls")
- if not status then
- vim.notify("没有找到 null-ls")
- return
- end
- local group = vim.api.nvim_create_augroup("lsp_format_on_save", { clear = false })
- local event = "BufWritePre" -- or "BufWritePost"
- local async = event == "BufWritePost"
- null_ls.setup({
- on_attach = function(client, bufnr)
- if client.supports_method("textDocument/formatting") then
- vim.keymap.set("n", "<Leader>f", function()
- vim.lsp.buf.format({ bufnr = vim.api.nvim_get_current_buf() })
- end, { buffer = bufnr, desc = "[lsp] format" })
- -- format on save
- vim.api.nvim_clear_autocmds({ buffer = bufnr, group = group })
- vim.api.nvim_create_autocmd(event, {
- buffer = bufnr,
- group = group,
- callback = function()
- vim.lsp.buf.format({ bufnr = bufnr, async = async })
- end,
- desc = "[lsp] format on save",
- })
- end
- if client.supports_method("textDocument/rangeFormatting") then
- vim.keymap.set("x", "<Leader>f", function()
- vim.lsp.buf.format({ bufnr = vim.api.nvim_get_current_buf() })
- end, { buffer = bufnr, desc = "[lsp] format" })
- end
- end,
- })
|