fix(efm): fix formatting config settings

This commit is contained in:
Matt Leong 2021-10-24 16:02:56 -07:00
parent d4e314928d
commit ce86cc1f6e
4 changed files with 40 additions and 42 deletions

View file

@ -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

View file

@ -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

View file

@ -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 },
}

View file

@ -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'))