enc: optimize lsp config & optimize foramat on save

This commit is contained in:
asep.komarudin 2024-06-25 05:41:42 +07:00
parent 618b816d52
commit a3143f9ae0
12 changed files with 437 additions and 322 deletions

View file

@ -1,71 +1,71 @@
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
-- 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