-- local run = 0 -- local frmt = pcode.format_on_save or 0 -- if frmt == 1 then -- run = 1 -- else -- run = 0 -- end -- -- local buf_clients = vim.lsp.get_clients() -- if next(buf_clients) == nil then -- run = 0 -- end -- -- if run == 1 then -- -- function FORMAT_FILTER(client) -- -- local filetype = vim.bo.filetype -- -- local n = require("null-ls") -- -- local s = require("null-ls.sources") -- -- local method = n.methods.FORMATTING -- -- local available_formatters = s.get_available(filetype, method) -- -- -- -- if #available_formatters > 0 then -- -- return client.name == "null-ls" -- -- elseif client.supports_method("textDocument/formatting") then -- -- return true -- -- else -- -- return false -- -- end -- -- end -- -- -- -- vim.cmd([[ -- -- augroup _lsp -- -- autocmd! -- -- " autocmd BufWritePre * lua vim.lsp.buf.format{timeout_ms =200, filter=format_filter} -- -- autocmd BufWritePre * lua vim.lsp.buf.format{timeout_ms=pcode.format_timeout_ms or 5000 ,filter=FORMAT_FILTER} -- -- augroup end -- -- ]]) -- -- ---filter passed to vim.lsp.buf.format -- ---always selects null-ls if it's available and caches the value per buffer -- ---@param client table client attached to a buffer -- ---@return boolean if client matches -- function FORMAT_FILTER(client) -- local filetype = vim.bo.filetype -- local n = require("null-ls") -- local s = require("null-ls.sources") -- local method = n.methods.FORMATTING -- local available_formatters = s.get_available(filetype, method) -- -- if #available_formatters > 0 then -- return client.name == "null-ls" -- elseif client.supports_method("textDocument/formatting") then -- return true -- else -- return false -- end -- end -- vim.api.nvim_create_autocmd("BufWritePre", { -- group = "lsp_format_on_save", -- pattern = "*", -- callback = function() -- vim.lsp.buf.format({ timeout_ms = pcode.format_timeout_ms or 5000, filter = FORMAT_FILTER }) -- end, -- }) -- else -- vim.schedule(function() -- pcall(function() -- vim.api.nvim_clear_autocmds({ group = "lsp_format_on_save" }) -- end) -- end) -- end