refactor: cleaner table merging
This commit is contained in:
parent
18c4971497
commit
77a4f36784
21 changed files with 76 additions and 56 deletions
|
@ -37,7 +37,8 @@ local default_config = {
|
|||
},
|
||||
}
|
||||
|
||||
local config = vim.tbl_deep_extend('force', default_config, user_config)
|
||||
local utils = require('cosmic.utils')
|
||||
local config = utils.merge(default_config, user_config)
|
||||
local user_servers = vim.tbl_keys(config.lsp.servers)
|
||||
|
||||
function config.lsp.can_client_format(client_name)
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
local utils = require('cosmic.utils')
|
||||
local icons = require('cosmic.theme.icons')
|
||||
local config = require('cosmic.config')
|
||||
|
||||
|
@ -16,7 +17,7 @@ end
|
|||
|
||||
-- set up vim.diagnostics
|
||||
-- vim.diagnostic.config opts
|
||||
vim.diagnostic.config(vim.tbl_deep_extend('force', {
|
||||
vim.diagnostic.config(utils.merge({
|
||||
underline = true,
|
||||
signs = true,
|
||||
update_in_insert = false,
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
local utils = require('cosmic.utils')
|
||||
local default_config = require('cosmic.lsp.providers.defaults')
|
||||
local config = require('cosmic.config')
|
||||
local lsp_installer = require('nvim-lsp-installer')
|
||||
|
@ -54,17 +55,17 @@ lsp_installer.on_server_ready(function(server)
|
|||
|
||||
-- set up default cosmic options
|
||||
if server.name == 'tsserver' then
|
||||
opts = vim.tbl_deep_extend('force', opts, require('cosmic.lsp.providers.tsserver'))
|
||||
opts = utils.merge(opts, require('cosmic.lsp.providers.tsserver'))
|
||||
elseif server.name == 'jsonls' then
|
||||
opts = vim.tbl_deep_extend('force', opts, require('cosmic.lsp.providers.jsonls'))
|
||||
opts = utils.merge(opts, require('cosmic.lsp.providers.jsonls'))
|
||||
elseif server.name == 'sumneko_lua' then
|
||||
opts = vim.tbl_deep_extend('force', opts, require('cosmic.lsp.providers.sumneko_lua'))
|
||||
opts = utils.merge(opts, require('cosmic.lsp.providers.sumneko_lua'))
|
||||
end
|
||||
|
||||
-- override options if user definds them
|
||||
if type(config.lsp.servers[server.name]) == 'table' then
|
||||
if config.lsp.servers[server.name].opts ~= nil then
|
||||
opts = vim.tbl_deep_extend('force', opts, config.lsp.servers[server.name].opts)
|
||||
opts = utils.merge(opts, config.lsp.servers[server.name].opts)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -1,20 +1,21 @@
|
|||
local utils = require('cosmic.utils')
|
||||
local defaults = require('cosmic.lsp.providers.defaults')
|
||||
local config = require('cosmic.config')
|
||||
local null_ls = require('null-ls')
|
||||
|
||||
local has_eslint_config = function(utils)
|
||||
return utils.root_has_file('.eslintrc')
|
||||
or utils.root_has_file('.eslintrc.json')
|
||||
or utils.root_has_file('.eslintrc.js')
|
||||
or utils.root_has_file('package.json')
|
||||
or utils.root_has_file('.eslintrc.cjs')
|
||||
or utils.root_has_file('.eslintrc.yaml')
|
||||
or utils.root_has_file('.eslintrc.yml')
|
||||
local has_eslint_config = function(u)
|
||||
return u.root_has_file('.eslintrc')
|
||||
or u.root_has_file('.eslintrc.json')
|
||||
or u.root_has_file('.eslintrc.js')
|
||||
or u.root_has_file('package.json')
|
||||
or u.root_has_file('.eslintrc.cjs')
|
||||
or u.root_has_file('.eslintrc.yaml')
|
||||
or u.root_has_file('.eslintrc.yml')
|
||||
end
|
||||
|
||||
local config_opts = config.lsp.servers.null_ls or {}
|
||||
|
||||
require('null-ls').setup(vim.tbl_deep_extend('force', {
|
||||
require('null-ls').setup(utils.merge({
|
||||
-- you must define at least one source for the plugin to work
|
||||
sources = {
|
||||
null_ls.builtins.code_actions.eslint_d.with({
|
||||
|
@ -30,5 +31,4 @@ require('null-ls').setup(vim.tbl_deep_extend('force', {
|
|||
null_ls.builtins.formatting.prettierd,
|
||||
null_ls.builtins.formatting.stylua,
|
||||
},
|
||||
|
||||
}, defaults, config_opts or {}))
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
local utils = require('cosmic.utils')
|
||||
local default_on_attach = require('cosmic.lsp.providers.defaults').on_attach
|
||||
local config = require('cosmic.config')
|
||||
local M = {}
|
||||
|
@ -8,7 +9,7 @@ function M.on_attach(client, bufnr)
|
|||
local ts_utils = require('nvim-lsp-ts-utils')
|
||||
|
||||
-- defaults
|
||||
ts_utils.setup(vim.tbl_deep_extend('force', {
|
||||
ts_utils.setup(utils.merge({
|
||||
debug = false,
|
||||
disable_commands = false,
|
||||
enable_import_on_completion = true,
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
local config = require('cosmic.config')
|
||||
local utils = require('cosmic.utils')
|
||||
|
||||
local defaults = {
|
||||
pre_save_cmds = { 'NvimTreeClose', 'cclose', 'lua vim.notify.dismiss()' },
|
||||
post_restore_cmds = { 'NvimTreeRefresh' },
|
||||
|
@ -7,4 +9,4 @@ local defaults = {
|
|||
auto_restore_enabled = false,
|
||||
}
|
||||
|
||||
require('auto-session').setup(vim.tbl_deep_extend('force', defaults, config.auto_session or {}))
|
||||
require('auto-session').setup(utils.merge(defaults, config.auto_session or {}))
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
local config = require('cosmic.config')
|
||||
local utils = require('cosmic.utils')
|
||||
|
||||
require('Comment').setup(vim.tbl_deep_extend('force', {
|
||||
require('Comment').setup(utils.merge({
|
||||
pre_hook = function(ctx)
|
||||
local U = require('Comment.utils')
|
||||
local location = nil
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
local config = require('cosmic.config')
|
||||
local utils = require('cosmic.utils')
|
||||
|
||||
local defaults = {
|
||||
border = 'rounded',
|
||||
}
|
||||
|
||||
require('cosmic-ui').setup(vim.tbl_deep_extend('force', defaults, config.cosmic_ui or {}))
|
||||
require('cosmic-ui').setup(utils.merge(defaults, config.cosmic_ui or {}))
|
||||
|
|
|
@ -11,7 +11,7 @@ local config = require('cosmic.config')
|
|||
local get_highlight = require('cosmic.theme.utils').get_highlight
|
||||
local statusline_colors = get_highlight('StatusLine')
|
||||
|
||||
local defaults = vim.tbl_deep_extend('force', {
|
||||
local defaults = utils.merge({
|
||||
main_icon = icons.cosmic,
|
||||
}, config.statusline or {})
|
||||
local main_icon = defaults.main_icon
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
local config = require('cosmic.config')
|
||||
local utils = require('cosmic.utils')
|
||||
|
||||
require('gitsigns').setup(vim.tbl_deep_extend('force', {
|
||||
require('gitsigns').setup(utils.merge({
|
||||
signs = {
|
||||
add = { hl = 'GitSignsAdd', text = '│', numhl = 'GitSignsAddNr', linehl = 'GitSignsAddLn' },
|
||||
change = { hl = 'GitSignsChange', text = '│', numhl = 'GitSignsChangeNr', linehl = 'GitSignsChangeLn' },
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
local config = require('cosmic.config')
|
||||
local utils = require('cosmic.utils')
|
||||
|
||||
require('lsp_signature').setup(vim.tbl_deep_extend('force', {
|
||||
require('lsp_signature').setup(utils.merge({
|
||||
bind = true, -- This is mandatory, otherwise border config won't get registered.
|
||||
handler_opts = {
|
||||
border = config.border,
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
local config = require('cosmic.config')
|
||||
local ls = require('luasnip')
|
||||
local utils = require('cosmic.utils')
|
||||
|
||||
-- some shorthands...
|
||||
--[[ local s = ls.snippet
|
||||
local sn = ls.snippet_node
|
||||
|
@ -10,7 +12,7 @@ local c = ls.choice_node
|
|||
local d = ls.dynamic_node ]]
|
||||
|
||||
-- Every unspecified option will be set to the default.
|
||||
ls.config.set_config(vim.tbl_deep_extend('force', {
|
||||
ls.config.set_config(utils.merge({
|
||||
history = true,
|
||||
-- Update more often, :h events for more info.
|
||||
updateevents = 'TextChanged,TextChangedI',
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
local icons = require('cosmic.theme.icons')
|
||||
local config = require('cosmic.config')
|
||||
local icons = require('cosmic.theme.icons')
|
||||
local utils = require('cosmic.utils')
|
||||
|
||||
require('notify').setup(vim.tbl_deep_extend('force', {
|
||||
require('notify').setup(utils.merge({
|
||||
icons = {
|
||||
ERROR = icons.error,
|
||||
WARN = icons.warn,
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
local cmp = require('cmp')
|
||||
local utils = require('cosmic-ui.utils')
|
||||
local utils = require('cosmic.utils')
|
||||
local luasnip = require('luasnip')
|
||||
local config = require('cosmic.config')
|
||||
local icons = require('cosmic.theme.icons')
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
local config = require('cosmic.config')
|
||||
local g = vim.g
|
||||
local icons = require('cosmic.theme.icons')
|
||||
local config = require('cosmic.config')
|
||||
local utils = require('cosmic.utils')
|
||||
|
||||
-- settings
|
||||
g.nvim_tree_git_hl = 1
|
||||
|
@ -48,4 +49,4 @@ local args = {
|
|||
},
|
||||
}
|
||||
|
||||
require('nvim-tree').setup(vim.tbl_deep_extend('force', args, config.nvim_tree or {}))
|
||||
require('nvim-tree').setup(utils.merge(args, config.nvim_tree or {}))
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
local actions = require('telescope.actions')
|
||||
local icons = require('cosmic.theme.icons')
|
||||
local config = require('cosmic.config')
|
||||
local icons = require('cosmic.theme.icons')
|
||||
local utils = require('cosmic.utils')
|
||||
|
||||
local default_mappings = {
|
||||
n = {
|
||||
|
@ -47,7 +48,7 @@ local opts_flex = {
|
|||
},
|
||||
}
|
||||
|
||||
require('telescope').setup(vim.tbl_deep_extend('force', {
|
||||
require('telescope').setup(utils.merge({
|
||||
defaults = {
|
||||
prompt_prefix = '🔍 ',
|
||||
selection_caret = icons.folder.arrow_closed,
|
||||
|
@ -78,9 +79,9 @@ require('telescope').setup(vim.tbl_deep_extend('force', {
|
|||
},
|
||||
},
|
||||
pickers = {
|
||||
buffers = vim.tbl_deep_extend('force', opts_flex, {
|
||||
buffers = utils.merge(opts_flex, {
|
||||
prompt_title = '✨ Search Buffers ✨',
|
||||
mappings = vim.tbl_deep_extend('force', {
|
||||
mappings = utils.merge({
|
||||
n = {
|
||||
['d'] = actions.delete_buffer,
|
||||
},
|
||||
|
@ -88,46 +89,46 @@ require('telescope').setup(vim.tbl_deep_extend('force', {
|
|||
sort_mru = true,
|
||||
preview_title = false,
|
||||
}),
|
||||
lsp_code_actions = vim.tbl_deep_extend('force', opts_cursor, {
|
||||
lsp_code_actions = utils.merge(opts_cursor, {
|
||||
prompt_title = 'Code Actions',
|
||||
}),
|
||||
lsp_range_code_actions = vim.tbl_deep_extend('force', opts_vertical, {
|
||||
lsp_range_code_actions = utils.merge(opts_vertical, {
|
||||
prompt_title = 'Code Actions',
|
||||
}),
|
||||
lsp_document_diagnostics = vim.tbl_deep_extend('force', opts_vertical, {
|
||||
lsp_document_diagnostics = utils.merge(opts_vertical, {
|
||||
prompt_title = 'Document Diagnostics',
|
||||
mappings = default_mappings,
|
||||
}),
|
||||
lsp_implementations = vim.tbl_deep_extend('force', opts_cursor, {
|
||||
lsp_implementations = utils.merge(opts_cursor, {
|
||||
prompt_title = 'Implementations',
|
||||
mappings = default_mappings,
|
||||
}),
|
||||
lsp_definitions = vim.tbl_deep_extend('force', opts_cursor, {
|
||||
lsp_definitions = utils.merge(opts_cursor, {
|
||||
prompt_title = 'Definitions',
|
||||
mappings = default_mappings,
|
||||
}),
|
||||
lsp_references = vim.tbl_deep_extend('force', opts_vertical, {
|
||||
lsp_references = utils.merge(opts_vertical, {
|
||||
prompt_title = 'References',
|
||||
mappings = default_mappings,
|
||||
}),
|
||||
find_files = vim.tbl_deep_extend('force', opts_flex, {
|
||||
find_files = utils.merge(opts_flex, {
|
||||
prompt_title = '✨ Search Project ✨',
|
||||
mappings = default_mappings,
|
||||
hidden = true,
|
||||
}),
|
||||
diagnostics = vim.tbl_deep_extend('force', opts_vertical, {
|
||||
diagnostics = utils.merge(opts_vertical, {
|
||||
mappings = default_mappings,
|
||||
}),
|
||||
git_files = vim.tbl_deep_extend('force', opts_flex, {
|
||||
git_files = utils.merge(opts_flex, {
|
||||
prompt_title = '✨ Search Git Project ✨',
|
||||
mappings = default_mappings,
|
||||
hidden = true,
|
||||
}),
|
||||
live_grep = vim.tbl_deep_extend('force', opts_flex, {
|
||||
live_grep = utils.merge(opts_flex, {
|
||||
prompt_title = '✨ Live Grep ✨',
|
||||
mappings = default_mappings,
|
||||
}),
|
||||
grep_string = vim.tbl_deep_extend('force', opts_vertical, {
|
||||
grep_string = utils.merge(opts_vertical, {
|
||||
prompt_title = '✨ Grep String ✨',
|
||||
mappings = default_mappings,
|
||||
}),
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
local icons = require('cosmic.theme.icons')
|
||||
local config = require('cosmic.config')
|
||||
local icons = require('cosmic.theme.icons')
|
||||
local utils = require('cosmic.utils')
|
||||
|
||||
require('todo-comments').setup(vim.tbl_deep_extend('force', {
|
||||
require('todo-comments').setup(utils.merge({
|
||||
keywords = {
|
||||
FIX = {
|
||||
icon = icons.debug, -- icon used for the sign, and in search results
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
local config = require('cosmic.config')
|
||||
local utils = require('cosmic.utils')
|
||||
|
||||
local defaults = {
|
||||
ensure_installed = {
|
||||
|
@ -35,4 +36,4 @@ local defaults = {
|
|||
},
|
||||
}
|
||||
|
||||
require('nvim-treesitter.configs').setup(vim.tbl_deep_extend('force', defaults, config.treesitter or {}))
|
||||
require('nvim-treesitter.configs').setup(utils.merge(defaults, config.treesitter or {}))
|
||||
|
|
|
@ -5,12 +5,13 @@ end
|
|||
local highlight = require('cosmic.theme.utils').highlight
|
||||
local get_highlight = require('cosmic.theme.utils').get_highlight
|
||||
local set_highlight = require('cosmic.theme.utils').set_highlight
|
||||
local utils = require('cosmic.utils')
|
||||
|
||||
local statusline_colors = get_highlight('StatusLine')
|
||||
local error_colors = get_highlight('DiagnosticError')
|
||||
set_highlight(
|
||||
'DiagnosticErrorInv',
|
||||
vim.tbl_extend('force', error_colors, {
|
||||
utils.merge(error_colors, {
|
||||
guibg = error_colors.guifg,
|
||||
guifg = statusline_colors.guibg,
|
||||
})
|
||||
|
@ -19,7 +20,7 @@ set_highlight(
|
|||
local warning_colors = get_highlight('DiagnosticWarn')
|
||||
set_highlight(
|
||||
'DiagnosticWarnInv',
|
||||
vim.tbl_extend('force', warning_colors, {
|
||||
utils.merge(warning_colors, {
|
||||
guibg = warning_colors.guifg,
|
||||
guifg = statusline_colors.guibg,
|
||||
})
|
||||
|
@ -28,7 +29,7 @@ set_highlight(
|
|||
local hint_colors = get_highlight('DiagnosticHint')
|
||||
set_highlight(
|
||||
'DiagnosticHintInv',
|
||||
vim.tbl_extend('force', hint_colors, {
|
||||
utils.merge(hint_colors, {
|
||||
guibg = hint_colors.guifg,
|
||||
guifg = statusline_colors.guibg,
|
||||
})
|
||||
|
@ -37,7 +38,7 @@ set_highlight(
|
|||
local info_colors = get_highlight('DiagnosticInfo')
|
||||
set_highlight(
|
||||
'DiagnosticInfoInv',
|
||||
vim.tbl_extend('force', info_colors, {
|
||||
utils.merge(info_colors, {
|
||||
guibg = info_colors.guifg,
|
||||
guifg = statusline_colors.guibg,
|
||||
})
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
local Logger = require('cosmic.utils.logger')
|
||||
local M = {}
|
||||
|
||||
function M.map(mode, lhs, rhs, opts)
|
||||
|
@ -17,7 +16,7 @@ function M.buf_map(bufnr, mode, lhs, rhs, opts)
|
|||
vim.api.nvim_buf_set_keymap(bufnr, mode, lhs, rhs, options)
|
||||
end
|
||||
|
||||
M.merge = function(...)
|
||||
function M.merge(...)
|
||||
return vim.tbl_deep_extend('force', ...)
|
||||
end
|
||||
|
||||
|
@ -67,6 +66,7 @@ local function clear_cache()
|
|||
end
|
||||
|
||||
function M.post_reload(msg)
|
||||
local Logger = require('cosmic.utils.logger')
|
||||
unload('cosmic.utils', true)
|
||||
unload('cosmic.theme', true)
|
||||
unload('cosmic.plugins.statusline', true)
|
||||
|
@ -102,6 +102,7 @@ end
|
|||
|
||||
-- update instance of CosmicNvim
|
||||
function M.update()
|
||||
local Logger = require('cosmic.utils.logger')
|
||||
local Job = require('plenary.job')
|
||||
local path = M.get_install_dir()
|
||||
local errors = {}
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
local utils = require('cosmic.utils')
|
||||
local Logger = {}
|
||||
Logger.__index = Logger
|
||||
|
||||
|
@ -8,7 +9,7 @@ function Logger:log(msg, opts)
|
|||
vim.notify(
|
||||
msg,
|
||||
vim.log.levels.INFO,
|
||||
vim.tbl_deep_extend('force', {
|
||||
utils.merge({
|
||||
title = title,
|
||||
}, opts)
|
||||
)
|
||||
|
@ -19,7 +20,7 @@ function Logger:warn(msg, opts)
|
|||
vim.notify(
|
||||
msg,
|
||||
vim.log.levels.WARN,
|
||||
vim.tbl_deep_extend('force', {
|
||||
utils.merge({
|
||||
title = title,
|
||||
}, opts)
|
||||
)
|
||||
|
@ -30,7 +31,7 @@ function Logger:error(msg, opts)
|
|||
vim.notify(
|
||||
msg,
|
||||
vim.log.levels.ERROR,
|
||||
vim.tbl_deep_extend('force', {
|
||||
utils.merge({
|
||||
title = title,
|
||||
}, opts)
|
||||
)
|
||||
|
|
Loading…
Add table
Reference in a new issue