fix(efm): fix formatting config settings
This commit is contained in:
parent
d4e314928d
commit
ce86cc1f6e
4 changed files with 40 additions and 42 deletions
|
@ -1,13 +1,12 @@
|
|||
local config = {
|
||||
lsp = {
|
||||
format_on_save = true,
|
||||
servers = {
|
||||
eslint = nil,
|
||||
efm = {
|
||||
-- disable_formatters = {'eslint'}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
local config = {}
|
||||
-- config.lsp = {
|
||||
-- format_on_save = true,
|
||||
-- servers = {
|
||||
-- eslint = false,
|
||||
-- efm = {
|
||||
-- disable_formatters = {'eslint', 'prettier', 'stylua'}
|
||||
-- }
|
||||
-- }
|
||||
-- }
|
||||
|
||||
return config
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
local config = require('cosmic.config')
|
||||
require('cosmic.lsp.providers')
|
||||
require('cosmic.lsp.diagnostics').init()
|
||||
|
||||
|
@ -5,3 +6,9 @@ vim.lsp.handlers['textDocument/signatureHelp'] = vim.lsp.with(vim.lsp.handlers.s
|
|||
vim.lsp.handlers['textDocument/hover'] = vim.lsp.with(vim.lsp.handlers.hover, {
|
||||
border = 'single',
|
||||
})
|
||||
|
||||
if config.lsp and config.lsp.format_on_save then
|
||||
vim.cmd([[
|
||||
autocmd BufWritePre * lua vim.lsp.buf.formatting()
|
||||
]])
|
||||
end
|
||||
|
|
|
@ -22,19 +22,6 @@ formatters.prettier = {
|
|||
formatStdin = true,
|
||||
}
|
||||
|
||||
--[[ local filetypes = {
|
||||
css = { prettier },
|
||||
html = { prettier },
|
||||
lua = { stylua },
|
||||
javascript = { prettier },
|
||||
javascriptreact = { prettier },
|
||||
json = { prettier },
|
||||
markdown = { prettier },
|
||||
scss = { prettier },
|
||||
typescript = { prettier },
|
||||
typescriptreact = { prettier },
|
||||
yaml = { prettier },
|
||||
} ]]
|
||||
local filetype_defaults = {
|
||||
css = {},
|
||||
html = {},
|
||||
|
@ -73,7 +60,7 @@ formatters.defaults = {
|
|||
}
|
||||
|
||||
local function is_formatter_disabled(formatter)
|
||||
if config.lsp.servers.efm.disable_formatters then
|
||||
if config.lsp and config.lsp.servers and config.lsp.servers.efm and config.lsp.servers.efm.disable_formatters then
|
||||
for i in pairs(config.lsp.servers.efm.disable_formatters) do
|
||||
local disabled = config.lsp.servers.efm.disable_formatters[i]
|
||||
if disabled == formatter then
|
||||
|
@ -87,17 +74,16 @@ end
|
|||
local languages = {}
|
||||
for formatter, filetypes in pairs(formatters.defaults) do
|
||||
if not is_formatter_disabled(formatter) then
|
||||
-- print(formatter)
|
||||
for i in pairs(formatters.defaults[formatter]) do
|
||||
local filetype = formatters.defaults[formatter][i]
|
||||
-- print(filetype)
|
||||
for i in pairs(filetypes) do
|
||||
local filetype = filetypes[i]
|
||||
languages[filetype] = languages[filetype] or {}
|
||||
table.insert(languages[filetype], { [formatter] = formatters[formatter] })
|
||||
table.insert(languages[filetype], formatters[formatter])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- print(vim.inspect(languages))
|
||||
-- print(vim.inspect(languages['javascript']['prettier']))
|
||||
|
||||
return {
|
||||
init_options = { documentFormatting = true, codeAction = true },
|
||||
|
@ -108,6 +94,6 @@ return {
|
|||
or util.root_pattern('.eslintrc.js')(fname)
|
||||
or util.root_pattern('tsconfig.json')(fname)
|
||||
end,
|
||||
filetype_defaults = vim.tbl_keys(filetype_defaults),
|
||||
filetypes = vim.tbl_keys(filetype_defaults),
|
||||
settings = { languages = languages },
|
||||
}
|
||||
|
|
|
@ -26,15 +26,19 @@ local requested_servers = {
|
|||
'jsonls',
|
||||
'cssls',
|
||||
'html',
|
||||
-- 'intelephense',
|
||||
-- 'pyright',
|
||||
-- 'gopls',
|
||||
}
|
||||
|
||||
-- add servers set in config to requested_servers table
|
||||
for config_server in pairs(config.lsp.servers) do
|
||||
if requested_servers[config_server] == nil then
|
||||
table.insert(requested_servers, config_server)
|
||||
-- get disabled servers from config
|
||||
local disabled_servers = {}
|
||||
if config.lsp and config.lsp.servers then
|
||||
for config_server, config_opt in pairs(config.lsp.servers) do
|
||||
if config_opt == false then
|
||||
for server in pairs(requested_servers) do
|
||||
if (requested_servers[server] == config_server) then
|
||||
table.insert(disabled_servers, requested_servers[server])
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -51,14 +55,16 @@ for server in pairs(requested_servers) do
|
|||
end
|
||||
end
|
||||
|
||||
--[[ Auto-format *.rs (rust) files prior to saving them
|
||||
autocmd BufWritePre *.rs lua vim.lsp.buf.formatting_sync(nil, 1000) ]]
|
||||
-- print(vim.inspect(requested_servers))
|
||||
-- print(vim.inspect(disabled_servers))
|
||||
|
||||
lsp_installer.on_server_ready(function(server)
|
||||
local opts = default_config
|
||||
--[[ if config.lsp.servers[server.name] == nil then
|
||||
|
||||
opts.autostart = true
|
||||
if vim.tbl_contains(disabled_servers, server.name) then
|
||||
opts.autostart = false
|
||||
end ]]
|
||||
end
|
||||
|
||||
if server.name == 'sumneko_lua' then
|
||||
opts = vim.tbl_deep_extend('force', opts, require('cosmic.lsp.providers.lua'))
|
||||
|
|
Loading…
Add table
Reference in a new issue