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 = { local config = {}
lsp = { -- config.lsp = {
format_on_save = true, -- format_on_save = true,
servers = { -- servers = {
eslint = nil, -- eslint = false,
efm = { -- efm = {
-- disable_formatters = {'eslint'} -- disable_formatters = {'eslint', 'prettier', 'stylua'}
} -- }
} -- }
} -- }
}
return config return config

View file

@ -1,3 +1,4 @@
local config = require('cosmic.config')
require('cosmic.lsp.providers') require('cosmic.lsp.providers')
require('cosmic.lsp.diagnostics').init() 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, { vim.lsp.handlers['textDocument/hover'] = vim.lsp.with(vim.lsp.handlers.hover, {
border = 'single', 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, 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 = { local filetype_defaults = {
css = {}, css = {},
html = {}, html = {},
@ -73,7 +60,7 @@ formatters.defaults = {
} }
local function is_formatter_disabled(formatter) 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 for i in pairs(config.lsp.servers.efm.disable_formatters) do
local disabled = config.lsp.servers.efm.disable_formatters[i] local disabled = config.lsp.servers.efm.disable_formatters[i]
if disabled == formatter then if disabled == formatter then
@ -87,17 +74,16 @@ end
local languages = {} local languages = {}
for formatter, filetypes in pairs(formatters.defaults) do for formatter, filetypes in pairs(formatters.defaults) do
if not is_formatter_disabled(formatter) then if not is_formatter_disabled(formatter) then
-- print(formatter) for i in pairs(filetypes) do
for i in pairs(formatters.defaults[formatter]) do local filetype = filetypes[i]
local filetype = formatters.defaults[formatter][i]
-- print(filetype)
languages[filetype] = languages[filetype] or {} languages[filetype] = languages[filetype] or {}
table.insert(languages[filetype], { [formatter] = formatters[formatter] }) table.insert(languages[filetype], formatters[formatter])
end end
end end
end end
-- print(vim.inspect(languages)) -- print(vim.inspect(languages))
-- print(vim.inspect(languages['javascript']['prettier']))
return { return {
init_options = { documentFormatting = true, codeAction = true }, init_options = { documentFormatting = true, codeAction = true },
@ -108,6 +94,6 @@ return {
or util.root_pattern('.eslintrc.js')(fname) or util.root_pattern('.eslintrc.js')(fname)
or util.root_pattern('tsconfig.json')(fname) or util.root_pattern('tsconfig.json')(fname)
end, end,
filetype_defaults = vim.tbl_keys(filetype_defaults), filetypes = vim.tbl_keys(filetype_defaults),
settings = { languages = languages }, settings = { languages = languages },
} }

View file

@ -26,15 +26,19 @@ local requested_servers = {
'jsonls', 'jsonls',
'cssls', 'cssls',
'html', 'html',
-- 'intelephense',
-- 'pyright',
-- 'gopls',
} }
-- add servers set in config to requested_servers table -- get disabled servers from config
for config_server in pairs(config.lsp.servers) do local disabled_servers = {}
if requested_servers[config_server] == nil then if config.lsp and config.lsp.servers then
table.insert(requested_servers, config_server) 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
end end
@ -51,14 +55,16 @@ for server in pairs(requested_servers) do
end end
end end
--[[ Auto-format *.rs (rust) files prior to saving them -- print(vim.inspect(requested_servers))
autocmd BufWritePre *.rs lua vim.lsp.buf.formatting_sync(nil, 1000) ]] -- print(vim.inspect(disabled_servers))
lsp_installer.on_server_ready(function(server) lsp_installer.on_server_ready(function(server)
local opts = default_config 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 opts.autostart = false
end ]] end
if server.name == 'sumneko_lua' then if server.name == 'sumneko_lua' then
opts = vim.tbl_deep_extend('force', opts, require('cosmic.lsp.providers.lua')) opts = vim.tbl_deep_extend('force', opts, require('cosmic.lsp.providers.lua'))