diff --git a/lua/cosmic/config/config.lua b/lua/cosmic/config/config.lua index bd4a83b..4a01795 100644 --- a/lua/cosmic/config/config.lua +++ b/lua/cosmic/config/config.lua @@ -9,18 +9,8 @@ config.statusline = { main_icon = '★', } -config.treesitter = { - ensure_installed = { - 'typescript', - 'javascript', - 'tsx', - 'html', - 'css', - 'lua', - 'json', - 'scss', - }, -} +See cosmic defaults: cosmic/core/treesitter/init.lua +config.treesitter = {} config.lsp = { @@ -31,20 +21,8 @@ config.lsp = { rename_notification = false, -- see :h vim.diagnostic.config for all diagnostic configuration options + -- see cosmic defaults: cosmic/lsp/diagnostics.lua diagnostic = { - - -- disable diagnostic virtual text - virtual_text = false, - - -- disable diagnostic signs - signs = false, - - -- enable diagnostic update on insert - update_in_insert = true, - - -- disable underline for diagnostic - underline = false, - }, servers = { diff --git a/lua/cosmic/config/init.lua b/lua/cosmic/config/init.lua index 620d706..b52874c 100644 --- a/lua/cosmic/config/init.lua +++ b/lua/cosmic/config/init.lua @@ -15,47 +15,10 @@ local default_config = { statusline = { main_icon = require('cosmic.core.theme.icons').ghost, }, - treesitter = { - ensure_installed = { - 'typescript', - 'javascript', - 'tsx', - 'html', - 'css', - 'lua', - 'json', - 'scss', - }, - }, lsp = { format_on_save = true, -- true/false or table of filetypes {'.ts', '.js',} rename_notification = true, -- vim.diagnostic.config settiings - diagnostic = { - underline = true, - signs = true, - update_in_insert = false, - severity_sort = true, - float = { - show_header = false, - source = 'always', - border = 'single', - }, - virtual_text = { - spacing = 4, - source = 'always', - severity = { - min = vim.diagnostic.severity.HINT, - }, - -- todo: icons for diagnostics? - --[[ format = function(diagnostic) - if diagnostic.severity == vim.diagnostic.severity.ERROR then - return ('E: %s'):format(diagnostic.message) - end - return diagnostic.message - end, ]] - }, - }, servers = { -- enable/disable server + formatting -- rust_analyzer = true, -- enable non-default servers diff --git a/lua/cosmic/core/dashboard/init.lua b/lua/cosmic/core/dashboard/init.lua index 4a9c172..4b54b01 100644 --- a/lua/cosmic/core/dashboard/init.lua +++ b/lua/cosmic/core/dashboard/init.lua @@ -29,11 +29,11 @@ g.dashboard_custom_section = { command = 'Telescope find_files', }, file_explorer = { - description = { icons.file2 .. ' File Manager ' }, + description = { icons.file2 .. ' File Manager ' }, command = 'NvimTreeToggle', }, find_string = { - description = { icons.word .. ' Grep String fs' }, + description = { icons.word .. ' Grep String fs' }, command = 'Telescope grep_string', }, last_session = { diff --git a/lua/cosmic/core/session/init.lua b/lua/cosmic/core/session/init.lua index 5737408..a0b9e20 100644 --- a/lua/cosmic/core/session/init.lua +++ b/lua/cosmic/core/session/init.lua @@ -1,6 +1,9 @@ -require('auto-session').setup({ +local config = require('cosmic.config') +local defaults = { pre_save_cmds = { 'NvimTreeClose', 'cclose', 'lua vim.notify.dismiss()' }, auto_session_enabled = false, auto_save_enabled = true, auto_restore_enabled = false, -}) +} + +require('auto-session').setup(vim.tbl_deep_extend('force', defaults, config.session or {})) diff --git a/lua/cosmic/core/statusline/init.lua b/lua/cosmic/core/statusline/init.lua index 87f1a74..8221685 100644 --- a/lua/cosmic/core/statusline/init.lua +++ b/lua/cosmic/core/statusline/init.lua @@ -9,7 +9,12 @@ local highlight = utils.highlight local icons = require('cosmic.core.theme.icons') local config = require('cosmic.config') -local main_icon = config.statusline.main_icon +local defaults = vim.tbl_deep_extend('force', { + statusline = { + main_icon = icons.ghost, + }, +}, config.statusline or {}) +local main_icon = defaults.statusline.main_icon local get_mode = function() local mode_colors = { diff --git a/lua/cosmic/core/theme/icons.lua b/lua/cosmic/core/theme/icons.lua index 319a87a..7c40246 100644 --- a/lua/cosmic/core/theme/icons.lua +++ b/lua/cosmic/core/theme/icons.lua @@ -5,13 +5,13 @@ local icons = { arrow_right_filled = '', -- e0b0 arrow_left = '', -- e0b3 arrow_right = '', -- e0b1 - ghost = ' ', + ghost = '', warn = '', info = '', error = '', hint = '', perf = ' ', - note = ' ', + note = '', branch = '', file = '', dotdotdot = '…', @@ -22,9 +22,9 @@ local icons = { flame = ' ', check = ' ', trace = '✎', - file1 = ' ', - file2 = ' ', - clock = ' ', + file1 = '', + file2 = '', + clock = '', word = '', git = { unstaged = '✗', diff --git a/lua/cosmic/core/treesitter/init.lua b/lua/cosmic/core/treesitter/init.lua index 83abd5e..cbb9cc0 100644 --- a/lua/cosmic/core/treesitter/init.lua +++ b/lua/cosmic/core/treesitter/init.lua @@ -1,6 +1,16 @@ local config = require('cosmic.config') -require('nvim-treesitter.configs').setup({ - ensure_installed = config.treesitter.ensure_installed, + +local defaults = { + ensure_installed = { + 'typescript', + 'javascript', + 'tsx', + 'html', + 'css', + 'lua', + 'json', + 'scss', + }, highlight = { enable = true, use_languagetree = true, @@ -18,4 +28,6 @@ require('nvim-treesitter.configs').setup({ highlight_definitions = { enable = true }, highlight_current_scope = { enable = false }, }, -}) +} + +require('nvim-treesitter.configs').setup(vim.tbl_deep_extend('force', defaults, config.treesitter or {})) diff --git a/lua/cosmic/lsp/diagnostics.lua b/lua/cosmic/lsp/diagnostics.lua index 0add56e..04d1857 100644 --- a/lua/cosmic/lsp/diagnostics.lua +++ b/lua/cosmic/lsp/diagnostics.lua @@ -1,7 +1,35 @@ local config = require('cosmic.config') local icons = require('cosmic.core.theme.icons') -vim.diagnostic.config(config.lsp.diagnostic) +local defaults = { + underline = true, + signs = true, + update_in_insert = false, + severity_sort = true, + float = { + show_header = false, + source = 'always', + border = 'single', + }, + virtual_text = { + spacing = 4, + source = 'always', + severity = { + min = vim.diagnostic.severity.HINT, + }, + -- todo: icons for diagnostics? + --[[ format = function(diagnostic) + if diagnostic.severity == vim.diagnostic.severity.ERROR then + return ('E: %s'):format(diagnostic.message) + end + return diagnostic.message + end, ]] + }, +} + +local opts = vim.tbl_deep_extend('force', defaults, config.lsp.diagnostic or {}) + +vim.diagnostic.config(opts) local function do_diagnostic_signs() local signs = {