From 01af4f41ce297fede6c250510052eca9220f32af Mon Sep 17 00:00:00 2001 From: Matt Leong Date: Mon, 25 Oct 2021 07:33:41 -0700 Subject: [PATCH] feat(config): add editor config --- lua/cosmic/config/config.lua | 11 ++++++++--- lua/cosmic/config/editor.lua | 6 ++++++ lua/cosmic/config/init.lua | 28 +++++++++++++++++++++------- lua/cosmic/init.lua | 7 +++++++ 4 files changed, 42 insertions(+), 10 deletions(-) create mode 100644 lua/cosmic/config/editor.lua diff --git a/lua/cosmic/config/config.lua b/lua/cosmic/config/config.lua index 85a4443..1ac54ba 100644 --- a/lua/cosmic/config/config.lua +++ b/lua/cosmic/config/config.lua @@ -1,16 +1,21 @@ +-- Override Cosmic configuration options + +--[[ local config = {} ---[[ config.lsp = { +config.lsp = { format_on_save = true, servers = { eslint = false, efm = { format = false -- disable formatting all together - disable_formatters = {'eslint', 'prettier', 'stylua'} + disable_formatters = {}, -- e.g. 'eslint', 'prettier', 'lua' }, tsserver = { format = false, } } -} ]] +} return config +]] + diff --git a/lua/cosmic/config/editor.lua b/lua/cosmic/config/editor.lua new file mode 100644 index 0000000..9a53945 --- /dev/null +++ b/lua/cosmic/config/editor.lua @@ -0,0 +1,6 @@ +-- Override Cosmic editor options + +--[[ local opt = vim.opt +opt.tabstop = 4 +opt.softtabstop = 4 +opt.shiftwidth = 4 ]] diff --git a/lua/cosmic/config/init.lua b/lua/cosmic/config/init.lua index ce23f57..18dcc9c 100644 --- a/lua/cosmic/config/init.lua +++ b/lua/cosmic/config/init.lua @@ -1,28 +1,42 @@ -local user_config = require('cosmic.config.config') +local ok, user_config = pcall(require, 'cosmic.config.config') + +if not ok then + error(string.format('Error loading user config...\n\n%s', user_config)) + error('No user config, using default instead...') +end + +if user_config == true then + user_config = {} +end -- these settings will be merged with any settings definined in config.lua local default_config = { lsp = { format_on_save = false, servers = { - eslint = false, + eslint = true, efm = { format = true, - disable_formatters = {}, -- e.g. 'eslint', 'prettier', 'stylua' + disable_formatters = { 'eslint' }, -- e.g. 'eslint', 'prettier', 'stylua' }, tsserver = { format = false, - } + }, }, }, } -local config = vim.tbl_deep_extend('force', default_config, user_config) - +local config = vim.tbl_deep_extend('force', default_config, user_config) -- default servers that can be formatted local formatting_servers = { 'efm', 'eslint', 'tsserver', 'sumneko_lua', 'rust_analyzer', 'gopls', 'pyright' } +local user_servers = vim.tbl_keys(config.lsp.servers) + function default_config.lsp.can_client_format(client_name) - return (config.lsp.servers[client_name] and config.lsp.servers[client_name].format and vim.tbl_contains(formatting_servers, client_name)) + if not user_servers[client_name] or vim.tbl_contains(formatting_servers, client_name) then + return false + end + + return (user_servers[client_name].format == true) end return config diff --git a/lua/cosmic/init.lua b/lua/cosmic/init.lua index 1de6634..b5928b5 100644 --- a/lua/cosmic/init.lua +++ b/lua/cosmic/init.lua @@ -3,3 +3,10 @@ require('cosmic.pluginsInit') require('cosmic.compiled') require('cosmic.mappings') require('cosmic.editor') + +do + local ok, err = pcall(require, 'cosmic.config.editor') + if not ok then + error(string.format('Error loading custor editor settings...\n\n%s', err)) + end +end