From 6eb6e70d236a2257fa5dd5d627460e201aa033d4 Mon Sep 17 00:00:00 2001 From: Matthew Leong Date: Wed, 5 Jun 2024 09:37:04 -0700 Subject: [PATCH 01/22] feat: lots of clean up --- lazy-lock.json | 67 +++++++++++++------------- lua/cosmic/core/user.lua | 10 +--- lua/cosmic/lsp/diagnostics/config.lua | 50 ------------------- lua/cosmic/lsp/diagnostics/init.lua | 69 ++++++++++++++++++++++----- lua/cosmic/lsp/providers/defaults.lua | 13 ++--- lua/cosmic/lsp/providers/eslint.lua | 9 ++++ lua/cosmic/lsp/providers/tsserver.lua | 13 +++++ lua/cosmic/plugins/null-ls/init.lua | 5 +- lua/cosmic/utils/lsp.lua | 14 ++++++ 9 files changed, 132 insertions(+), 118 deletions(-) delete mode 100644 lua/cosmic/lsp/diagnostics/config.lua diff --git a/lazy-lock.json b/lazy-lock.json index e4e9e38..6bf62c8 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,46 +1,45 @@ { "Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" }, - "LuaSnip": { "branch": "master", "commit": "a7a4b4682c4b3e2ba82b82a4e6e5f5a0e79dec32" }, - "SchemaStore.nvim": { "branch": "main", "commit": "4d798fd5b692c8fce77268aba8f6f926b0c9f835" }, - "auto-session": { "branch": "main", "commit": "29a8c77a0579636d5520aebd38bdbc2e6079f2f5" }, + "LuaSnip": { "branch": "master", "commit": "2b6860d15aaab01d3fb90859c0ba97f20ad7bc5f" }, + "SchemaStore.nvim": { "branch": "main", "commit": "9fb66cf7b633a55b1c1a7d401f60bff48e6b8cfb" }, + "auto-session": { "branch": "main", "commit": "af2219b9fa99c1d7ac409bd9eac094c459d3f52d" }, "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, - "cmp-cmdline": { "branch": "main", "commit": "8ee981b4a91f536f52add291594e89fb6645e451" }, - "cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" }, + "cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" }, "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, "cosmic-ui": { "branch": "main", "commit": "c0b14531999f2bfef3d927c4dcd57a1a8fed5ee9" }, - "friendly-snippets": { "branch": "main", "commit": "dcd4a586439a1c81357d5b9d26319ae218cc9479" }, - "gitsigns.nvim": { "branch": "main", "commit": "078041e9d060a386b0c9d3a8c7a7b019a35d3fb0" }, - "lazy.nvim": { "branch": "main", "commit": "83493db50a434a4c5c648faf41e2ead80f96e478" }, - "lualine.nvim": { "branch": "master", "commit": "af4c3cf17206810880d2a93562e0a4c0d901c684" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "82c7cb08ddb836ad938b2708e50085f12a8825d2" }, - "mason.nvim": { "branch": "main", "commit": "3b5068f0fc565f337d67a2d315d935f574848ee7" }, - "neodev.nvim": { "branch": "main", "commit": "84e0290f5600e8b89c0dfcafc864f45496a53400" }, - "noice.nvim": { "branch": "main", "commit": "bf67d70bd7265d075191e7812d8eb42b9791f737" }, - "none-ls-extras.nvim": { "branch": "main", "commit": "c226aca7a506dd4325fb96188bffe804d24bbf18" }, + "friendly-snippets": { "branch": "main", "commit": "e11b09bf10706bb74e16e4c3d11b2274d62e687f" }, + "gitsigns.nvim": { "branch": "main", "commit": "379a5a915aea3e9ba0d4a778e8478584ac0f9011" }, + "lazy.nvim": { "branch": "main", "commit": "0fc34a0cf5f5f6f998a0897119a7d846b47eaa9d" }, + "lualine.nvim": { "branch": "master", "commit": "0a5a66803c7407767b799067986b4dc3036e1983" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "a4caa0d083aab56f6cd5acf2d42331b74614a585" }, + "mason.nvim": { "branch": "main", "commit": "0950b15060067f752fde13a779a994f59516ce3d" }, + "neodev.nvim": { "branch": "main", "commit": "02893eeb9d6e8503817bd52385e111cba9a90500" }, + "noice.nvim": { "branch": "main", "commit": "29c7f030b0920e2f17263a9ab8742cde144b9140" }, + "none-ls-extras.nvim": { "branch": "main", "commit": "336e84b9e43c0effb735b08798ffac382920053b" }, "none-ls-shellcheck.nvim": { "branch": "main", "commit": "0f84461241e76e376a95fb7391deac82dc3efdbf" }, - "none-ls.nvim": { "branch": "main", "commit": "72e25ed4162474ef5d666525853f8a42bffd97c5" }, - "nui.nvim": { "branch": "main", "commit": "cbd2668414331c10039278f558630ed19b93e69b" }, - "nvim-autopairs": { "branch": "master", "commit": "797260ff31e8bdd9db0f0c352659a35aba335b0b" }, - "nvim-cmp": { "branch": "main", "commit": "04e0ca376d6abdbfc8b52180f8ea236cbfddf782" }, - "nvim-colorizer.lua": { "branch": "master", "commit": "36c610a9717cc9ec426a07c8e6bf3b3abcb139d6" }, - "nvim-lspconfig": { "branch": "master", "commit": "eb012f03bb3b4aca9e875d146008b923d0e07e65" }, - "nvim-notify": { "branch": "master", "commit": "5371f4bfc1f6d3adf4fe9d62cd3a9d44356bfd15" }, - "nvim-tree.lua": { "branch": "master", "commit": "f7c09bd72e50e1795bd3afb9e2a2b157b4bfb3c3" }, - "nvim-treesitter": { "branch": "master", "commit": "567a76780cd4f982dae1ec57e3dad6174bef3680" }, + "none-ls.nvim": { "branch": "main", "commit": "8691504118b252d64fc5023a104aedd100ab754a" }, + "nui.nvim": { "branch": "main", "commit": "322978c734866996274467de084a95e4f9b5e0b1" }, + "nvim-autopairs": { "branch": "master", "commit": "c15de7e7981f1111642e7e53799e1211d4606cb9" }, + "nvim-cmp": { "branch": "main", "commit": "5260e5e8ecadaf13e6b82cf867a909f54e15fd07" }, + "nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" }, + "nvim-lspconfig": { "branch": "master", "commit": "d1ab6b6051976b04948e127b0f302a465b1394d6" }, + "nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" }, + "nvim-tree.lua": { "branch": "master", "commit": "26632f496e7e3c0450d8ecff88f49068cecc8bda" }, + "nvim-treesitter": { "branch": "master", "commit": "49e4e2b4b62360677568c47b6467f31c809b391c" }, "nvim-treesitter-refactor": { "branch": "master", "commit": "65ad2eca822dfaec2a3603119ec3cc8826a7859e" }, - "nvim-ts-autotag": { "branch": "main", "commit": "531f48334c422222aebc888fd36e7d109cb354cd" }, - "nvim-ts-context-commentstring": { "branch": "main", "commit": "7ab799a9792f7cf3883cf28c6a00ad431f3d382a" }, - "nvim-web-devicons": { "branch": "master", "commit": "cb0c967c9723a76ccb1be0cc3a9a10e577d2f6ec" }, + "nvim-ts-autotag": { "branch": "main", "commit": "6eb4120a1aadef07ac312f1c4bc6456712220007" }, + "nvim-ts-context-commentstring": { "branch": "main", "commit": "cb064386e667def1d241317deed9fd1b38f0dc2e" }, + "nvim-web-devicons": { "branch": "master", "commit": "b77921fdc44833c994fdb389d658ccbce5490c16" }, "nx.nvim": { "branch": "main", "commit": "f8a3a21b3d540889401a40d1f2803083794c0372" }, - "plenary.nvim": { "branch": "master", "commit": "f7adfc4b3f4f91aab6caebf42b3682945fbc35be" }, + "plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" }, "popup.nvim": { "branch": "master", "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "9ef21b2e6bb6ebeaf349a0781745549bbb870d27" }, - "telescope.nvim": { "branch": "master", "commit": "c816406bd50ade6ec754474f08974154487d417c" }, - "todo-comments.nvim": { "branch": "main", "commit": "833d8dd8b07eeda37a09e99460f72a02616935cb" }, - "tokyonight.nvim": { "branch": "main", "commit": "c025baf23b62f044eff1f4ef561c45de636f0e32" }, - "typescript-tools.nvim": { "branch": "master", "commit": "c43d9580c3ff5999a1eabca849f807ab33787ea7" }, - "vim-floaterm": { "branch": "master", "commit": "c0535d758004bcce016839e318cbbe802b92c469" }, - "vim-fugitive": { "branch": "master", "commit": "8d4e8d45385c63a0bf735fe1164772116bf0da0d" }, - "which-key.nvim": { "branch": "main", "commit": "4433e5ec9a507e5097571ed55c02ea9658fb268a" } + "telescope.nvim": { "branch": "master", "commit": "dfa230be84a044e7f546a6c2b0a403c739732b86" }, + "todo-comments.nvim": { "branch": "main", "commit": "70a93ce66083699571adc361166504b03cc39c2b" }, + "tokyonight.nvim": { "branch": "main", "commit": "7e5ef71a103e7de5fe6c05f5d6ab97d1640f08cf" }, + "vim-floaterm": { "branch": "master", "commit": "4e28c8dd0271e10a5f55142fb6fe9b1599ee6160" }, + "vim-fugitive": { "branch": "master", "commit": "4f59455d2388e113bd510e85b310d15b9228ca0d" }, + "which-key.nvim": { "branch": "main", "commit": "4b7167f8fb2dba3d01980735e3509e172c024c29" } } \ No newline at end of file diff --git a/lua/cosmic/core/user.lua b/lua/cosmic/core/user.lua index ca80b12..9d5f081 100644 --- a/lua/cosmic/core/user.lua +++ b/lua/cosmic/core/user.lua @@ -9,15 +9,7 @@ local default_config = { border = 'rounded', disable_builtin_plugins = {}, add_plugins = {}, - plugins = { - lsp_lines = { - -- additional flag only for CosmicNvim - -- true - loads plugin and is enabled at start - -- false - loads plugin but is not enabled at start - -- you may use ld to toggle - enable_on_start = false, - }, - }, + plugins = {}, lsp = { inlay_hint = false, format_on_save = true, -- true/false or table of filetypes {'.ts', '.js',} diff --git a/lua/cosmic/lsp/diagnostics/config.lua b/lua/cosmic/lsp/diagnostics/config.lua deleted file mode 100644 index 783769f..0000000 --- a/lua/cosmic/lsp/diagnostics/config.lua +++ /dev/null @@ -1,50 +0,0 @@ -local u = require('cosmic.utils') -local icons = require('cosmic.utils.icons') -local user_config = require('cosmic.core.user') - -local function format_diagnostic(diagnostic) - local icon = icons.error - if diagnostic.severity == vim.diagnostic.severity.WARN then - icon = icons.warn - elseif diagnostic.severity == vim.diagnostic.severity.INFO then - icon = icons.info - elseif diagnostic.severity == vim.diagnostic.severity.HINT then - icon = icons.hint - end - - local message = string.format('%s %s', icon, diagnostic.message) - if diagnostic.code and diagnostic.source then - message = string.format('%s [%s][%s] %s', icon, diagnostic.source, diagnostic.code, diagnostic.message) - elseif diagnostic.code or diagnostic.source then - message = string.format('%s [%s] %s', icon, diagnostic.code or diagnostic.source, diagnostic.message) - end - - return message .. ' ' -end - -local config = u.merge({ - underline = true, - signs = true, - update_in_insert = false, - severity_sort = true, - float = { - border = user_config.border, - focusable = false, - header = { icons.debug .. ' Diagnostics:', 'DiagnosticInfo' }, - scope = 'line', - suffix = '', - source = false, - format = format_diagnostic, - }, - virtual_text = { - prefix = '', - spacing = 2, - source = false, - severity = { - min = vim.diagnostic.severity.HINT, - }, - format = format_diagnostic, - }, -}, user_config.diagnostic or {}) - -return config diff --git a/lua/cosmic/lsp/diagnostics/init.lua b/lua/cosmic/lsp/diagnostics/init.lua index ee71c88..9f58b34 100644 --- a/lua/cosmic/lsp/diagnostics/init.lua +++ b/lua/cosmic/lsp/diagnostics/init.lua @@ -1,19 +1,64 @@ +local u = require('cosmic.utils') local icons = require('cosmic.utils.icons') -local config = require('cosmic.lsp.diagnostics.config') +local user_config = require('cosmic.core.user') --- set up LSP signs -local signs = { - Error = icons.error .. ' ', - Warn = icons.warn .. ' ', - Hint = icons.hint .. ' ', - Info = icons.info .. ' ', -} +local function format_diagnostic(diagnostic) + local icon = icons.error + if diagnostic.severity == vim.diagnostic.severity.WARN then + icon = icons.warn + elseif diagnostic.severity == vim.diagnostic.severity.INFO then + icon = icons.info + elseif diagnostic.severity == vim.diagnostic.severity.HINT then + icon = icons.hint + end --- Set up diagnostic signs -for type, icon in pairs(signs) do - local hl = 'DiagnosticSign' .. type - vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = '' }) + local message = string.format('%s %s', icon, diagnostic.message) + if diagnostic.code and diagnostic.source then + message = string.format('%s [%s][%s] %s', icon, diagnostic.source, diagnostic.code, diagnostic.message) + elseif diagnostic.code or diagnostic.source then + message = string.format('%s [%s] %s', icon, diagnostic.code or diagnostic.source, diagnostic.message) + end + + return message .. ' ' end +local config = u.merge({ + underline = true, + update_in_insert = false, + severity_sort = true, + signs = { + text = { + [vim.diagnostic.severity.ERROR] = icons.error .. ' ', + [vim.diagnostic.severity.HINT] = icons.hint .. ' ', + [vim.diagnostic.severity.INFO] = icons.info .. ' ', + [vim.diagnostic.severity.WARN] = icons.warn .. ' ', + }, + numhl = { + [vim.diagnostic.severity.ERROR] = 'ErrorMsg', + [vim.diagnostic.severity.HINT] = 'DiagnosticsSignHint', + [vim.diagnostic.severity.INFO] = 'DiagnosticsSignInfo', + [vim.diagnostic.severity.WARN] = 'WarningMsg', + }, + }, + float = { + border = user_config.border, + focusable = false, + header = { icons.debug .. ' Diagnostics:', 'DiagnosticInfo' }, + scope = 'line', + suffix = '', + source = false, + format = format_diagnostic, + }, + virtual_text = { + prefix = '', + spacing = 2, + source = false, + severity = { + min = vim.diagnostic.severity.HINT, + }, + format = format_diagnostic, + }, +}, user_config.diagnostic or {}) + -- set up diagnostics vim.diagnostic.config(config) diff --git a/lua/cosmic/lsp/providers/defaults.lua b/lua/cosmic/lsp/providers/defaults.lua index 1955f19..09590b3 100644 --- a/lua/cosmic/lsp/providers/defaults.lua +++ b/lua/cosmic/lsp/providers/defaults.lua @@ -21,7 +21,9 @@ function M.on_attach(client, bufnr) if client.supports_method('textDocument/formatting') then -- set up :LspFormat for clients that are capable - vim.cmd(string.format("command! -nargs=? LspFormat lua require('cosmic.utils.lsp').format(%s, )", bufnr)) + vim.cmd( + string.format("command! -nargs=? LspFormat lua require('cosmic.utils.lsp').force_format(%s, )", bufnr) + ) -- set up auto format on save if user_config.lsp.format_on_save then @@ -29,7 +31,7 @@ function M.on_attach(client, bufnr) -- collect filetype(s) from user config local filetype_patterns = {} local filetype_allowed = false - if vim.tbl_islist(user_config.lsp.format_on_save) then + if vim.islist(user_config.lsp.format_on_save) then filetype_patterns = user_config.lsp.format_on_save else -- any filetype if none set filetype_allowed = true @@ -75,11 +77,4 @@ M.capabilities = u.merge(capabilities, { }, }) -M.root_dir = function(fname) - local util = require('lspconfig').util - return util.root_pattern('.git', 'tsconfig.base.json', 'tsconfig.json', 'package.json', '.eslint.js', '.eslint.json')( - fname - ) -end - return M diff --git a/lua/cosmic/lsp/providers/eslint.lua b/lua/cosmic/lsp/providers/eslint.lua index b8b1c79..bc6be17 100644 --- a/lua/cosmic/lsp/providers/eslint.lua +++ b/lua/cosmic/lsp/providers/eslint.lua @@ -7,4 +7,13 @@ return { command = 'EslintFixAll', }) end, + + settings = { + -- helps eslint find the eslintrc when it's placed in a subfolder instead of the cwd root + workingDirectories = { mode = 'auto' }, + -- allows to use flat config format + --[[ experimental = { ]] + --[[ useFlatConfig = true, ]] + --[[ }, ]] + }, } diff --git a/lua/cosmic/lsp/providers/tsserver.lua b/lua/cosmic/lsp/providers/tsserver.lua index 167b819..4f0628f 100644 --- a/lua/cosmic/lsp/providers/tsserver.lua +++ b/lua/cosmic/lsp/providers/tsserver.lua @@ -5,4 +5,17 @@ function M.on_attach(client, bufnr) default_on_attach(client, bufnr) end +M.root_dir = function(fname) + local util = require('lspconfig').util + return util.root_pattern( + '.git', + 'tsconfig.base.json', + 'tsconfig.json', + 'package.json', + '.eslint.js', + '.eslint.json', + 'eslint.config.js' + )(fname) +end + return M diff --git a/lua/cosmic/plugins/null-ls/init.lua b/lua/cosmic/plugins/null-ls/init.lua index 310866b..d4f0c9f 100644 --- a/lua/cosmic/plugins/null-ls/init.lua +++ b/lua/cosmic/plugins/null-ls/init.lua @@ -25,9 +25,6 @@ return { config_opts.sources = u.merge_list({ null_ls.builtins.code_actions.gitsigns, null_ls.builtins.diagnostics.markdownlint, - require('none-ls.diagnostics.eslint_d'), - require('none-ls.formatting.eslint_d'), - require('none-ls.code_actions.eslint_d'), null_ls.builtins.formatting.prettierd.with({ env = { PRETTIERD_LOCAL_PRETTIER_ONLY = 1, @@ -40,6 +37,6 @@ return { null_ls.setup(u.merge(defaults, config_opts)) end, - event = 'BufReadPre', + event = 'VeryLazy', enabled = not vim.tbl_contains(user_config.disable_builtin_plugins, 'null_ls'), } diff --git a/lua/cosmic/utils/lsp.lua b/lua/cosmic/utils/lsp.lua index 145ef02..f925ed6 100644 --- a/lua/cosmic/utils/lsp.lua +++ b/lua/cosmic/utils/lsp.lua @@ -28,6 +28,20 @@ function M.toggle_format_on_save() vim.notify(string.format('Format on save disabled: %s', M.format_disabled_override)) end +function M.force_format(bufnr, timeout) + if timeout == '' or timeout == nil then + timeout = user_config.lsp.format_timeout + else + timeout = timeout * 1000 + end + local filter = can_client_format + vim.lsp.buf.format({ + timeout_ms = timeout, + filter = filter, + bufnr = bufnr or 0, + }) +end + -- format current buffer w/user settings function M.format(bufnr, timeout) if timeout == '' or timeout == nil then From a98a8d36127f8b144e26f02eb37e0e068892ec75 Mon Sep 17 00:00:00 2001 From: Matthew Leong Date: Fri, 7 Jun 2024 09:46:08 -0700 Subject: [PATCH 02/22] feat: add styled to treesitter --- lazy-lock.json | 13 +++++++------ lua/cosmic/plugins/mason-lspconfig/init.lua | 3 ++- lua/cosmic/plugins/null-ls/init.lua | 7 ++++++- lua/cosmic/plugins/nvim-cmp/config.lua | 2 +- lua/cosmic/plugins/treesitter/init.lua | 1 + 5 files changed, 17 insertions(+), 9 deletions(-) diff --git a/lazy-lock.json b/lazy-lock.json index 6bf62c8..4302a9a 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,7 +1,7 @@ { "Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" }, "LuaSnip": { "branch": "master", "commit": "2b6860d15aaab01d3fb90859c0ba97f20ad7bc5f" }, - "SchemaStore.nvim": { "branch": "main", "commit": "9fb66cf7b633a55b1c1a7d401f60bff48e6b8cfb" }, + "SchemaStore.nvim": { "branch": "main", "commit": "d9fd6651b47b68bfc1b952f81a0fdded3cb205b2" }, "auto-session": { "branch": "main", "commit": "af2219b9fa99c1d7ac409bd9eac094c459d3f52d" }, "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, "cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" }, @@ -11,7 +11,7 @@ "cosmic-ui": { "branch": "main", "commit": "c0b14531999f2bfef3d927c4dcd57a1a8fed5ee9" }, "friendly-snippets": { "branch": "main", "commit": "e11b09bf10706bb74e16e4c3d11b2274d62e687f" }, "gitsigns.nvim": { "branch": "main", "commit": "379a5a915aea3e9ba0d4a778e8478584ac0f9011" }, - "lazy.nvim": { "branch": "main", "commit": "0fc34a0cf5f5f6f998a0897119a7d846b47eaa9d" }, + "lazy.nvim": { "branch": "main", "commit": "70f2c090d3ffb14f8702d468e05beb240b768881" }, "lualine.nvim": { "branch": "master", "commit": "0a5a66803c7407767b799067986b4dc3036e1983" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "a4caa0d083aab56f6cd5acf2d42331b74614a585" }, "mason.nvim": { "branch": "main", "commit": "0950b15060067f752fde13a779a994f59516ce3d" }, @@ -24,10 +24,10 @@ "nvim-autopairs": { "branch": "master", "commit": "c15de7e7981f1111642e7e53799e1211d4606cb9" }, "nvim-cmp": { "branch": "main", "commit": "5260e5e8ecadaf13e6b82cf867a909f54e15fd07" }, "nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" }, - "nvim-lspconfig": { "branch": "master", "commit": "d1ab6b6051976b04948e127b0f302a465b1394d6" }, + "nvim-lspconfig": { "branch": "master", "commit": "92166b89ab4b3d60f24e58170cac53b7141fd032" }, "nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" }, "nvim-tree.lua": { "branch": "master", "commit": "26632f496e7e3c0450d8ecff88f49068cecc8bda" }, - "nvim-treesitter": { "branch": "master", "commit": "49e4e2b4b62360677568c47b6467f31c809b391c" }, + "nvim-treesitter": { "branch": "master", "commit": "3a74b5831058d0daf8952a5b8c556c61b30a3f46" }, "nvim-treesitter-refactor": { "branch": "master", "commit": "65ad2eca822dfaec2a3603119ec3cc8826a7859e" }, "nvim-ts-autotag": { "branch": "main", "commit": "6eb4120a1aadef07ac312f1c4bc6456712220007" }, "nvim-ts-context-commentstring": { "branch": "main", "commit": "cb064386e667def1d241317deed9fd1b38f0dc2e" }, @@ -38,8 +38,9 @@ "telescope-fzf-native.nvim": { "branch": "main", "commit": "9ef21b2e6bb6ebeaf349a0781745549bbb870d27" }, "telescope.nvim": { "branch": "master", "commit": "dfa230be84a044e7f546a6c2b0a403c739732b86" }, "todo-comments.nvim": { "branch": "main", "commit": "70a93ce66083699571adc361166504b03cc39c2b" }, - "tokyonight.nvim": { "branch": "main", "commit": "7e5ef71a103e7de5fe6c05f5d6ab97d1640f08cf" }, + "tokyonight.nvim": { "branch": "main", "commit": "9d88650502bc331f43eb0bef6286e58144ac5a96" }, + "typescript-tools.nvim": { "branch": "master", "commit": "c43d9580c3ff5999a1eabca849f807ab33787ea7" }, "vim-floaterm": { "branch": "master", "commit": "4e28c8dd0271e10a5f55142fb6fe9b1599ee6160" }, "vim-fugitive": { "branch": "master", "commit": "4f59455d2388e113bd510e85b310d15b9228ca0d" }, - "which-key.nvim": { "branch": "main", "commit": "4b7167f8fb2dba3d01980735e3509e172c024c29" } + "which-key.nvim": { "branch": "main", "commit": "0539da005b98b02cf730c1d9da82b8e8edb1c2d2" } } \ No newline at end of file diff --git a/lua/cosmic/plugins/mason-lspconfig/init.lua b/lua/cosmic/plugins/mason-lspconfig/init.lua index 0735b1c..473ba4d 100644 --- a/lua/cosmic/plugins/mason-lspconfig/init.lua +++ b/lua/cosmic/plugins/mason-lspconfig/init.lua @@ -56,5 +56,6 @@ return { dependencies = { 'williamboman/mason.nvim', }, - event = 'BufEnter', + lazy = false, + --[[ event = 'BufEnter', ]] } diff --git a/lua/cosmic/plugins/null-ls/init.lua b/lua/cosmic/plugins/null-ls/init.lua index d4f0c9f..f85b4ff 100644 --- a/lua/cosmic/plugins/null-ls/init.lua +++ b/lua/cosmic/plugins/null-ls/init.lua @@ -25,6 +25,9 @@ return { config_opts.sources = u.merge_list({ null_ls.builtins.code_actions.gitsigns, null_ls.builtins.diagnostics.markdownlint, + --[[ require('none-ls.diagnostics.eslint_d'), ]] + --[[ require('none-ls.formatting.eslint_d'), ]] + --[[ require('none-ls.code_actions.eslint_d'), ]] null_ls.builtins.formatting.prettierd.with({ env = { PRETTIERD_LOCAL_PRETTIER_ONLY = 1, @@ -37,6 +40,8 @@ return { null_ls.setup(u.merge(defaults, config_opts)) end, - event = 'VeryLazy', + --[[ event = 'BufEnter', ]] + --[[ event = 'VeryLazy', ]] + lazy = false, enabled = not vim.tbl_contains(user_config.disable_builtin_plugins, 'null_ls'), } diff --git a/lua/cosmic/plugins/nvim-cmp/config.lua b/lua/cosmic/plugins/nvim-cmp/config.lua index ff666b8..1d55b34 100644 --- a/lua/cosmic/plugins/nvim-cmp/config.lua +++ b/lua/cosmic/plugins/nvim-cmp/config.lua @@ -81,7 +81,7 @@ local default_cmp_opts = { }, sources = cmp.config.sources({ { name = 'nvim_lsp' }, - { name = 'luasnip' }, + --[[ { name = 'luasnip' }, ]] { name = 'path' }, }, { { name = 'buffer' }, diff --git a/lua/cosmic/plugins/treesitter/init.lua b/lua/cosmic/plugins/treesitter/init.lua index d95bfd6..3b0276c 100644 --- a/lua/cosmic/plugins/treesitter/init.lua +++ b/lua/cosmic/plugins/treesitter/init.lua @@ -16,6 +16,7 @@ local defaults = { 'php', 'python', 'regex', + 'styled', 'scss', 'tsx', 'typescript', From 33bd78ed9f41186ccdcc3e873608457a99bdf0fa Mon Sep 17 00:00:00 2001 From: Matthew Leong Date: Sat, 8 Jun 2024 15:09:02 -0700 Subject: [PATCH 03/22] feat: clean up luasnip --- lazy-lock.json | 23 ++++++++------- lua/cosmic/lsp/providers/eslint.lua | 9 ------ lua/cosmic/plugins/luasnip/init.lua | 26 ----------------- lua/cosmic/plugins/mason-lspconfig/init.lua | 4 +-- lua/cosmic/plugins/null-ls/init.lua | 4 --- lua/cosmic/plugins/nvim-cmp/config.lua | 25 +++++++++++------ lua/cosmic/plugins/nvim-cmp/init.lua | 31 +++++++++++++++++++-- 7 files changed, 57 insertions(+), 65 deletions(-) delete mode 100644 lua/cosmic/plugins/luasnip/init.lua diff --git a/lazy-lock.json b/lazy-lock.json index 4302a9a..9c1bf45 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,6 +1,6 @@ { "Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" }, - "LuaSnip": { "branch": "master", "commit": "2b6860d15aaab01d3fb90859c0ba97f20ad7bc5f" }, + "LuaSnip": { "branch": "master", "commit": "50fcf17db7c75af80e6b6109acfbfb4504768780" }, "SchemaStore.nvim": { "branch": "main", "commit": "d9fd6651b47b68bfc1b952f81a0fdded3cb205b2" }, "auto-session": { "branch": "main", "commit": "af2219b9fa99c1d7ac409bd9eac094c459d3f52d" }, "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, @@ -10,37 +10,36 @@ "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, "cosmic-ui": { "branch": "main", "commit": "c0b14531999f2bfef3d927c4dcd57a1a8fed5ee9" }, "friendly-snippets": { "branch": "main", "commit": "e11b09bf10706bb74e16e4c3d11b2274d62e687f" }, - "gitsigns.nvim": { "branch": "main", "commit": "379a5a915aea3e9ba0d4a778e8478584ac0f9011" }, - "lazy.nvim": { "branch": "main", "commit": "70f2c090d3ffb14f8702d468e05beb240b768881" }, + "gitsigns.nvim": { "branch": "main", "commit": "4a143f13e122ab91abdc88f89eefbe70a4858a56" }, + "lazy.nvim": { "branch": "main", "commit": "eb4957442e3182f051b0ae11da32e06d22c190e3" }, "lualine.nvim": { "branch": "master", "commit": "0a5a66803c7407767b799067986b4dc3036e1983" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "a4caa0d083aab56f6cd5acf2d42331b74614a585" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "8db12610bcb7ce67013cfdfaba4dd47a23c6e851" }, "mason.nvim": { "branch": "main", "commit": "0950b15060067f752fde13a779a994f59516ce3d" }, "neodev.nvim": { "branch": "main", "commit": "02893eeb9d6e8503817bd52385e111cba9a90500" }, - "noice.nvim": { "branch": "main", "commit": "29c7f030b0920e2f17263a9ab8742cde144b9140" }, + "noice.nvim": { "branch": "main", "commit": "e5cb20c6e14305d24025ecb77d7d4dd9d61f1a64" }, "none-ls-extras.nvim": { "branch": "main", "commit": "336e84b9e43c0effb735b08798ffac382920053b" }, "none-ls-shellcheck.nvim": { "branch": "main", "commit": "0f84461241e76e376a95fb7391deac82dc3efdbf" }, "none-ls.nvim": { "branch": "main", "commit": "8691504118b252d64fc5023a104aedd100ab754a" }, "nui.nvim": { "branch": "main", "commit": "322978c734866996274467de084a95e4f9b5e0b1" }, "nvim-autopairs": { "branch": "master", "commit": "c15de7e7981f1111642e7e53799e1211d4606cb9" }, - "nvim-cmp": { "branch": "main", "commit": "5260e5e8ecadaf13e6b82cf867a909f54e15fd07" }, + "nvim-cmp": { "branch": "main", "commit": "a110e12d0b58eefcf5b771f533fc2cf3050680ac" }, "nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" }, "nvim-lspconfig": { "branch": "master", "commit": "92166b89ab4b3d60f24e58170cac53b7141fd032" }, "nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" }, "nvim-tree.lua": { "branch": "master", "commit": "26632f496e7e3c0450d8ecff88f49068cecc8bda" }, - "nvim-treesitter": { "branch": "master", "commit": "3a74b5831058d0daf8952a5b8c556c61b30a3f46" }, + "nvim-treesitter": { "branch": "master", "commit": "c1e1e24b6433d4539bad9f5daa207df39633071b" }, "nvim-treesitter-refactor": { "branch": "master", "commit": "65ad2eca822dfaec2a3603119ec3cc8826a7859e" }, "nvim-ts-autotag": { "branch": "main", "commit": "6eb4120a1aadef07ac312f1c4bc6456712220007" }, "nvim-ts-context-commentstring": { "branch": "main", "commit": "cb064386e667def1d241317deed9fd1b38f0dc2e" }, - "nvim-web-devicons": { "branch": "master", "commit": "b77921fdc44833c994fdb389d658ccbce5490c16" }, + "nvim-web-devicons": { "branch": "master", "commit": "b4b302d6ae229f67df7a87ef69fa79473fe788a9" }, "nx.nvim": { "branch": "main", "commit": "f8a3a21b3d540889401a40d1f2803083794c0372" }, "plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" }, "popup.nvim": { "branch": "master", "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "9ef21b2e6bb6ebeaf349a0781745549bbb870d27" }, - "telescope.nvim": { "branch": "master", "commit": "dfa230be84a044e7f546a6c2b0a403c739732b86" }, + "telescope.nvim": { "branch": "master", "commit": "3a743491e5c6be0ed0aa8c31c6905df8f66179ba" }, "todo-comments.nvim": { "branch": "main", "commit": "70a93ce66083699571adc361166504b03cc39c2b" }, - "tokyonight.nvim": { "branch": "main", "commit": "9d88650502bc331f43eb0bef6286e58144ac5a96" }, - "typescript-tools.nvim": { "branch": "master", "commit": "c43d9580c3ff5999a1eabca849f807ab33787ea7" }, + "tokyonight.nvim": { "branch": "main", "commit": "f9e738e2dc78326166f11c021171b2e66a2ee426" }, "vim-floaterm": { "branch": "master", "commit": "4e28c8dd0271e10a5f55142fb6fe9b1599ee6160" }, "vim-fugitive": { "branch": "master", "commit": "4f59455d2388e113bd510e85b310d15b9228ca0d" }, - "which-key.nvim": { "branch": "main", "commit": "0539da005b98b02cf730c1d9da82b8e8edb1c2d2" } + "which-key.nvim": { "branch": "main", "commit": "0099511294f16b81c696004fa6a403b0ae61f7a0" } } \ No newline at end of file diff --git a/lua/cosmic/lsp/providers/eslint.lua b/lua/cosmic/lsp/providers/eslint.lua index bc6be17..b8b1c79 100644 --- a/lua/cosmic/lsp/providers/eslint.lua +++ b/lua/cosmic/lsp/providers/eslint.lua @@ -7,13 +7,4 @@ return { command = 'EslintFixAll', }) end, - - settings = { - -- helps eslint find the eslintrc when it's placed in a subfolder instead of the cwd root - workingDirectories = { mode = 'auto' }, - -- allows to use flat config format - --[[ experimental = { ]] - --[[ useFlatConfig = true, ]] - --[[ }, ]] - }, } diff --git a/lua/cosmic/plugins/luasnip/init.lua b/lua/cosmic/plugins/luasnip/init.lua deleted file mode 100644 index 2993989..0000000 --- a/lua/cosmic/plugins/luasnip/init.lua +++ /dev/null @@ -1,26 +0,0 @@ -local user_config = require('cosmic.core.user') -local u = require('cosmic.utils') - -return { - 'L3MON4D3/LuaSnip', - config = function() - local ls = require('luasnip') - ls.config.set_config(u.merge({ - history = true, - -- Update more often, :h events for more info. - updateevents = 'TextChanged,TextChangedI', - enable_autosnippets = true, - }, user_config.plugins.luasnip or {})) - - -- extend html snippets to react files - require('luasnip').filetype_extend('javascriptreact', { 'html' }) - require('luasnip').filetype_extend('typescriptreact', { 'html' }) - - -- load snippets (friendly-snippets) - require('luasnip.loaders.from_vscode').lazy_load() - end, - dependencies = { - 'rafamadriz/friendly-snippets', - }, - enabled = not vim.tbl_contains(user_config.disable_builtin_plugins, 'luasnip'), -} diff --git a/lua/cosmic/plugins/mason-lspconfig/init.lua b/lua/cosmic/plugins/mason-lspconfig/init.lua index 473ba4d..1bfd0da 100644 --- a/lua/cosmic/plugins/mason-lspconfig/init.lua +++ b/lua/cosmic/plugins/mason-lspconfig/init.lua @@ -17,7 +17,7 @@ return { local lspconfig = require('lspconfig') local start_server = function(server) - -- null_ls doesn't need/can't to be started via lspconfig + -- don't match servers not started by lspconfig if server == 'null_ls' or server == 'typescript-tools' then return end @@ -37,7 +37,7 @@ return { opts = u.merge(opts, require('cosmic.lsp.providers.lua_ls')) end - -- override options if user definds them + -- override options if user defines them if type(user_config.lsp.servers[server]) == 'table' then if user_config.lsp.servers[server].opts ~= nil then opts = u.merge(opts, user_config.lsp.servers[server].opts) diff --git a/lua/cosmic/plugins/null-ls/init.lua b/lua/cosmic/plugins/null-ls/init.lua index f85b4ff..b2cc4fb 100644 --- a/lua/cosmic/plugins/null-ls/init.lua +++ b/lua/cosmic/plugins/null-ls/init.lua @@ -25,9 +25,6 @@ return { config_opts.sources = u.merge_list({ null_ls.builtins.code_actions.gitsigns, null_ls.builtins.diagnostics.markdownlint, - --[[ require('none-ls.diagnostics.eslint_d'), ]] - --[[ require('none-ls.formatting.eslint_d'), ]] - --[[ require('none-ls.code_actions.eslint_d'), ]] null_ls.builtins.formatting.prettierd.with({ env = { PRETTIERD_LOCAL_PRETTIER_ONLY = 1, @@ -41,7 +38,6 @@ return { null_ls.setup(u.merge(defaults, config_opts)) end, --[[ event = 'BufEnter', ]] - --[[ event = 'VeryLazy', ]] lazy = false, enabled = not vim.tbl_contains(user_config.disable_builtin_plugins, 'null_ls'), } diff --git a/lua/cosmic/plugins/nvim-cmp/config.lua b/lua/cosmic/plugins/nvim-cmp/config.lua index 1d55b34..17209b5 100644 --- a/lua/cosmic/plugins/nvim-cmp/config.lua +++ b/lua/cosmic/plugins/nvim-cmp/config.lua @@ -1,16 +1,27 @@ local cmp = require('cmp') local u = require('cosmic.utils') -local luasnip = require('luasnip') local user_config = require('cosmic.core.user') local icons = require('cosmic.utils.icons') local cmp_autopairs = require('nvim-autopairs.completion.cmp') +local user_has_luasnip = not vim.tbl_contains(user_config.disable_builtin_plugins, 'luasnip') +local _, luasnip = pcall(require, 'luasnip') + local has_words_before = function() unpack = unpack or table.unpack local line, col = unpack(vim.api.nvim_win_get_cursor(0)) return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match('%s') == nil end +local snippet = {} +if user_has_luasnip then + snippet = { + expand = function(args) + luasnip.lsp_expand(args.body) + end, + } +end + local default_cmp_opts = { enabled = function() -- disable completion in comments @@ -22,11 +33,7 @@ local default_cmp_opts = { return not context.in_treesitter_capture('comment') and not context.in_syntax_group('Comment') end end, - snippet = { - expand = function(args) - luasnip.lsp_expand(args.body) - end, - }, + snippet = snippet, mapping = cmp.mapping.preset.insert({ [''] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }), [''] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }), @@ -42,7 +49,7 @@ local default_cmp_opts = { [''] = cmp.mapping(function(fallback) if cmp.visible() then cmp.select_next_item() - elseif luasnip.expand_or_jumpable() then + elseif user_has_luasnip and luasnip.expand_or_jumpable() then luasnip.expand_or_jump() elseif has_words_before() then cmp.complete() @@ -56,7 +63,7 @@ local default_cmp_opts = { [''] = cmp.mapping(function(fallback) if cmp.visible() then cmp.select_prev_item() - elseif luasnip.jumpable(-1) then + elseif user_has_luasnip and luasnip.jumpable(-1) then luasnip.jump(-1) else fallback() @@ -81,7 +88,7 @@ local default_cmp_opts = { }, sources = cmp.config.sources({ { name = 'nvim_lsp' }, - --[[ { name = 'luasnip' }, ]] + { name = 'luasnip' }, { name = 'path' }, }, { { name = 'buffer' }, diff --git a/lua/cosmic/plugins/nvim-cmp/init.lua b/lua/cosmic/plugins/nvim-cmp/init.lua index e3fe89f..78cfe79 100644 --- a/lua/cosmic/plugins/nvim-cmp/init.lua +++ b/lua/cosmic/plugins/nvim-cmp/init.lua @@ -1,4 +1,5 @@ local user_config = require('cosmic.core.user') +local u = require('cosmic.utils') return { 'hrsh7th/nvim-cmp', @@ -7,12 +8,36 @@ return { end, dependencies = { 'hrsh7th/cmp-nvim-lsp', - 'saadparwaiz1/cmp_luasnip', + { + 'saadparwaiz1/cmp_luasnip', + enabled = not vim.tbl_contains(user_config.disable_builtin_plugins, 'luasnip'), + }, 'hrsh7th/cmp-buffer', 'hrsh7th/cmp-cmdline', 'hrsh7th/cmp-path', - -- has configs - 'L3MON4D3/LuaSnip', + { + 'L3MON4D3/LuaSnip', + config = function() + local ls = require('luasnip') + ls.config.set_config(u.merge({ + history = true, + -- Update more often, :h events for more info. + updateevents = 'TextChanged,TextChangedI', + enable_autosnippets = true, + }, user_config.plugins.luasnip or {})) + + -- extend html snippets to react files + require('luasnip').filetype_extend('javascriptreact', { 'html' }) + require('luasnip').filetype_extend('typescriptreact', { 'html' }) + + -- load snippets (friendly-snippets) + require('luasnip.loaders.from_vscode').lazy_load() + end, + dependencies = { + 'rafamadriz/friendly-snippets', + }, + enabled = not vim.tbl_contains(user_config.disable_builtin_plugins, 'luasnip'), + }, }, event = 'InsertEnter', enabled = not vim.tbl_contains(user_config.disable_builtin_plugins, 'nvim-cmp'), From 18e6882d0eedce51dcc697d400a6ae62c9dedaed Mon Sep 17 00:00:00 2001 From: Matthew Leong Date: Sat, 8 Jun 2024 15:38:30 -0700 Subject: [PATCH 04/22] feat: fix lsp inlay hints --- lua/cosmic/lsp/providers/defaults.lua | 2 +- lua/cosmic/utils/lsp.lua | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lua/cosmic/lsp/providers/defaults.lua b/lua/cosmic/lsp/providers/defaults.lua index 09590b3..12a7f08 100644 --- a/lua/cosmic/lsp/providers/defaults.lua +++ b/lua/cosmic/lsp/providers/defaults.lua @@ -16,7 +16,7 @@ function M.on_attach(client, bufnr) buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') if user_config.lsp.inlay_hint and client.supports_method('textDocument/inlayHint') then - vim.lsp.inlay_hint(bufnr, true) + vim.lsp.inlay_hint.enable(true, { bufnr = bufnr }) end if client.supports_method('textDocument/formatting') then diff --git a/lua/cosmic/utils/lsp.lua b/lua/cosmic/utils/lsp.lua index f925ed6..c9ea92a 100644 --- a/lua/cosmic/utils/lsp.lua +++ b/lua/cosmic/utils/lsp.lua @@ -101,7 +101,9 @@ function M.toggle_inlay_hints() local enabled = user_config.lsp.inlay_hint return function() enabled = not enabled - vim.lsp.inlay_hint(vim.api.nvim_get_current_buf() or 0, enabled) + vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({ + bufnr = vim.api.nvim_get_current_buf() or 0, + })) end end From 11e7a914cb848045e7e099a248cf254d64f2fb49 Mon Sep 17 00:00:00 2001 From: Matthew Leong Date: Sat, 8 Jun 2024 18:10:29 -0700 Subject: [PATCH 05/22] feat: clean up format on save --- lua/cosmic/config/examples/config.lua | 59 +++++++++------------ lua/cosmic/core/user.lua | 7 ++- lua/cosmic/lsp/mappings.lua | 6 ++- lua/cosmic/lsp/providers/defaults.lua | 48 ++++++----------- lua/cosmic/lsp/providers/eslint.lua | 4 +- lua/cosmic/plugins/mason-lspconfig/init.lua | 5 -- lua/cosmic/plugins/null-ls/init.lua | 4 +- lua/cosmic/utils/lsp.lua | 26 ++++----- 8 files changed, 61 insertions(+), 98 deletions(-) diff --git a/lua/cosmic/config/examples/config.lua b/lua/cosmic/config/examples/config.lua index 8936ded..a267b50 100644 --- a/lua/cosmic/config/examples/config.lua +++ b/lua/cosmic/config/examples/config.lua @@ -1,8 +1,5 @@ -- Override Cosmic configuration options --- You can require null-ls if needed --- local null_ls = require('null-ls') - local config = { -- See :h nvim_open_win for possible border options border = 'rounded', @@ -10,8 +7,6 @@ local config = { lsp = { -- Enable/disable inlay hints inlay_hint = false, - -- True/false or table of filetypes {'.ts', '.js',} - format_on_save = true, -- Time in MS before format timeout format_timeout = 3000, -- Set to false to disable rename notification @@ -24,6 +19,28 @@ local config = { 'rust_analyzer', }, + -- See Cosmic defaults lsp/providers/null_ls.lua and https://github.com/jose-elias-alvarez/null-ls.nvim/ + -- If adding additional sources, be sure to also copy the defaults that you would like to preserve from lsp/providers/null_ls.lua + null_ls = { + -- Disable default list of sources provided by CosmicNvim + default_cosmic_sources = false, + --disable formatting + format_on_save = false, + -- Add additional sources here + get_sources = function() + local null_ls = require('null-ls') + return { + null_ls.builtins.diagnostics.shellcheck, + null_ls.builtins.diagnostics.actionlint.with({ + condition = function() + local cwd = vim.fn.expand('%:p:.') + return cwd:find('.github/workflows') + end, + }), + } + end, + }, + -- lsp servers that should be enabled servers = { -- Enable rust_analyzer @@ -32,36 +49,16 @@ local config = { -- Enable tsserver w/custom settings tsserver = { -- Disable formatting (defaults to true) - format = false, + format_on_save = false, -- OR add/override server options opts = { on_attach = function(client, bufnr) end, flags = { debounce_text_changes = 150, }, + settings = {}, }, }, - -- See Cosmic defaults lsp/providers/null_ls.lua and https://github.com/jose-elias-alvarez/null-ls.nvim/ - -- If adding additional sources, be sure to also copy the defaults that you would like to preserve from lsp/providers/null_ls.lua - null_ls = { - -- Disable default list of sources provided by CosmicNvim - default_cosmic_sources = false, - --disable formatting - format = false, - -- Add additional sources here - get_sources = function() - local null_ls = require('null-ls') - return { - null_ls.builtins.diagnostics.shellcheck, - null_ls.builtins.diagnostics.actionlint.with({ - condition = function() - local cwd = vim.fn.expand('%:p:.') - return cwd:find('.github/workflows') - end, - }), - } - end, - }, }, }, @@ -77,14 +74,6 @@ local config = { diagnostic = {}, -- See :h gitsigns-usage gitsigns = {}, - -- See https://git.sr.ht/~whynothugo/lsp_lines.nvim - lsp_lines = { - -- additional flag only for CosmicNvim - -- true - loads plugin and is enabled at start - -- false - loads plugin but is not enabled at start - -- you may use ld to toggle - enable_on_start = true, - }, -- See https://github.com/nvim-lualine/lualine.nvim#default-configuration lualine = {}, -- See https://github.com/L3MON4D3/LuaSnip/blob/577045e9adf325e58f690f4d4b4a293f3dcec1b3/README.md#config diff --git a/lua/cosmic/core/user.lua b/lua/cosmic/core/user.lua index 9d5f081..a2d0b52 100644 --- a/lua/cosmic/core/user.lua +++ b/lua/cosmic/core/user.lua @@ -12,7 +12,6 @@ local default_config = { plugins = {}, lsp = { inlay_hint = false, - format_on_save = true, -- true/false or table of filetypes {'.ts', '.js',} format_timeout = 500, rename_notification = true, -- table of callbacks pushed via plugins @@ -40,16 +39,16 @@ local default_config = { tailwindcss = true, eslint = true, jsonls = { - format = false, + format_on_save = false, }, pyright = true, lua_ls = { - format = false, + format_on_save = false, }, gopls = true, html = true, tsserver = { - format = false, + format_on_save = false, }, }, }, diff --git a/lua/cosmic/lsp/mappings.lua b/lua/cosmic/lsp/mappings.lua index ac03c9c..aefe03a 100644 --- a/lua/cosmic/lsp/mappings.lua +++ b/lua/cosmic/lsp/mappings.lua @@ -44,8 +44,10 @@ function M.init(client, bufnr) buf_map('v', 'la', 'lua vim.lsp.buf.range_code_actions()', { desc = 'Range Code Actions' }) -- formatting - buf_map('n', 'lf', '', { desc = 'Format', callback = lsp_utils.format }) - buf_map('v', 'lf', 'lua vim.lsp.buf.range_formatting()', { desc = 'Range Format' }) + if client.supports_method('textDocument/formatting') then + buf_map('n', 'lf', '', { desc = 'Format', callback = lsp_utils.format }) + buf_map('v', 'lf', 'lua vim.lsp.buf.range_formatting()', { desc = 'Range Format' }) + end -- lsp workspace buf_map('n', 'lwa', 'lua vim.lsp.buf.add_workspace_folder()', { desc = 'Add workspace folder' }) diff --git a/lua/cosmic/lsp/providers/defaults.lua b/lua/cosmic/lsp/providers/defaults.lua index 12a7f08..6ed6132 100644 --- a/lua/cosmic/lsp/providers/defaults.lua +++ b/lua/cosmic/lsp/providers/defaults.lua @@ -1,9 +1,11 @@ local capabilities = require('cmp_nvim_lsp').default_capabilities() local M = {} local augroup_name = 'CosmicNvimLspFormat' -local group = vim.api.nvim_create_augroup(augroup_name, { clear = true }) local user_config = require('cosmic.core.user') local u = require('cosmic.utils') +local can_format_on_save = require('cosmic.utils.lsp').can_format_on_save + +M.group = vim.api.nvim_create_augroup(augroup_name, {}) function M.on_attach(client, bufnr) local function buf_set_option(name, value) @@ -19,44 +21,24 @@ function M.on_attach(client, bufnr) vim.lsp.inlay_hint.enable(true, { bufnr = bufnr }) end - if client.supports_method('textDocument/formatting') then + if client.supports_method('textDocument/formatting') and can_format_on_save(client) then -- set up :LspFormat for clients that are capable vim.cmd( string.format("command! -nargs=? LspFormat lua require('cosmic.utils.lsp').force_format(%s, )", bufnr) ) -- set up auto format on save - if user_config.lsp.format_on_save then - -- check user config to see if we can format on save - -- collect filetype(s) from user config - local filetype_patterns = {} - local filetype_allowed = false - if vim.islist(user_config.lsp.format_on_save) then - filetype_patterns = user_config.lsp.format_on_save - else -- any filetype if none set - filetype_allowed = true - end - - vim.api.nvim_clear_autocmds({ - group = group, - buffer = bufnr, - }) - -- autocommand for format on save with specified filetype(s) - vim.api.nvim_create_autocmd('BufWritePre', { - callback = function(ev) - for _, pattern in pairs(filetype_patterns) do - if string.match(ev.file, pattern) then - filetype_allowed = true - end - end - if filetype_allowed then - require('cosmic.utils.lsp').format(bufnr) - end - end, - buffer = bufnr, - group = group, - }) - end + vim.api.nvim_clear_autocmds({ + group = M.group, + buffer = bufnr, + }) + vim.api.nvim_create_autocmd('BufWritePre', { + callback = function() + require('cosmic.utils.lsp').format(bufnr) + end, + buffer = bufnr, + group = M.group, + }) end -- set up default mappings diff --git a/lua/cosmic/lsp/providers/eslint.lua b/lua/cosmic/lsp/providers/eslint.lua index b8b1c79..fb0f2c3 100644 --- a/lua/cosmic/lsp/providers/eslint.lua +++ b/lua/cosmic/lsp/providers/eslint.lua @@ -1,7 +1,7 @@ -local default_on_attach = require('cosmic.lsp.providers.defaults').on_attach +local defaults = require('cosmic.lsp.providers.defaults') return { on_attach = function(client, bufnr) - default_on_attach(client, bufnr) + defaults.on_attach(client, bufnr) vim.api.nvim_create_autocmd('BufWritePre', { buffer = bufnr, command = 'EslintFixAll', diff --git a/lua/cosmic/plugins/mason-lspconfig/init.lua b/lua/cosmic/plugins/mason-lspconfig/init.lua index 1bfd0da..3be2a3d 100644 --- a/lua/cosmic/plugins/mason-lspconfig/init.lua +++ b/lua/cosmic/plugins/mason-lspconfig/init.lua @@ -17,11 +17,6 @@ return { local lspconfig = require('lspconfig') local start_server = function(server) - -- don't match servers not started by lspconfig - if server == 'null_ls' or server == 'typescript-tools' then - return - end - local opts = default_config -- set up default cosmic options diff --git a/lua/cosmic/plugins/null-ls/init.lua b/lua/cosmic/plugins/null-ls/init.lua index b2cc4fb..24366b7 100644 --- a/lua/cosmic/plugins/null-ls/init.lua +++ b/lua/cosmic/plugins/null-ls/init.lua @@ -10,9 +10,9 @@ return { config = function() local defaults = require('cosmic.lsp.providers.defaults') local null_ls = require('null-ls') - local config_opts = u.merge(user_config.lsp.servers.null_ls or {}, { + local config_opts = u.merge({ default_cosmic_sources = true, - }) + }, user_config.lsp.null_ls or {}) if config_opts.default_cosmic_sources then local function get_user_config_sources() if not config_opts.add_sources then diff --git a/lua/cosmic/utils/lsp.lua b/lua/cosmic/utils/lsp.lua index c9ea92a..e6b9c15 100644 --- a/lua/cosmic/utils/lsp.lua +++ b/lua/cosmic/utils/lsp.lua @@ -3,7 +3,7 @@ local M = {} M.format_disabled_override = false -local function can_client_format(client) +function M.can_format_on_save(client) -- formatting enabled by default if server=true if user_config.lsp.servers[client.name] == true or client.name == 'null-ls' then return true @@ -12,12 +12,12 @@ local function can_client_format(client) -- check config server settings if user_config.lsp.servers[client.name] then -- default to true if no format flag on server settings is set - if user_config.lsp.servers[client.name].format == nil then + if user_config.lsp.servers[client.name].format_on_save == nil then return true end -- check format flag on server settings - return (user_config.lsp.servers[client.name].format == true) + return (user_config.lsp.servers[client.name].format_on_save == true) end return true @@ -34,31 +34,27 @@ function M.force_format(bufnr, timeout) else timeout = timeout * 1000 end - local filter = can_client_format vim.lsp.buf.format({ timeout_ms = timeout, - filter = filter, - bufnr = bufnr or 0, + bufnr = bufnr or vim.api.nvim_get_current_buf(), }) end -- format current buffer w/user settings function M.format(bufnr, timeout) + if M.format_disabled_override then + return + end + if timeout == '' or timeout == nil then timeout = user_config.lsp.format_timeout else timeout = timeout * 1000 end - local filter = can_client_format - if M.format_disabled_override then - filter = function(client) - return false - end - end + vim.lsp.buf.format({ timeout_ms = timeout, - filter = filter, - bufnr = bufnr or 0, + bufnr = bufnr or vim.api.nvim_get_current_buf(), }) end @@ -102,7 +98,7 @@ function M.toggle_inlay_hints() return function() enabled = not enabled vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({ - bufnr = vim.api.nvim_get_current_buf() or 0, + bufnr = vim.api.nvim_get_current_buf(), })) end end From 359e38969dfc03206df35081f9d09f328e68351d Mon Sep 17 00:00:00 2001 From: Matthew Leong Date: Sat, 8 Jun 2024 19:50:51 -0700 Subject: [PATCH 06/22] feat: clean up --- lua/cosmic/lsp/providers/defaults.lua | 28 ++++++++++++++------------- lua/cosmic/plugins/lualine/init.lua | 2 +- lua/cosmic/utils/lsp.lua | 24 +++++++++++------------ 3 files changed, 27 insertions(+), 27 deletions(-) diff --git a/lua/cosmic/lsp/providers/defaults.lua b/lua/cosmic/lsp/providers/defaults.lua index 6ed6132..9975f93 100644 --- a/lua/cosmic/lsp/providers/defaults.lua +++ b/lua/cosmic/lsp/providers/defaults.lua @@ -21,24 +21,26 @@ function M.on_attach(client, bufnr) vim.lsp.inlay_hint.enable(true, { bufnr = bufnr }) end - if client.supports_method('textDocument/formatting') and can_format_on_save(client) then + if client.supports_method('textDocument/formatting') then -- set up :LspFormat for clients that are capable vim.cmd( string.format("command! -nargs=? LspFormat lua require('cosmic.utils.lsp').force_format(%s, )", bufnr) ) - -- set up auto format on save - vim.api.nvim_clear_autocmds({ - group = M.group, - buffer = bufnr, - }) - vim.api.nvim_create_autocmd('BufWritePre', { - callback = function() - require('cosmic.utils.lsp').format(bufnr) - end, - buffer = bufnr, - group = M.group, - }) + if can_format_on_save(client) then + -- set up auto format on save + vim.api.nvim_clear_autocmds({ + group = M.group, + buffer = bufnr, + }) + vim.api.nvim_create_autocmd('BufWritePre', { + callback = function() + require('cosmic.utils.lsp').format(bufnr) + end, + buffer = bufnr, + group = M.group, + }) + end end -- set up default mappings diff --git a/lua/cosmic/plugins/lualine/init.lua b/lua/cosmic/plugins/lualine/init.lua index a066e57..8a63fe1 100644 --- a/lua/cosmic/plugins/lualine/init.lua +++ b/lua/cosmic/plugins/lualine/init.lua @@ -56,7 +56,7 @@ return { custom_sections.diff, }, lualine_x = { 'diagnostics' }, - lualine_y = { lsp_utils.get_active_clients_str }, + lualine_y = { lsp_utils.buf_get_active_clients_str }, lualine_z = { 'location', 'progress' }, }, inactive_sections = { diff --git a/lua/cosmic/utils/lsp.lua b/lua/cosmic/utils/lsp.lua index e6b9c15..18ba745 100644 --- a/lua/cosmic/utils/lsp.lua +++ b/lua/cosmic/utils/lsp.lua @@ -58,15 +58,13 @@ function M.format(bufnr, timeout) }) end -function M.get_active_lsp_clients() - local active_clients = vim.lsp.get_clients() +function M.buf_get_active_client_names(bufnr) + local active_clients = vim.lsp.get_clients({ + bufnr = bufnr or vim.api.nvim_get_current_buf(), + }) local client_names = {} for _, client in pairs(active_clients or {}) do - local buf = vim.api.nvim_get_current_buf() - -- only return attached buffers - if vim.lsp.buf_is_attached(buf, client.id) then - table.insert(client_names, client.name) - end + table.insert(client_names, client.name) end if not vim.tbl_isempty(client_names) then @@ -75,17 +73,17 @@ function M.get_active_lsp_clients() return client_names end -function M.get_active_clients_str() - local clients = M.get_active_lsp_clients() +function M.buf_get_active_clients_str() + local client_names = M.buf_get_active_client_names() local client_str = '' - if #clients < 1 then + if #client_names < 1 then return end - for i, client in ipairs(clients) do - client_str = client_str .. client - if i < #clients then + for i, client_name in ipairs(client_names) do + client_str = client_str .. client_name + if i < #client_names then client_str = client_str .. ', ' end end From a7d4162f2a078c88ea7cbe74b5fe844edabd9a67 Mon Sep 17 00:00:00 2001 From: Matthew Leong Date: Sat, 8 Jun 2024 20:16:46 -0700 Subject: [PATCH 07/22] fix: eslint format on save --- lua/cosmic/lsp/mappings.lua | 2 +- lua/cosmic/lsp/providers/defaults.lua | 32 +++++++++++++-------------- lua/cosmic/lsp/providers/eslint.lua | 12 ++++++---- lua/cosmic/lsp/providers/tsserver.lua | 5 ----- lua/cosmic/utils/lsp.lua | 25 +++++++++------------ 5 files changed, 35 insertions(+), 41 deletions(-) diff --git a/lua/cosmic/lsp/mappings.lua b/lua/cosmic/lsp/mappings.lua index aefe03a..0b04d23 100644 --- a/lua/cosmic/lsp/mappings.lua +++ b/lua/cosmic/lsp/mappings.lua @@ -45,7 +45,7 @@ function M.init(client, bufnr) -- formatting if client.supports_method('textDocument/formatting') then - buf_map('n', 'lf', '', { desc = 'Format', callback = lsp_utils.format }) + buf_map('n', 'lf', '', { desc = 'Format', callback = lsp_utils.buf_format }) buf_map('v', 'lf', 'lua vim.lsp.buf.range_formatting()', { desc = 'Range Format' }) end diff --git a/lua/cosmic/lsp/providers/defaults.lua b/lua/cosmic/lsp/providers/defaults.lua index 9975f93..596fa51 100644 --- a/lua/cosmic/lsp/providers/defaults.lua +++ b/lua/cosmic/lsp/providers/defaults.lua @@ -3,9 +3,9 @@ local M = {} local augroup_name = 'CosmicNvimLspFormat' local user_config = require('cosmic.core.user') local u = require('cosmic.utils') -local can_format_on_save = require('cosmic.utils.lsp').can_format_on_save +local lsp_utils = require('cosmic.utils.lsp') -M.group = vim.api.nvim_create_augroup(augroup_name, {}) +M.augroup = vim.api.nvim_create_augroup(augroup_name, { clear = true }) function M.on_attach(client, bufnr) local function buf_set_option(name, value) @@ -24,23 +24,21 @@ function M.on_attach(client, bufnr) if client.supports_method('textDocument/formatting') then -- set up :LspFormat for clients that are capable vim.cmd( - string.format("command! -nargs=? LspFormat lua require('cosmic.utils.lsp').force_format(%s, )", bufnr) + string.format("command! -nargs=? LspFormat lua require('cosmic.utils.lsp').buf_format(%s, )", bufnr) ) - if can_format_on_save(client) then - -- set up auto format on save - vim.api.nvim_clear_autocmds({ - group = M.group, - buffer = bufnr, - }) - vim.api.nvim_create_autocmd('BufWritePre', { - callback = function() - require('cosmic.utils.lsp').format(bufnr) - end, - buffer = bufnr, - group = M.group, - }) - end + -- set up auto format on save + vim.api.nvim_clear_autocmds({ + group = M.augroup, + buffer = bufnr, + }) + vim.api.nvim_create_autocmd('BufWritePre', { + callback = function() + lsp_utils.format_on_save(client, bufnr) + end, + buffer = bufnr, + group = M.augroup, + }) end -- set up default mappings diff --git a/lua/cosmic/lsp/providers/eslint.lua b/lua/cosmic/lsp/providers/eslint.lua index fb0f2c3..199044b 100644 --- a/lua/cosmic/lsp/providers/eslint.lua +++ b/lua/cosmic/lsp/providers/eslint.lua @@ -1,10 +1,14 @@ local defaults = require('cosmic.lsp.providers.defaults') +local can_format_on_save = require('cosmic.utils.lsp').can_format_on_save return { on_attach = function(client, bufnr) defaults.on_attach(client, bufnr) - vim.api.nvim_create_autocmd('BufWritePre', { - buffer = bufnr, - command = 'EslintFixAll', - }) + if can_format_on_save(client) then + vim.api.nvim_create_autocmd('BufWritePre', { + buffer = bufnr, + command = 'EslintFixAll', + group = defaults.augroup, + }) + end end, } diff --git a/lua/cosmic/lsp/providers/tsserver.lua b/lua/cosmic/lsp/providers/tsserver.lua index 4f0628f..cc0bb64 100644 --- a/lua/cosmic/lsp/providers/tsserver.lua +++ b/lua/cosmic/lsp/providers/tsserver.lua @@ -1,10 +1,5 @@ -local default_on_attach = require('cosmic.lsp.providers.defaults').on_attach local M = {} -function M.on_attach(client, bufnr) - default_on_attach(client, bufnr) -end - M.root_dir = function(fname) local util = require('lspconfig').util return util.root_pattern( diff --git a/lua/cosmic/utils/lsp.lua b/lua/cosmic/utils/lsp.lua index 18ba745..424237e 100644 --- a/lua/cosmic/utils/lsp.lua +++ b/lua/cosmic/utils/lsp.lua @@ -1,11 +1,11 @@ local user_config = require('cosmic.core.user') local M = {} -M.format_disabled_override = false +M.format_on_save_disabled = false function M.can_format_on_save(client) -- formatting enabled by default if server=true - if user_config.lsp.servers[client.name] == true or client.name == 'null-ls' then + if user_config.lsp.servers[client.name] == true then return true end @@ -24,11 +24,11 @@ function M.can_format_on_save(client) end function M.toggle_format_on_save() - M.format_disabled_override = not M.format_disabled_override - vim.notify(string.format('Format on save disabled: %s', M.format_disabled_override)) + M.format_on_save_disabled = not M.format_on_save_disabled + vim.notify(string.format('Format on save disabled: %s', M.format_on_save_disabled)) end -function M.force_format(bufnr, timeout) +function M.buf_format(bufnr, timeout) if timeout == '' or timeout == nil then timeout = user_config.lsp.format_timeout else @@ -41,20 +41,17 @@ function M.force_format(bufnr, timeout) end -- format current buffer w/user settings -function M.format(bufnr, timeout) - if M.format_disabled_override then +function M.format_on_save(client, bufnr) + if M.format_on_save_disabled then return end - if timeout == '' or timeout == nil then - timeout = user_config.lsp.format_timeout - else - timeout = timeout * 1000 - end - vim.lsp.buf.format({ - timeout_ms = timeout, + timeout_ms = user_config.lsp.format_timeout, bufnr = bufnr or vim.api.nvim_get_current_buf(), + filter = function() + return M.can_format_on_save(client) + end, }) end From 475361c480f53d05188c4dbe93b63bd12990b320 Mon Sep 17 00:00:00 2001 From: Matthew Leong Date: Sat, 8 Jun 2024 22:42:37 -0700 Subject: [PATCH 08/22] feat: clean up mason config --- lua/cosmic/lsp/providers/defaults.lua | 6 +++--- lua/cosmic/plugins/mason-lspconfig/init.lua | 19 ++++++------------- 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/lua/cosmic/lsp/providers/defaults.lua b/lua/cosmic/lsp/providers/defaults.lua index 596fa51..fb6cbc8 100644 --- a/lua/cosmic/lsp/providers/defaults.lua +++ b/lua/cosmic/lsp/providers/defaults.lua @@ -1,9 +1,9 @@ -local capabilities = require('cmp_nvim_lsp').default_capabilities() local M = {} local augroup_name = 'CosmicNvimLspFormat' local user_config = require('cosmic.core.user') local u = require('cosmic.utils') local lsp_utils = require('cosmic.utils.lsp') +local lsp_mappings = require('cosmic.lsp.mappings') M.augroup = vim.api.nvim_create_augroup(augroup_name, { clear = true }) @@ -42,7 +42,7 @@ function M.on_attach(client, bufnr) end -- set up default mappings - require('cosmic.lsp.mappings').init(client, bufnr) + lsp_mappings.init(client, bufnr) -- set up any additional mappings/overrides from user config for _, callback in pairs(user_config.lsp.on_attach_mappings) do @@ -50,7 +50,7 @@ function M.on_attach(client, bufnr) end end -M.capabilities = u.merge(capabilities, { +M.capabilities = u.merge(require('cmp_nvim_lsp').default_capabilities(), { -- See: https://github.com/neovim/neovim/issues/23291 workspace = { didChangeWatchedFiles = { diff --git a/lua/cosmic/plugins/mason-lspconfig/init.lua b/lua/cosmic/plugins/mason-lspconfig/init.lua index 3be2a3d..14e41ae 100644 --- a/lua/cosmic/plugins/mason-lspconfig/init.lua +++ b/lua/cosmic/plugins/mason-lspconfig/init.lua @@ -17,29 +17,22 @@ return { local lspconfig = require('lspconfig') local start_server = function(server) - local opts = default_config + local server_config = default_config -- set up default cosmic options - if server == 'tsserver' then - opts = u.merge(opts, require('cosmic.lsp.providers.tsserver')) - elseif server == 'jsonls' then - opts = u.merge(opts, require('cosmic.lsp.providers.jsonls')) - elseif server == 'pyright' then - opts = u.merge(opts, require('cosmic.lsp.providers.pyright')) - elseif server == 'eslint' then - opts = u.merge(opts, require('cosmic.lsp.providers.eslint')) - elseif server == 'lua_ls' then - opts = u.merge(opts, require('cosmic.lsp.providers.lua_ls')) + local ok, cosmic_server_config = pcall('cosmic.lsp.providers.' .. server) + if ok then + server_config = u.merge(server_config, cosmic_server_config) end -- override options if user defines them if type(user_config.lsp.servers[server]) == 'table' then if user_config.lsp.servers[server].opts ~= nil then - opts = u.merge(opts, user_config.lsp.servers[server].opts) + server_config = u.merge(server_config, user_config.lsp.servers[server].opts) end end - lspconfig[server].setup(opts) + lspconfig[server].setup(server_config) end for config_server, config_opt in pairs(user_config.lsp.servers) do From 8000535b37caff16d4d12b62e58ae6bc2eb81ed8 Mon Sep 17 00:00:00 2001 From: Matthew Leong Date: Sat, 8 Jun 2024 22:58:22 -0700 Subject: [PATCH 09/22] feat: clean up provider defaults --- lua/cosmic/lsp/providers/defaults.lua | 10 +++++++++- lua/cosmic/utils/lsp.lua | 15 --------------- 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/lua/cosmic/lsp/providers/defaults.lua b/lua/cosmic/lsp/providers/defaults.lua index fb6cbc8..0f9037f 100644 --- a/lua/cosmic/lsp/providers/defaults.lua +++ b/lua/cosmic/lsp/providers/defaults.lua @@ -34,7 +34,15 @@ function M.on_attach(client, bufnr) }) vim.api.nvim_create_autocmd('BufWritePre', { callback = function() - lsp_utils.format_on_save(client, bufnr) + if not lsp_utils.format_on_save_disabled then + vim.lsp.buf.format({ + timeout_ms = user_config.lsp.format_timeout, + bufnr = bufnr, + filter = function() + return lsp_utils.can_format_on_save(client) + end, + }) + end end, buffer = bufnr, group = M.augroup, diff --git a/lua/cosmic/utils/lsp.lua b/lua/cosmic/utils/lsp.lua index 424237e..71b99c3 100644 --- a/lua/cosmic/utils/lsp.lua +++ b/lua/cosmic/utils/lsp.lua @@ -40,21 +40,6 @@ function M.buf_format(bufnr, timeout) }) end --- format current buffer w/user settings -function M.format_on_save(client, bufnr) - if M.format_on_save_disabled then - return - end - - vim.lsp.buf.format({ - timeout_ms = user_config.lsp.format_timeout, - bufnr = bufnr or vim.api.nvim_get_current_buf(), - filter = function() - return M.can_format_on_save(client) - end, - }) -end - function M.buf_get_active_client_names(bufnr) local active_clients = vim.lsp.get_clients({ bufnr = bufnr or vim.api.nvim_get_current_buf(), From 9b8f7550968632c3428241287b131e4a31e0e310 Mon Sep 17 00:00:00 2001 From: Matthew Leong Date: Sat, 8 Jun 2024 23:00:54 -0700 Subject: [PATCH 10/22] feat: rename providers dir to servers --- lua/cosmic/config/examples/config.lua | 4 ++-- lua/cosmic/lsp/{providers => servers}/defaults.lua | 0 lua/cosmic/lsp/{providers => servers}/eslint.lua | 2 +- lua/cosmic/lsp/{providers => servers}/jsonls.lua | 0 lua/cosmic/lsp/{providers => servers}/lua_ls.lua | 0 lua/cosmic/lsp/{providers => servers}/pyright.lua | 0 lua/cosmic/lsp/{providers => servers}/tsserver.lua | 0 lua/cosmic/plugins/mason-lspconfig/init.lua | 4 ++-- lua/cosmic/plugins/null-ls/init.lua | 2 +- 9 files changed, 6 insertions(+), 6 deletions(-) rename lua/cosmic/lsp/{providers => servers}/defaults.lua (100%) rename lua/cosmic/lsp/{providers => servers}/eslint.lua (86%) rename lua/cosmic/lsp/{providers => servers}/jsonls.lua (100%) rename lua/cosmic/lsp/{providers => servers}/lua_ls.lua (100%) rename lua/cosmic/lsp/{providers => servers}/pyright.lua (100%) rename lua/cosmic/lsp/{providers => servers}/tsserver.lua (100%) diff --git a/lua/cosmic/config/examples/config.lua b/lua/cosmic/config/examples/config.lua index a267b50..752df61 100644 --- a/lua/cosmic/config/examples/config.lua +++ b/lua/cosmic/config/examples/config.lua @@ -19,8 +19,8 @@ local config = { 'rust_analyzer', }, - -- See Cosmic defaults lsp/providers/null_ls.lua and https://github.com/jose-elias-alvarez/null-ls.nvim/ - -- If adding additional sources, be sure to also copy the defaults that you would like to preserve from lsp/providers/null_ls.lua + -- See Cosmic defaults cosmic/plugins/null-ls/init.lua and https://github.com/jose-elias-alvarez/null-ls.nvim/ + -- If adding additional sources, be sure to also copy the defaults that you would like to preserve from cosmic/plugins/null-ls/init.lua null_ls = { -- Disable default list of sources provided by CosmicNvim default_cosmic_sources = false, diff --git a/lua/cosmic/lsp/providers/defaults.lua b/lua/cosmic/lsp/servers/defaults.lua similarity index 100% rename from lua/cosmic/lsp/providers/defaults.lua rename to lua/cosmic/lsp/servers/defaults.lua diff --git a/lua/cosmic/lsp/providers/eslint.lua b/lua/cosmic/lsp/servers/eslint.lua similarity index 86% rename from lua/cosmic/lsp/providers/eslint.lua rename to lua/cosmic/lsp/servers/eslint.lua index 199044b..cb0eb91 100644 --- a/lua/cosmic/lsp/providers/eslint.lua +++ b/lua/cosmic/lsp/servers/eslint.lua @@ -1,4 +1,4 @@ -local defaults = require('cosmic.lsp.providers.defaults') +local defaults = require('cosmic.lsp.servers.defaults') local can_format_on_save = require('cosmic.utils.lsp').can_format_on_save return { on_attach = function(client, bufnr) diff --git a/lua/cosmic/lsp/providers/jsonls.lua b/lua/cosmic/lsp/servers/jsonls.lua similarity index 100% rename from lua/cosmic/lsp/providers/jsonls.lua rename to lua/cosmic/lsp/servers/jsonls.lua diff --git a/lua/cosmic/lsp/providers/lua_ls.lua b/lua/cosmic/lsp/servers/lua_ls.lua similarity index 100% rename from lua/cosmic/lsp/providers/lua_ls.lua rename to lua/cosmic/lsp/servers/lua_ls.lua diff --git a/lua/cosmic/lsp/providers/pyright.lua b/lua/cosmic/lsp/servers/pyright.lua similarity index 100% rename from lua/cosmic/lsp/providers/pyright.lua rename to lua/cosmic/lsp/servers/pyright.lua diff --git a/lua/cosmic/lsp/providers/tsserver.lua b/lua/cosmic/lsp/servers/tsserver.lua similarity index 100% rename from lua/cosmic/lsp/providers/tsserver.lua rename to lua/cosmic/lsp/servers/tsserver.lua diff --git a/lua/cosmic/plugins/mason-lspconfig/init.lua b/lua/cosmic/plugins/mason-lspconfig/init.lua index 14e41ae..ab292e6 100644 --- a/lua/cosmic/plugins/mason-lspconfig/init.lua +++ b/lua/cosmic/plugins/mason-lspconfig/init.lua @@ -13,14 +13,14 @@ return { -- set up lsp servers local u = require('cosmic.utils') - local default_config = require('cosmic.lsp.providers.defaults') + local default_config = require('cosmic.lsp.servers.defaults') local lspconfig = require('lspconfig') local start_server = function(server) local server_config = default_config -- set up default cosmic options - local ok, cosmic_server_config = pcall('cosmic.lsp.providers.' .. server) + local ok, cosmic_server_config = pcall('cosmic.lsp.servers.' .. server) if ok then server_config = u.merge(server_config, cosmic_server_config) end diff --git a/lua/cosmic/plugins/null-ls/init.lua b/lua/cosmic/plugins/null-ls/init.lua index 24366b7..8260039 100644 --- a/lua/cosmic/plugins/null-ls/init.lua +++ b/lua/cosmic/plugins/null-ls/init.lua @@ -8,7 +8,7 @@ return { 'gbprod/none-ls-shellcheck.nvim', }, config = function() - local defaults = require('cosmic.lsp.providers.defaults') + local defaults = require('cosmic.lsp.servers.defaults') local null_ls = require('null-ls') local config_opts = u.merge({ default_cosmic_sources = true, From ca540a1047a57441a1327770a881f9f53e8a869b Mon Sep 17 00:00:00 2001 From: Matthew Leong Date: Sat, 8 Jun 2024 23:06:05 -0700 Subject: [PATCH 11/22] feat: clean up --- lua/cosmic/utils/lsp.lua | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lua/cosmic/utils/lsp.lua b/lua/cosmic/utils/lsp.lua index 71b99c3..9e0f51d 100644 --- a/lua/cosmic/utils/lsp.lua +++ b/lua/cosmic/utils/lsp.lua @@ -5,19 +5,20 @@ M.format_on_save_disabled = false function M.can_format_on_save(client) -- formatting enabled by default if server=true - if user_config.lsp.servers[client.name] == true then + local user_server_config = user_config.lsp.servers[client.name] + if user_server_config == true then return true end -- check config server settings - if user_config.lsp.servers[client.name] then + if user_server_config then -- default to true if no format flag on server settings is set - if user_config.lsp.servers[client.name].format_on_save == nil then + if user_server_config.format_on_save == nil then return true end -- check format flag on server settings - return (user_config.lsp.servers[client.name].format_on_save == true) + return user_server_config.format_on_save == true end return true From 5f106bff6dea212cdc09cbec12362ac110ac505b Mon Sep 17 00:00:00 2001 From: Matthew Leong Date: Sat, 8 Jun 2024 23:27:49 -0700 Subject: [PATCH 12/22] fix: fix pcall --- lazy-lock.json | 4 ++-- lua/cosmic/plugins/mason-lspconfig/init.lua | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lazy-lock.json b/lazy-lock.json index 9c1bf45..8dafb9d 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -26,12 +26,12 @@ "nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" }, "nvim-lspconfig": { "branch": "master", "commit": "92166b89ab4b3d60f24e58170cac53b7141fd032" }, "nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" }, - "nvim-tree.lua": { "branch": "master", "commit": "26632f496e7e3c0450d8ecff88f49068cecc8bda" }, + "nvim-tree.lua": { "branch": "master", "commit": "2086e564c4d23fea714e8a6d63b881e551af2f41" }, "nvim-treesitter": { "branch": "master", "commit": "c1e1e24b6433d4539bad9f5daa207df39633071b" }, "nvim-treesitter-refactor": { "branch": "master", "commit": "65ad2eca822dfaec2a3603119ec3cc8826a7859e" }, "nvim-ts-autotag": { "branch": "main", "commit": "6eb4120a1aadef07ac312f1c4bc6456712220007" }, "nvim-ts-context-commentstring": { "branch": "main", "commit": "cb064386e667def1d241317deed9fd1b38f0dc2e" }, - "nvim-web-devicons": { "branch": "master", "commit": "b4b302d6ae229f67df7a87ef69fa79473fe788a9" }, + "nvim-web-devicons": { "branch": "master", "commit": "c0cfc1738361b5da1cd0a962dd6f774cc444f856" }, "nx.nvim": { "branch": "main", "commit": "f8a3a21b3d540889401a40d1f2803083794c0372" }, "plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" }, "popup.nvim": { "branch": "master", "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" }, diff --git a/lua/cosmic/plugins/mason-lspconfig/init.lua b/lua/cosmic/plugins/mason-lspconfig/init.lua index ab292e6..f232693 100644 --- a/lua/cosmic/plugins/mason-lspconfig/init.lua +++ b/lua/cosmic/plugins/mason-lspconfig/init.lua @@ -20,7 +20,7 @@ return { local server_config = default_config -- set up default cosmic options - local ok, cosmic_server_config = pcall('cosmic.lsp.servers.' .. server) + local ok, cosmic_server_config = pcall(require, 'cosmic.lsp.servers.' .. server) if ok then server_config = u.merge(server_config, cosmic_server_config) end From 9d5a570d40251faa18c5ccf34e40ffc534fcaa52 Mon Sep 17 00:00:00 2001 From: Matthew Leong Date: Sat, 8 Jun 2024 23:35:44 -0700 Subject: [PATCH 13/22] feat: add v0.11 nvim requirement --- init.lua | 4 ++-- readme.md | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/init.lua b/init.lua index 8d44e29..42cebbf 100644 --- a/init.lua +++ b/init.lua @@ -1,5 +1,5 @@ -if vim.fn.has('nvim-0.10') == 0 then - error('Need Neovim v0.10+ (Nightly) in order to run Cosmic!') +if vim.fn.has('nvim-0.11') == 0 then + error('Need Neovim v0.11+ (Nightly) in order to run Cosmic!') end local ok, err = pcall(require, 'cosmic') diff --git a/readme.md b/readme.md index 9ae89c4..74bf6db 100644 --- a/readme.md +++ b/readme.md @@ -1,7 +1,7 @@

💫 CosmicNvim

- Neovim Minimum Version + Neovim Minimum Version GitHub last commit Discord @@ -55,10 +55,9 @@ experience with any LSP supported language._ #### Prerequisites -- Neovim (+0.10.0) nightly +- Neovim (+0.11.0) nightly - [Node.js](https://nodejs.org/en/) - [prettierd](https://github.com/fsouza/prettierd) -- [eslint_d](https://www.npmjs.com/package/eslint_d) (for eslint w/null_ls, optional) #### Install From 374c0beccb2cdf3017ff3c63f5846386066dbe83 Mon Sep 17 00:00:00 2001 From: Matthew Leong Date: Sat, 8 Jun 2024 23:42:55 -0700 Subject: [PATCH 14/22] feat: clean up lsp utils --- lua/cosmic/lsp/servers/defaults.lua | 4 ++-- lua/cosmic/lsp/servers/eslint.lua | 2 +- lua/cosmic/plugins/mason-lspconfig/init.lua | 6 ++---- lua/cosmic/utils/lsp.lua | 20 ++++++++------------ 4 files changed, 13 insertions(+), 19 deletions(-) diff --git a/lua/cosmic/lsp/servers/defaults.lua b/lua/cosmic/lsp/servers/defaults.lua index 0f9037f..082f2f8 100644 --- a/lua/cosmic/lsp/servers/defaults.lua +++ b/lua/cosmic/lsp/servers/defaults.lua @@ -34,12 +34,12 @@ function M.on_attach(client, bufnr) }) vim.api.nvim_create_autocmd('BufWritePre', { callback = function() - if not lsp_utils.format_on_save_disabled then + if lsp_utils.format_on_save_enabled then vim.lsp.buf.format({ timeout_ms = user_config.lsp.format_timeout, bufnr = bufnr, filter = function() - return lsp_utils.can_format_on_save(client) + return lsp_utils.can_client_format_on_save(client) end, }) end diff --git a/lua/cosmic/lsp/servers/eslint.lua b/lua/cosmic/lsp/servers/eslint.lua index cb0eb91..9a304a8 100644 --- a/lua/cosmic/lsp/servers/eslint.lua +++ b/lua/cosmic/lsp/servers/eslint.lua @@ -1,5 +1,5 @@ local defaults = require('cosmic.lsp.servers.defaults') -local can_format_on_save = require('cosmic.utils.lsp').can_format_on_save +local can_format_on_save = require('cosmic.utils.lsp').can_client_format_on_save return { on_attach = function(client, bufnr) defaults.on_attach(client, bufnr) diff --git a/lua/cosmic/plugins/mason-lspconfig/init.lua b/lua/cosmic/plugins/mason-lspconfig/init.lua index f232693..a682cce 100644 --- a/lua/cosmic/plugins/mason-lspconfig/init.lua +++ b/lua/cosmic/plugins/mason-lspconfig/init.lua @@ -26,10 +26,8 @@ return { end -- override options if user defines them - if type(user_config.lsp.servers[server]) == 'table' then - if user_config.lsp.servers[server].opts ~= nil then - server_config = u.merge(server_config, user_config.lsp.servers[server].opts) - end + if type(user_config.lsp.servers[server]) == 'table' and user_config.lsp.servers[server].opts ~= nil then + server_config = u.merge(server_config, user_config.lsp.servers[server].opts) end lspconfig[server].setup(server_config) diff --git a/lua/cosmic/utils/lsp.lua b/lua/cosmic/utils/lsp.lua index 9e0f51d..ea70737 100644 --- a/lua/cosmic/utils/lsp.lua +++ b/lua/cosmic/utils/lsp.lua @@ -1,11 +1,11 @@ local user_config = require('cosmic.core.user') local M = {} -M.format_on_save_disabled = false +M.format_on_save_enabled = true -function M.can_format_on_save(client) - -- formatting enabled by default if server=true +function M.can_client_format_on_save(client) local user_server_config = user_config.lsp.servers[client.name] + -- formatting enabled by default if server=true if user_server_config == true then return true end @@ -16,7 +16,6 @@ function M.can_format_on_save(client) if user_server_config.format_on_save == nil then return true end - -- check format flag on server settings return user_server_config.format_on_save == true end @@ -25,8 +24,8 @@ function M.can_format_on_save(client) end function M.toggle_format_on_save() - M.format_on_save_disabled = not M.format_on_save_disabled - vim.notify(string.format('Format on save disabled: %s', M.format_on_save_disabled)) + M.format_on_save_enabled = not M.format_on_save_enabled + vim.notify(string.format('Format on save: %s', M.format_on_save_enabled)) end function M.buf_format(bufnr, timeout) @@ -41,11 +40,12 @@ function M.buf_format(bufnr, timeout) }) end -function M.buf_get_active_client_names(bufnr) +function M.buf_get_active_clients_str() local active_clients = vim.lsp.get_clients({ - bufnr = bufnr or vim.api.nvim_get_current_buf(), + bufnr = vim.api.nvim_get_current_buf(), }) local client_names = {} + for _, client in pairs(active_clients or {}) do table.insert(client_names, client.name) end @@ -53,11 +53,7 @@ function M.buf_get_active_client_names(bufnr) if not vim.tbl_isempty(client_names) then table.sort(client_names) end - return client_names -end -function M.buf_get_active_clients_str() - local client_names = M.buf_get_active_client_names() local client_str = '' if #client_names < 1 then From ab23c09885d84a0f16d9ee89cf862501df44bbff Mon Sep 17 00:00:00 2001 From: Matthew Leong Date: Sun, 9 Jun 2024 00:31:41 -0700 Subject: [PATCH 15/22] feat: replace neodev with lazydev --- lazy-lock.json | 3 ++- lua/cosmic/plugins/lazydev/init.lua | 18 ++++++++++++++++++ lua/cosmic/plugins/neodev/init.lua | 1 - 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 lua/cosmic/plugins/lazydev/init.lua delete mode 100644 lua/cosmic/plugins/neodev/init.lua diff --git a/lazy-lock.json b/lazy-lock.json index 8dafb9d..ac13c09 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -12,10 +12,11 @@ "friendly-snippets": { "branch": "main", "commit": "e11b09bf10706bb74e16e4c3d11b2274d62e687f" }, "gitsigns.nvim": { "branch": "main", "commit": "4a143f13e122ab91abdc88f89eefbe70a4858a56" }, "lazy.nvim": { "branch": "main", "commit": "eb4957442e3182f051b0ae11da32e06d22c190e3" }, + "lazydev.nvim": { "branch": "main", "commit": "107231114623e2c4f90c626ec83b3120816b554e" }, "lualine.nvim": { "branch": "master", "commit": "0a5a66803c7407767b799067986b4dc3036e1983" }, + "luvit-meta": { "branch": "main", "commit": "ce76f6f6cdc9201523a5875a4471dcfe0186eb60" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "8db12610bcb7ce67013cfdfaba4dd47a23c6e851" }, "mason.nvim": { "branch": "main", "commit": "0950b15060067f752fde13a779a994f59516ce3d" }, - "neodev.nvim": { "branch": "main", "commit": "02893eeb9d6e8503817bd52385e111cba9a90500" }, "noice.nvim": { "branch": "main", "commit": "e5cb20c6e14305d24025ecb77d7d4dd9d61f1a64" }, "none-ls-extras.nvim": { "branch": "main", "commit": "336e84b9e43c0effb735b08798ffac382920053b" }, "none-ls-shellcheck.nvim": { "branch": "main", "commit": "0f84461241e76e376a95fb7391deac82dc3efdbf" }, diff --git a/lua/cosmic/plugins/lazydev/init.lua b/lua/cosmic/plugins/lazydev/init.lua new file mode 100644 index 0000000..29911cb --- /dev/null +++ b/lua/cosmic/plugins/lazydev/init.lua @@ -0,0 +1,18 @@ +local user_config = require('cosmic.core.user') +return { + 'folke/lazydev.nvim', + ft = 'lua', -- only load on lua files + opts = { + library = { + -- See the configuration section for more details + -- Load luvit types when the `vim.uv` word is found + { path = 'luvit-meta/library', words = { 'vim%.uv' } }, + --[[ { path = 'plenary.nvim/lua/plenary', words = { 'plenary' } }, ]] + --[[ 'lazy.nvim', ]] + --[[ 'LazyVim', ]] + }, + }, + dependencies = { { 'Bilal2453/luvit-meta', lazy = true } }, + enabled = not vim.tbl_contains(user_config.disable_builtin_plugins, 'lazydev'), + event = 'VeryLazy', +} diff --git a/lua/cosmic/plugins/neodev/init.lua b/lua/cosmic/plugins/neodev/init.lua deleted file mode 100644 index e81423b..0000000 --- a/lua/cosmic/plugins/neodev/init.lua +++ /dev/null @@ -1 +0,0 @@ -return { 'folke/neodev.nvim', opt = {} } From 73ec555c45cbb97f5e326737bd7b20c2f0ec7134 Mon Sep 17 00:00:00 2001 From: Matthew Leong Date: Sun, 9 Jun 2024 22:03:06 -0700 Subject: [PATCH 16/22] feat: add toggleterm --- lazy-lock.json | 15 ++++++----- lua/cosmic/plugins/lazydev/init.lua | 4 +-- lua/cosmic/plugins/terminal/init.lua | 2 +- lua/cosmic/plugins/toggleterm/init.lua | 37 ++++++++++++++++++++++++++ 4 files changed, 48 insertions(+), 10 deletions(-) create mode 100644 lua/cosmic/plugins/toggleterm/init.lua diff --git a/lazy-lock.json b/lazy-lock.json index ac13c09..1cc1aef 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,7 +1,7 @@ { - "Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" }, + "Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" }, "LuaSnip": { "branch": "master", "commit": "50fcf17db7c75af80e6b6109acfbfb4504768780" }, - "SchemaStore.nvim": { "branch": "main", "commit": "d9fd6651b47b68bfc1b952f81a0fdded3cb205b2" }, + "SchemaStore.nvim": { "branch": "main", "commit": "1c2e917655b14dff9ef38466be6fb0b72c4797b2" }, "auto-session": { "branch": "main", "commit": "af2219b9fa99c1d7ac409bd9eac094c459d3f52d" }, "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, "cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" }, @@ -9,10 +9,10 @@ "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, "cosmic-ui": { "branch": "main", "commit": "c0b14531999f2bfef3d927c4dcd57a1a8fed5ee9" }, - "friendly-snippets": { "branch": "main", "commit": "e11b09bf10706bb74e16e4c3d11b2274d62e687f" }, + "friendly-snippets": { "branch": "main", "commit": "7278f9d9aeee0e2befcb8a5b1a25c65bd54396aa" }, "gitsigns.nvim": { "branch": "main", "commit": "4a143f13e122ab91abdc88f89eefbe70a4858a56" }, "lazy.nvim": { "branch": "main", "commit": "eb4957442e3182f051b0ae11da32e06d22c190e3" }, - "lazydev.nvim": { "branch": "main", "commit": "107231114623e2c4f90c626ec83b3120816b554e" }, + "lazydev.nvim": { "branch": "main", "commit": "7cbb524c85f87017df9c1ea2377a1d840ad8ed51" }, "lualine.nvim": { "branch": "master", "commit": "0a5a66803c7407767b799067986b4dc3036e1983" }, "luvit-meta": { "branch": "main", "commit": "ce76f6f6cdc9201523a5875a4471dcfe0186eb60" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "8db12610bcb7ce67013cfdfaba4dd47a23c6e851" }, @@ -28,7 +28,7 @@ "nvim-lspconfig": { "branch": "master", "commit": "92166b89ab4b3d60f24e58170cac53b7141fd032" }, "nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" }, "nvim-tree.lua": { "branch": "master", "commit": "2086e564c4d23fea714e8a6d63b881e551af2f41" }, - "nvim-treesitter": { "branch": "master", "commit": "c1e1e24b6433d4539bad9f5daa207df39633071b" }, + "nvim-treesitter": { "branch": "master", "commit": "9ebc589329083522f9594f408fc2652090b41139" }, "nvim-treesitter-refactor": { "branch": "master", "commit": "65ad2eca822dfaec2a3603119ec3cc8826a7859e" }, "nvim-ts-autotag": { "branch": "main", "commit": "6eb4120a1aadef07ac312f1c4bc6456712220007" }, "nvim-ts-context-commentstring": { "branch": "main", "commit": "cb064386e667def1d241317deed9fd1b38f0dc2e" }, @@ -37,9 +37,10 @@ "plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" }, "popup.nvim": { "branch": "master", "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "9ef21b2e6bb6ebeaf349a0781745549bbb870d27" }, - "telescope.nvim": { "branch": "master", "commit": "3a743491e5c6be0ed0aa8c31c6905df8f66179ba" }, + "telescope.nvim": { "branch": "master", "commit": "f12b15e1b3a33524eb06a1ae7bc852fb1fd92197" }, "todo-comments.nvim": { "branch": "main", "commit": "70a93ce66083699571adc361166504b03cc39c2b" }, - "tokyonight.nvim": { "branch": "main", "commit": "f9e738e2dc78326166f11c021171b2e66a2ee426" }, + "toggleterm.nvim": { "branch": "main", "commit": "066cccf48a43553a80a210eb3be89a15d789d6e6" }, + "tokyonight.nvim": { "branch": "main", "commit": "e4df5bb11d5dd419994c87e81e667847f0389c7e" }, "vim-floaterm": { "branch": "master", "commit": "4e28c8dd0271e10a5f55142fb6fe9b1599ee6160" }, "vim-fugitive": { "branch": "master", "commit": "4f59455d2388e113bd510e85b310d15b9228ca0d" }, "which-key.nvim": { "branch": "main", "commit": "0099511294f16b81c696004fa6a403b0ae61f7a0" } diff --git a/lua/cosmic/plugins/lazydev/init.lua b/lua/cosmic/plugins/lazydev/init.lua index 29911cb..d94937f 100644 --- a/lua/cosmic/plugins/lazydev/init.lua +++ b/lua/cosmic/plugins/lazydev/init.lua @@ -7,9 +7,9 @@ return { -- See the configuration section for more details -- Load luvit types when the `vim.uv` word is found { path = 'luvit-meta/library', words = { 'vim%.uv' } }, + 'lazy.nvim', + 'toggleterm.nvim', --[[ { path = 'plenary.nvim/lua/plenary', words = { 'plenary' } }, ]] - --[[ 'lazy.nvim', ]] - --[[ 'LazyVim', ]] }, }, dependencies = { { 'Bilal2453/luvit-meta', lazy = true } }, diff --git a/lua/cosmic/plugins/terminal/init.lua b/lua/cosmic/plugins/terminal/init.lua index c761635..4c460e6 100644 --- a/lua/cosmic/plugins/terminal/init.lua +++ b/lua/cosmic/plugins/terminal/init.lua @@ -17,7 +17,7 @@ return { g.floaterm_opener = 'vsplit' require('cosmic.plugins.terminal.highlights') - require('cosmic.plugins.terminal.mappings') + --[[ require('cosmic.plugins.terminal.mappings') ]] end, enabled = not vim.tbl_contains(user_config.disable_builtin_plugins, 'terminal'), } diff --git a/lua/cosmic/plugins/toggleterm/init.lua b/lua/cosmic/plugins/toggleterm/init.lua new file mode 100644 index 0000000..ea270c1 --- /dev/null +++ b/lua/cosmic/plugins/toggleterm/init.lua @@ -0,0 +1,37 @@ +local user_config = require('cosmic.core.user') +local map = require('cosmic.utils').map +local create_buf_map = require('cosmic.utils').create_buf_map +return { + 'akinsho/toggleterm.nvim', + config = function() + require('toggleterm').setup({ + direction = 'float', + float_opts = { + border = user_config.border, + }, + }) + + local Terminal = require('toggleterm.terminal').Terminal + + function new_terminal() + local terminal = Terminal:new({ + on_open = function(term) + local buf_map = create_buf_map(term.bufnr, { + noremap = false, + }) + vim.cmd('startinsert!') + end, + -- function to run on closing the terminal + on_close = function(term) + vim.cmd('startinsert!') + end, + }) + terminal:toggle() + end + + map('n', '', ':ToggleTerm', { desc = 'Toggle Terminal' }) + map('t', '', [[]], { desc = 'Close Floaterm' }) + map('t', 'n', new_terminal, { desc = 'New terminal' }) + end, + lazy = false, +} From 982c79ebc1eed3d40ec75f94a2f9ad7a37c1423e Mon Sep 17 00:00:00 2001 From: Matthew Leong Date: Sun, 9 Jun 2024 23:45:05 -0700 Subject: [PATCH 17/22] feat: init toggleterm --- lua/cosmic/config/examples/editor.lua | 2 +- lua/cosmic/core/mappings.lua | 11 +++++- lua/cosmic/plugins/auto-session/mappings.lua | 2 +- lua/cosmic/plugins/noice/init.lua | 2 +- lua/cosmic/plugins/nvim-tree/init.lua | 2 +- lua/cosmic/plugins/telescope/init.lua | 2 +- lua/cosmic/plugins/terminal/init.lua | 6 ++-- lua/cosmic/plugins/terminal/mappings.lua | 2 +- lua/cosmic/plugins/toggleterm/init.lua | 37 +++++++++++--------- lua/cosmic/utils/init.lua | 4 +-- 10 files changed, 41 insertions(+), 29 deletions(-) diff --git a/lua/cosmic/config/examples/editor.lua b/lua/cosmic/config/examples/editor.lua index aec7e5b..6604db6 100644 --- a/lua/cosmic/config/examples/editor.lua +++ b/lua/cosmic/config/examples/editor.lua @@ -1,7 +1,7 @@ -- Override Cosmic editor options local g = vim.g -local map = require('cosmic.utils').map +local map = require('cosmic.utils').set_keymap local opt = vim.opt -- Default leader is diff --git a/lua/cosmic/core/mappings.lua b/lua/cosmic/core/mappings.lua index a7743fe..a36b4ac 100644 --- a/lua/cosmic/core/mappings.lua +++ b/lua/cosmic/core/mappings.lua @@ -1,4 +1,4 @@ -local map = require('cosmic.utils').map +local map = require('cosmic.utils').set_keymap -- Quickfix mappings map('n', 'ck', ':cexpr []', { desc = 'Clear list' }) @@ -34,4 +34,13 @@ map('n', '', ':resize +2', { desc = 'Resize +2' }) map('n', '', ':vertical resize -2', { desc = 'Vertical Resize -2' }) map('n', '', ':vertical resize +2', { desc = 'Vertical Resize +2' }) +-- map('n', '', [[wincmd h]], {}) +-- map('n', '', [[wincmd j]], {}) +-- map('n', '', [[wincmd k]], {}) +-- map('n', '', [[wincmd l]], {}) +--[[ map('n', '', 'h', {}) ]] +--[[ map('n', '', 'j', {}) ]] +--[[ map('n', '', 'k', {}) ]] +--[[ map('n', '', 'l', {}) ]] + map('n', 'bo', '%bd|e#', { desc = 'Close all buffers but the current one' }) -- https://stackoverflow.com/a/42071865/516188 diff --git a/lua/cosmic/plugins/auto-session/mappings.lua b/lua/cosmic/plugins/auto-session/mappings.lua index 339df10..1b7ef87 100644 --- a/lua/cosmic/plugins/auto-session/mappings.lua +++ b/lua/cosmic/plugins/auto-session/mappings.lua @@ -1,4 +1,4 @@ -local map = require('cosmic.utils').map +local map = require('cosmic.utils').set_keymap -- session map('n', 'sl', 'silent RestoreSession', { desc = 'Restore session' }) diff --git a/lua/cosmic/plugins/noice/init.lua b/lua/cosmic/plugins/noice/init.lua index 103851a..7b1178c 100644 --- a/lua/cosmic/plugins/noice/init.lua +++ b/lua/cosmic/plugins/noice/init.lua @@ -1,6 +1,6 @@ local user_config = require('cosmic.core.user') local u = require('cosmic.utils') -local map = require('cosmic.utils').map +local map = require('cosmic.utils').set_keymap return { 'folke/noice.nvim', diff --git a/lua/cosmic/plugins/nvim-tree/init.lua b/lua/cosmic/plugins/nvim-tree/init.lua index 6baff09..2703be3 100644 --- a/lua/cosmic/plugins/nvim-tree/init.lua +++ b/lua/cosmic/plugins/nvim-tree/init.lua @@ -46,7 +46,7 @@ return { require('nvim-tree').setup(u.merge(args, user_config.plugins.nvim_tree or {})) end, init = function() - local map = require('cosmic.utils').map + local map = require('cosmic.utils').set_keymap map('n', '', ':NvimTreeToggle', { desc = 'Toggle Tree' }) map('n', 'nt', ':NvimTreeToggle', { desc = 'Toggle Tree' }) diff --git a/lua/cosmic/plugins/telescope/init.lua b/lua/cosmic/plugins/telescope/init.lua index aa064c0..85bc515 100644 --- a/lua/cosmic/plugins/telescope/init.lua +++ b/lua/cosmic/plugins/telescope/init.lua @@ -15,7 +15,7 @@ return { init = function() -- normal mappings local u = require('cosmic.utils') - local map = u.map + local map = u.set_keymap map('n', 'ff', '', { callback = require('cosmic.plugins.telescope.utils').project_files, diff --git a/lua/cosmic/plugins/terminal/init.lua b/lua/cosmic/plugins/terminal/init.lua index 4c460e6..c66062a 100644 --- a/lua/cosmic/plugins/terminal/init.lua +++ b/lua/cosmic/plugins/terminal/init.lua @@ -3,9 +3,9 @@ local user_config = require('cosmic.core.user') return { 'voldikss/vim-floaterm', cmd = { 'FloatermToggle', 'FloatermNew' }, - keys = { - { '', 'FloatermToggle', desc = 'Floating Terminal' }, - }, + --[[ keys = { ]] + --[[ { '', 'FloatermToggle', desc = 'Floating Terminal' }, ]] + --[[ }, ]] config = function() local g = vim.g local title = vim.env.SHELL diff --git a/lua/cosmic/plugins/terminal/mappings.lua b/lua/cosmic/plugins/terminal/mappings.lua index 1b18aa5..614ae55 100644 --- a/lua/cosmic/plugins/terminal/mappings.lua +++ b/lua/cosmic/plugins/terminal/mappings.lua @@ -1,4 +1,4 @@ -local map = require('cosmic.utils').map +local map = require('cosmic.utils').set_keymap map('n', '', ':FloatermToggle', { desc = 'Toggle Floaterm' }) map('t', '', [[]], { desc = 'Close Floaterm' }) diff --git a/lua/cosmic/plugins/toggleterm/init.lua b/lua/cosmic/plugins/toggleterm/init.lua index ea270c1..f837bcb 100644 --- a/lua/cosmic/plugins/toggleterm/init.lua +++ b/lua/cosmic/plugins/toggleterm/init.lua @@ -1,5 +1,5 @@ local user_config = require('cosmic.core.user') -local map = require('cosmic.utils').map +local map = require('cosmic.utils').set_keymap local create_buf_map = require('cosmic.utils').create_buf_map return { 'akinsho/toggleterm.nvim', @@ -9,29 +9,32 @@ return { float_opts = { border = user_config.border, }, + highlights = { + FloatBorder = { + link = 'FloatBorder', + }, + }, }) local Terminal = require('toggleterm.terminal').Terminal - function new_terminal() - local terminal = Terminal:new({ - on_open = function(term) - local buf_map = create_buf_map(term.bufnr, { - noremap = false, - }) - vim.cmd('startinsert!') - end, - -- function to run on closing the terminal - on_close = function(term) - vim.cmd('startinsert!') - end, - }) + local function new_terminal() + local terminal = Terminal:new() terminal:toggle() end - map('n', '', ':ToggleTerm', { desc = 'Toggle Terminal' }) - map('t', '', [[]], { desc = 'Close Floaterm' }) - map('t', 'n', new_terminal, { desc = 'New terminal' }) + map('n', 'kn', new_terminal, { desc = 'New terminal' }) + + map('n', 'k', ':ToggleTerm', { desc = 'Toggle Terminal' }) + map('t', 'k', [[]] .. ':ToggleTerm', { desc = 'Toggle Terminal' }) + map('n', 'kk', ':TermSelect', { desc = 'Choose open terminal' }) + map('t', 'kk', [[]] .. ':TermSelect', { desc = 'Choose open terminal' }) + + map('t', '', [[]], { desc = 'Visual mode' }) + map('t', 'kn', new_terminal, { desc = 'New terminal' }) + map('n', 'kr', ':ToggleTermSetName', { desc = 'Rename terminal' }) + + -- @TODO: close all end, lazy = false, } diff --git a/lua/cosmic/utils/init.lua b/lua/cosmic/utils/init.lua index a848e92..4143fec 100644 --- a/lua/cosmic/utils/init.lua +++ b/lua/cosmic/utils/init.lua @@ -1,6 +1,6 @@ local M = {} -function M.map(mode, lhs, rhs, opts) +function M.set_keymap(mode, lhs, rhs, opts) local defaults = { silent = true, noremap = true, @@ -10,7 +10,7 @@ end function M.create_buf_map(bufnr, opts) return function(mode, lhs, rhs, map_opts) - M.map( + M.set_keymap( mode, lhs, rhs, From 5f50067512a47faffa8519a4a7f55d7499fa2af7 Mon Sep 17 00:00:00 2001 From: Matthew Leong Date: Tue, 11 Jun 2024 10:12:05 -0700 Subject: [PATCH 18/22] feat: add toggleterm --- lua/cosmic/plugins/terminal/highlights.lua | 8 ------- lua/cosmic/plugins/terminal/init.lua | 23 ------------------- lua/cosmic/plugins/terminal/mappings.lua | 8 ------- lua/cosmic/plugins/toggleterm/init.lua | 26 +++++++++++++--------- lua/cosmic/plugins/toggleterm/utils.lua | 12 ++++++++++ readme.md | 2 +- 6 files changed, 28 insertions(+), 51 deletions(-) delete mode 100644 lua/cosmic/plugins/terminal/highlights.lua delete mode 100644 lua/cosmic/plugins/terminal/init.lua delete mode 100644 lua/cosmic/plugins/terminal/mappings.lua create mode 100644 lua/cosmic/plugins/toggleterm/utils.lua diff --git a/lua/cosmic/plugins/terminal/highlights.lua b/lua/cosmic/plugins/terminal/highlights.lua deleted file mode 100644 index fa23506..0000000 --- a/lua/cosmic/plugins/terminal/highlights.lua +++ /dev/null @@ -1,8 +0,0 @@ -local set_highlight = require('cosmic.utils.theme').set_highlight - --- terminal highlights -set_highlight('FloatBorder', { - guibg = 'None', -}) - -vim.cmd('hi! link FloatermBorder FloatBorder') diff --git a/lua/cosmic/plugins/terminal/init.lua b/lua/cosmic/plugins/terminal/init.lua deleted file mode 100644 index c66062a..0000000 --- a/lua/cosmic/plugins/terminal/init.lua +++ /dev/null @@ -1,23 +0,0 @@ -local user_config = require('cosmic.core.user') - -return { - 'voldikss/vim-floaterm', - cmd = { 'FloatermToggle', 'FloatermNew' }, - --[[ keys = { ]] - --[[ { '', 'FloatermToggle', desc = 'Floating Terminal' }, ]] - --[[ }, ]] - config = function() - local g = vim.g - local title = vim.env.SHELL - - g.floaterm_width = 0.7 - g.floaterm_height = 0.8 - g.floaterm_title = '[' .. title .. ']:($1/$2)' - g.floaterm_borderchars = '─│─│╭╮╯╰' - g.floaterm_opener = 'vsplit' - - require('cosmic.plugins.terminal.highlights') - --[[ require('cosmic.plugins.terminal.mappings') ]] - end, - enabled = not vim.tbl_contains(user_config.disable_builtin_plugins, 'terminal'), -} diff --git a/lua/cosmic/plugins/terminal/mappings.lua b/lua/cosmic/plugins/terminal/mappings.lua deleted file mode 100644 index 614ae55..0000000 --- a/lua/cosmic/plugins/terminal/mappings.lua +++ /dev/null @@ -1,8 +0,0 @@ -local map = require('cosmic.utils').set_keymap - -map('n', '', ':FloatermToggle', { desc = 'Toggle Floaterm' }) -map('t', '', [[]], { desc = 'Close Floaterm' }) -map('t', 'l', [[:FloatermNext]], { desc = 'Next terminal' }) -map('t', 'h', [[:FloatermPrev]], { desc = 'Prev terminal' }) -map('t', 'n', [[:FloatermNew]], { desc = 'New terminal' }) -map('t', 'c', [[:FloatermKill]], { desc = 'Kill current terminal' }) diff --git a/lua/cosmic/plugins/toggleterm/init.lua b/lua/cosmic/plugins/toggleterm/init.lua index f837bcb..05ddb31 100644 --- a/lua/cosmic/plugins/toggleterm/init.lua +++ b/lua/cosmic/plugins/toggleterm/init.lua @@ -15,24 +15,28 @@ return { }, }, }) + local terminal_utils = require('cosmic.plugins.toggleterm.utils') - local Terminal = require('toggleterm.terminal').Terminal - - local function new_terminal() - local terminal = Terminal:new() - terminal:toggle() - end - - map('n', 'kn', new_terminal, { desc = 'New terminal' }) + map('t', '', [[]], { desc = 'Visual mode' }) + -- toggle terminals map('n', 'k', ':ToggleTerm', { desc = 'Toggle Terminal' }) map('t', 'k', [[]] .. ':ToggleTerm', { desc = 'Toggle Terminal' }) + + -- new terminal + map('n', 'kn', terminal_utils.new_terminal, { desc = 'New terminal' }) + map('t', 'kn', terminal_utils.new_terminal, { desc = 'New terminal' }) + + -- select terminal to open map('n', 'kk', ':TermSelect', { desc = 'Choose open terminal' }) map('t', 'kk', [[]] .. ':TermSelect', { desc = 'Choose open terminal' }) - map('t', '', [[]], { desc = 'Visual mode' }) - map('t', 'kn', new_terminal, { desc = 'New terminal' }) - map('n', 'kr', ':ToggleTermSetName', { desc = 'Rename terminal' }) + -- rename terminal + map('n', 'kr', ':ToggleTermSetName', { desc = 'Rename terminal', buffer = 0 }) + map('t', 'kr', [[]] .. ':ToggleTermSetName', { desc = 'Rename terminal', buffer = 0 }) + + -- terminal only mappings + vim.cmd("autocmd! TermOpen term://* lua require('cosmic.plugins.toggleterm.utils').set_terminal_keymaps()") -- @TODO: close all end, diff --git a/lua/cosmic/plugins/toggleterm/utils.lua b/lua/cosmic/plugins/toggleterm/utils.lua new file mode 100644 index 0000000..79ff942 --- /dev/null +++ b/lua/cosmic/plugins/toggleterm/utils.lua @@ -0,0 +1,12 @@ +local M = {} +local map = require('cosmic.utils').set_keymap +local Terminal = require('toggleterm.terminal').Terminal + +function M.new_terminal() + local terminal = Terminal:new() + terminal:toggle() +end + +function M.set_terminal_keymaps() end + +return M diff --git a/readme.md b/readme.md index 74bf6db..8c38f32 100644 --- a/readme.md +++ b/readme.md @@ -38,7 +38,7 @@ Full featured native LSP functionality! - Custom statusline via [lualine](https://github.com/nvim-lualine/lualine.nvim) - Explore files via [nvim-tree](https://github.com/kyazdani42/nvim-tree.lua) - Fuzzy finder via [Telescope](https://github.com/nvim-telescope/telescope.nvim) -- Floating terminal with [vim-floaterm](https://github.com/voldikss/vim-floaterm) +- Floating terminal with [toggleterm.nvim](https://github.com/akinsho/toggleterm.nvim) - Auto LSP/formatter/linter installation via [mason.nvim](https://github.com/williamboman/mason.nvim) - Autocompletion via [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) - Snippet support via [LuaSnip](https://github.com/L3MON4D3/LuaSnip) From 1de6f108531a88f9732c0a74a6998c5b82a3ff03 Mon Sep 17 00:00:00 2001 From: Matthew Leong Date: Tue, 25 Jun 2024 10:21:37 -0700 Subject: [PATCH 19/22] feat: update gitsigns setup --- lazy-lock.json | 39 ++++++++++++++-------------- lua/cosmic/plugins/gitsigns/init.lua | 10 +++---- 2 files changed, 24 insertions(+), 25 deletions(-) diff --git a/lazy-lock.json b/lazy-lock.json index 1cc1aef..71b87c5 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,47 +1,46 @@ { "Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" }, "LuaSnip": { "branch": "master", "commit": "50fcf17db7c75af80e6b6109acfbfb4504768780" }, - "SchemaStore.nvim": { "branch": "main", "commit": "1c2e917655b14dff9ef38466be6fb0b72c4797b2" }, - "auto-session": { "branch": "main", "commit": "af2219b9fa99c1d7ac409bd9eac094c459d3f52d" }, + "SchemaStore.nvim": { "branch": "main", "commit": "93ccaf12b9fb6df87d13da2782d83b34a3cbb893" }, + "auto-session": { "branch": "main", "commit": "e5ffe230235c7d35c2f33078b7cd927a4fb579c4" }, "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, "cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" }, "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" }, "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, "cosmic-ui": { "branch": "main", "commit": "c0b14531999f2bfef3d927c4dcd57a1a8fed5ee9" }, - "friendly-snippets": { "branch": "main", "commit": "7278f9d9aeee0e2befcb8a5b1a25c65bd54396aa" }, - "gitsigns.nvim": { "branch": "main", "commit": "4a143f13e122ab91abdc88f89eefbe70a4858a56" }, - "lazy.nvim": { "branch": "main", "commit": "eb4957442e3182f051b0ae11da32e06d22c190e3" }, - "lazydev.nvim": { "branch": "main", "commit": "7cbb524c85f87017df9c1ea2377a1d840ad8ed51" }, + "friendly-snippets": { "branch": "main", "commit": "682157939e57bd6a2c86277dfd4d6fbfce63dbac" }, + "gitsigns.nvim": { "branch": "main", "commit": "fa42613096ebfa5fee1ea87d70f8625ab9685d01" }, + "lazy.nvim": { "branch": "main", "commit": "33be7ac3173c7c20b94ce7e1b9734c1a1e85f292" }, + "lazydev.nvim": { "branch": "main", "commit": "6184ebbbc8045d70077659b7d30c705a588dc62f" }, "lualine.nvim": { "branch": "master", "commit": "0a5a66803c7407767b799067986b4dc3036e1983" }, "luvit-meta": { "branch": "main", "commit": "ce76f6f6cdc9201523a5875a4471dcfe0186eb60" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "8db12610bcb7ce67013cfdfaba4dd47a23c6e851" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "37a336b653f8594df75c827ed589f1c91d91ff6c" }, "mason.nvim": { "branch": "main", "commit": "0950b15060067f752fde13a779a994f59516ce3d" }, - "noice.nvim": { "branch": "main", "commit": "e5cb20c6e14305d24025ecb77d7d4dd9d61f1a64" }, + "noice.nvim": { "branch": "main", "commit": "cade1f972ba226e7753a7a113f3f1a942908e73c" }, "none-ls-extras.nvim": { "branch": "main", "commit": "336e84b9e43c0effb735b08798ffac382920053b" }, "none-ls-shellcheck.nvim": { "branch": "main", "commit": "0f84461241e76e376a95fb7391deac82dc3efdbf" }, - "none-ls.nvim": { "branch": "main", "commit": "8691504118b252d64fc5023a104aedd100ab754a" }, - "nui.nvim": { "branch": "main", "commit": "322978c734866996274467de084a95e4f9b5e0b1" }, + "none-ls.nvim": { "branch": "main", "commit": "f1b438ab1709cf9d8875843559d20265013ac755" }, + "nui.nvim": { "branch": "main", "commit": "a2bc1e9d0359caa5d11ad967cd1e30e8d4676226" }, "nvim-autopairs": { "branch": "master", "commit": "c15de7e7981f1111642e7e53799e1211d4606cb9" }, "nvim-cmp": { "branch": "main", "commit": "a110e12d0b58eefcf5b771f533fc2cf3050680ac" }, "nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" }, - "nvim-lspconfig": { "branch": "master", "commit": "92166b89ab4b3d60f24e58170cac53b7141fd032" }, + "nvim-lspconfig": { "branch": "master", "commit": "9c9eb07fecc578e25e28db8dc9002b43fff2ed79" }, "nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" }, - "nvim-tree.lua": { "branch": "master", "commit": "2086e564c4d23fea714e8a6d63b881e551af2f41" }, - "nvim-treesitter": { "branch": "master", "commit": "9ebc589329083522f9594f408fc2652090b41139" }, + "nvim-tree.lua": { "branch": "master", "commit": "8b2c5c678be4b49dff6a2df794877000113fd77b" }, + "nvim-treesitter": { "branch": "master", "commit": "09700b88b41ed96391de3d2010d74dc54fd5c210" }, "nvim-treesitter-refactor": { "branch": "master", "commit": "65ad2eca822dfaec2a3603119ec3cc8826a7859e" }, - "nvim-ts-autotag": { "branch": "main", "commit": "6eb4120a1aadef07ac312f1c4bc6456712220007" }, + "nvim-ts-autotag": { "branch": "main", "commit": "ddfccbf0df1b9349c2b9e9b17f4afa8f9b6c1ed1" }, "nvim-ts-context-commentstring": { "branch": "main", "commit": "cb064386e667def1d241317deed9fd1b38f0dc2e" }, "nvim-web-devicons": { "branch": "master", "commit": "c0cfc1738361b5da1cd0a962dd6f774cc444f856" }, "nx.nvim": { "branch": "main", "commit": "f8a3a21b3d540889401a40d1f2803083794c0372" }, "plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" }, "popup.nvim": { "branch": "master", "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "9ef21b2e6bb6ebeaf349a0781745549bbb870d27" }, - "telescope.nvim": { "branch": "master", "commit": "f12b15e1b3a33524eb06a1ae7bc852fb1fd92197" }, - "todo-comments.nvim": { "branch": "main", "commit": "70a93ce66083699571adc361166504b03cc39c2b" }, - "toggleterm.nvim": { "branch": "main", "commit": "066cccf48a43553a80a210eb3be89a15d789d6e6" }, - "tokyonight.nvim": { "branch": "main", "commit": "e4df5bb11d5dd419994c87e81e667847f0389c7e" }, - "vim-floaterm": { "branch": "master", "commit": "4e28c8dd0271e10a5f55142fb6fe9b1599ee6160" }, - "vim-fugitive": { "branch": "master", "commit": "4f59455d2388e113bd510e85b310d15b9228ca0d" }, + "telescope.nvim": { "branch": "master", "commit": "61a4a615366c470a4e9ca8f8b45718b6b92af73f" }, + "todo-comments.nvim": { "branch": "main", "commit": "51e10f838e84b4756c16311d0b1ef0972c6482d2" }, + "toggleterm.nvim": { "branch": "main", "commit": "cd55bf6aab3f88c259fa29ea86bbdcb1a325687d" }, + "tokyonight.nvim": { "branch": "main", "commit": "30d7be361a7fbf187a881f17e574e9213d5108ea" }, + "vim-fugitive": { "branch": "master", "commit": "64d6cafb9dcbacce18c26d7daf617ebb96b273f3" }, "which-key.nvim": { "branch": "main", "commit": "0099511294f16b81c696004fa6a403b0ae61f7a0" } } \ No newline at end of file diff --git a/lua/cosmic/plugins/gitsigns/init.lua b/lua/cosmic/plugins/gitsigns/init.lua index 50c279e..ba11626 100644 --- a/lua/cosmic/plugins/gitsigns/init.lua +++ b/lua/cosmic/plugins/gitsigns/init.lua @@ -9,11 +9,11 @@ return { local gs = require('gitsigns') gs.setup(u.merge({ signs = { - add = { hl = 'GitSignsAdd', text = '│', numhl = 'GitSignsAddNr', linehl = 'GitSignsAddLn' }, - change = { hl = 'GitSignsChange', text = '│', numhl = 'GitSignsChangeNr', linehl = 'GitSignsChangeLn' }, - delete = { hl = 'GitSignsDelete', text = '_', numhl = 'GitSignsDeleteNr', linehl = 'GitSignsDeleteLn' }, - topdelete = { hl = 'GitSignsDelete', text = '‾', numhl = 'GitSignsDeleteNr', linehl = 'GitSignsDeleteLn' }, - changedelete = { hl = 'GitSignsChange', text = '~', numhl = 'GitSignsChangeNr', linehl = 'GitSignsChangeLn' }, + add = { text = '│' }, + change = { text = '│' }, + delete = { text = '_' }, + topdelete = { text = '‾' }, + changedelete = { text = '~' }, }, preview_config = { -- Options passed to nvim_open_win From 5d19ac0e71ae408586bbe3eafa902067f79e3b8d Mon Sep 17 00:00:00 2001 From: Matthew Leong Date: Wed, 3 Jul 2024 10:56:28 -0700 Subject: [PATCH 20/22] feat: update terminal key maps --- lazy-lock.json | 30 +++++++++++++------------- lua/cosmic/plugins/toggleterm/init.lua | 12 +++++------ lua/cosmic/plugins/which-key/init.lua | 7 ++++-- 3 files changed, 25 insertions(+), 24 deletions(-) diff --git a/lazy-lock.json b/lazy-lock.json index 71b87c5..efc08eb 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,8 +1,8 @@ { "Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" }, - "LuaSnip": { "branch": "master", "commit": "50fcf17db7c75af80e6b6109acfbfb4504768780" }, - "SchemaStore.nvim": { "branch": "main", "commit": "93ccaf12b9fb6df87d13da2782d83b34a3cbb893" }, - "auto-session": { "branch": "main", "commit": "e5ffe230235c7d35c2f33078b7cd927a4fb579c4" }, + "LuaSnip": { "branch": "master", "commit": "ce0a05ab4e2839e1c48d072c5236cce846a387bc" }, + "SchemaStore.nvim": { "branch": "main", "commit": "b606847df9f91ab6a7d0484c2e3fae096c9fe028" }, + "auto-session": { "branch": "main", "commit": "7b1b30d3424b7ca0fb4d12ce3f3d1977cf7c5691" }, "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, "cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" }, "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" }, @@ -10,25 +10,25 @@ "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, "cosmic-ui": { "branch": "main", "commit": "c0b14531999f2bfef3d927c4dcd57a1a8fed5ee9" }, "friendly-snippets": { "branch": "main", "commit": "682157939e57bd6a2c86277dfd4d6fbfce63dbac" }, - "gitsigns.nvim": { "branch": "main", "commit": "fa42613096ebfa5fee1ea87d70f8625ab9685d01" }, - "lazy.nvim": { "branch": "main", "commit": "33be7ac3173c7c20b94ce7e1b9734c1a1e85f292" }, - "lazydev.nvim": { "branch": "main", "commit": "6184ebbbc8045d70077659b7d30c705a588dc62f" }, + "gitsigns.nvim": { "branch": "main", "commit": "6b1a14eabcebbcca1b9e9163a26b2f8371364cb7" }, + "lazy.nvim": { "branch": "main", "commit": "d0921f5b9b3d2c5e09618da55a018228edcc4d16" }, + "lazydev.nvim": { "branch": "main", "commit": "78d8a11fbd02ad4eafa07dd8a43a959a69fb3bf8" }, "lualine.nvim": { "branch": "master", "commit": "0a5a66803c7407767b799067986b4dc3036e1983" }, "luvit-meta": { "branch": "main", "commit": "ce76f6f6cdc9201523a5875a4471dcfe0186eb60" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "37a336b653f8594df75c827ed589f1c91d91ff6c" }, "mason.nvim": { "branch": "main", "commit": "0950b15060067f752fde13a779a994f59516ce3d" }, - "noice.nvim": { "branch": "main", "commit": "cade1f972ba226e7753a7a113f3f1a942908e73c" }, + "noice.nvim": { "branch": "main", "commit": "03c6a75661e68012e30b0ed81f050358b1e2233c" }, "none-ls-extras.nvim": { "branch": "main", "commit": "336e84b9e43c0effb735b08798ffac382920053b" }, "none-ls-shellcheck.nvim": { "branch": "main", "commit": "0f84461241e76e376a95fb7391deac82dc3efdbf" }, - "none-ls.nvim": { "branch": "main", "commit": "f1b438ab1709cf9d8875843559d20265013ac755" }, - "nui.nvim": { "branch": "main", "commit": "a2bc1e9d0359caa5d11ad967cd1e30e8d4676226" }, + "none-ls.nvim": { "branch": "main", "commit": "0d1b3fa2ad0b371b94cb4b9a27ba6e5a1a915c91" }, + "nui.nvim": { "branch": "main", "commit": "61574ce6e60c815b0a0c4b5655b8486ba58089a1" }, "nvim-autopairs": { "branch": "master", "commit": "c15de7e7981f1111642e7e53799e1211d4606cb9" }, "nvim-cmp": { "branch": "main", "commit": "a110e12d0b58eefcf5b771f533fc2cf3050680ac" }, "nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" }, - "nvim-lspconfig": { "branch": "master", "commit": "9c9eb07fecc578e25e28db8dc9002b43fff2ed79" }, + "nvim-lspconfig": { "branch": "master", "commit": "53a3c6444ec5006b567071614c83edc8ad651f6d" }, "nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" }, "nvim-tree.lua": { "branch": "master", "commit": "8b2c5c678be4b49dff6a2df794877000113fd77b" }, - "nvim-treesitter": { "branch": "master", "commit": "09700b88b41ed96391de3d2010d74dc54fd5c210" }, + "nvim-treesitter": { "branch": "master", "commit": "6cd4ce6cab184e8787f164a182954534221f2af2" }, "nvim-treesitter-refactor": { "branch": "master", "commit": "65ad2eca822dfaec2a3603119ec3cc8826a7859e" }, "nvim-ts-autotag": { "branch": "main", "commit": "ddfccbf0df1b9349c2b9e9b17f4afa8f9b6c1ed1" }, "nvim-ts-context-commentstring": { "branch": "main", "commit": "cb064386e667def1d241317deed9fd1b38f0dc2e" }, @@ -36,11 +36,11 @@ "nx.nvim": { "branch": "main", "commit": "f8a3a21b3d540889401a40d1f2803083794c0372" }, "plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" }, "popup.nvim": { "branch": "master", "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" }, - "telescope-fzf-native.nvim": { "branch": "main", "commit": "9ef21b2e6bb6ebeaf349a0781745549bbb870d27" }, - "telescope.nvim": { "branch": "master", "commit": "61a4a615366c470a4e9ca8f8b45718b6b92af73f" }, + "telescope-fzf-native.nvim": { "branch": "main", "commit": "cf48d4dfce44e0b9a2e19a008d6ec6ea6f01a83b" }, + "telescope.nvim": { "branch": "master", "commit": "bfcc7d5c6f12209139f175e6123a7b7de6d9c18a" }, "todo-comments.nvim": { "branch": "main", "commit": "51e10f838e84b4756c16311d0b1ef0972c6482d2" }, "toggleterm.nvim": { "branch": "main", "commit": "cd55bf6aab3f88c259fa29ea86bbdcb1a325687d" }, - "tokyonight.nvim": { "branch": "main", "commit": "30d7be361a7fbf187a881f17e574e9213d5108ea" }, - "vim-fugitive": { "branch": "master", "commit": "64d6cafb9dcbacce18c26d7daf617ebb96b273f3" }, + "tokyonight.nvim": { "branch": "main", "commit": "c16eaeb9eaf4eb307431e58ec6101eecf2dbe52d" }, + "vim-fugitive": { "branch": "master", "commit": "d0c1a437536778bcc8174b7cb2ffdf98f611e6fe" }, "which-key.nvim": { "branch": "main", "commit": "0099511294f16b81c696004fa6a403b0ae61f7a0" } } \ No newline at end of file diff --git a/lua/cosmic/plugins/toggleterm/init.lua b/lua/cosmic/plugins/toggleterm/init.lua index 05ddb31..2fd35df 100644 --- a/lua/cosmic/plugins/toggleterm/init.lua +++ b/lua/cosmic/plugins/toggleterm/init.lua @@ -17,19 +17,19 @@ return { }) local terminal_utils = require('cosmic.plugins.toggleterm.utils') - map('t', '', [[]], { desc = 'Visual mode' }) + map('t', 'k', [[]], { desc = 'Visual mode' }) -- toggle terminals - map('n', 'k', ':ToggleTerm', { desc = 'Toggle Terminal' }) - map('t', 'k', [[]] .. ':ToggleTerm', { desc = 'Toggle Terminal' }) + map('n', 'kk', ':ToggleTerm', { desc = 'Toggle Terminal' }) + map('t', 'kk', [[]] .. ':ToggleTerm', { desc = 'Toggle Terminal' }) -- new terminal map('n', 'kn', terminal_utils.new_terminal, { desc = 'New terminal' }) map('t', 'kn', terminal_utils.new_terminal, { desc = 'New terminal' }) -- select terminal to open - map('n', 'kk', ':TermSelect', { desc = 'Choose open terminal' }) - map('t', 'kk', [[]] .. ':TermSelect', { desc = 'Choose open terminal' }) + map('n', 'kf', ':TermSelect', { desc = 'Choose open terminal' }) + map('t', 'kf', [[]] .. ':TermSelect', { desc = 'Choose open terminal' }) -- rename terminal map('n', 'kr', ':ToggleTermSetName', { desc = 'Rename terminal', buffer = 0 }) @@ -37,8 +37,6 @@ return { -- terminal only mappings vim.cmd("autocmd! TermOpen term://* lua require('cosmic.plugins.toggleterm.utils').set_terminal_keymaps()") - - -- @TODO: close all end, lazy = false, } diff --git a/lua/cosmic/plugins/which-key/init.lua b/lua/cosmic/plugins/which-key/init.lua index 6378e57..57a406e 100644 --- a/lua/cosmic/plugins/which-key/init.lua +++ b/lua/cosmic/plugins/which-key/init.lua @@ -36,6 +36,9 @@ return { name = '+toggle', }, }, + k = { + name = '+terminal', + }, l = { name = '+lsp', d = { @@ -61,10 +64,10 @@ return { name = '+tab', }, p = { - name = '+lazy (plugins)', + name = '+plugins', }, v = { - name = '+git (vsc)', + name = '+git', t = { name = '+toggle', }, From 3e568e50f0505d02f14a1557895793a0d7eba4e5 Mon Sep 17 00:00:00 2001 From: Matthew Leong Date: Tue, 16 Jul 2024 11:19:35 -0700 Subject: [PATCH 21/22] feat: update which-key --- lazy-lock.json | 44 +++++++------- lua/cosmic/plugins/toggleterm/init.lua | 1 - lua/cosmic/plugins/which-key/init.lua | 82 ++++++++------------------ 3 files changed, 45 insertions(+), 82 deletions(-) diff --git a/lazy-lock.json b/lazy-lock.json index efc08eb..9fe45ba 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,46 +1,46 @@ { "Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" }, "LuaSnip": { "branch": "master", "commit": "ce0a05ab4e2839e1c48d072c5236cce846a387bc" }, - "SchemaStore.nvim": { "branch": "main", "commit": "b606847df9f91ab6a7d0484c2e3fae096c9fe028" }, - "auto-session": { "branch": "main", "commit": "7b1b30d3424b7ca0fb4d12ce3f3d1977cf7c5691" }, + "SchemaStore.nvim": { "branch": "main", "commit": "2580d32172f66fa37c0e57fb14e1b5bc94ed9e15" }, + "auto-session": { "branch": "main", "commit": "08c279882d4117a3e6ade1a014f7cf4af7c34fec" }, "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, "cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" }, "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" }, "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, "cosmic-ui": { "branch": "main", "commit": "c0b14531999f2bfef3d927c4dcd57a1a8fed5ee9" }, - "friendly-snippets": { "branch": "main", "commit": "682157939e57bd6a2c86277dfd4d6fbfce63dbac" }, - "gitsigns.nvim": { "branch": "main", "commit": "6b1a14eabcebbcca1b9e9163a26b2f8371364cb7" }, - "lazy.nvim": { "branch": "main", "commit": "d0921f5b9b3d2c5e09618da55a018228edcc4d16" }, - "lazydev.nvim": { "branch": "main", "commit": "78d8a11fbd02ad4eafa07dd8a43a959a69fb3bf8" }, - "lualine.nvim": { "branch": "master", "commit": "0a5a66803c7407767b799067986b4dc3036e1983" }, + "friendly-snippets": { "branch": "main", "commit": "00ebcaa159e817150bd83bfe2d51fa3b3377d5c4" }, + "gitsigns.nvim": { "branch": "main", "commit": "f4928ba14eb6c667786ac7d69927f6aee6719f1e" }, + "lazy.nvim": { "branch": "main", "commit": "d731a6b005fd239e85e555bd57362382f6c1e461" }, + "lazydev.nvim": { "branch": "main", "commit": "02f1055a777264d4b65896051ec28d0f322f7932" }, + "lualine.nvim": { "branch": "master", "commit": "544dd1583f9bb27b393f598475c89809c4d5e86b" }, "luvit-meta": { "branch": "main", "commit": "ce76f6f6cdc9201523a5875a4471dcfe0186eb60" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "37a336b653f8594df75c827ed589f1c91d91ff6c" }, - "mason.nvim": { "branch": "main", "commit": "0950b15060067f752fde13a779a994f59516ce3d" }, - "noice.nvim": { "branch": "main", "commit": "03c6a75661e68012e30b0ed81f050358b1e2233c" }, - "none-ls-extras.nvim": { "branch": "main", "commit": "336e84b9e43c0effb735b08798ffac382920053b" }, + "mason.nvim": { "branch": "main", "commit": "f96a31855fa8aea55599cea412fe611b85a874ed" }, + "noice.nvim": { "branch": "main", "commit": "3b5ea551448bd769976428458c11ae3f5849b7ba" }, + "none-ls-extras.nvim": { "branch": "main", "commit": "059bb6561b8f5ff99a7acc9262b557ebbe5c34ec" }, "none-ls-shellcheck.nvim": { "branch": "main", "commit": "0f84461241e76e376a95fb7391deac82dc3efdbf" }, - "none-ls.nvim": { "branch": "main", "commit": "0d1b3fa2ad0b371b94cb4b9a27ba6e5a1a915c91" }, + "none-ls.nvim": { "branch": "main", "commit": "2870f66b1cb263f6e0bfffdb089739b874343a3a" }, "nui.nvim": { "branch": "main", "commit": "61574ce6e60c815b0a0c4b5655b8486ba58089a1" }, - "nvim-autopairs": { "branch": "master", "commit": "c15de7e7981f1111642e7e53799e1211d4606cb9" }, - "nvim-cmp": { "branch": "main", "commit": "a110e12d0b58eefcf5b771f533fc2cf3050680ac" }, + "nvim-autopairs": { "branch": "master", "commit": "78a4507bb9ffc9b00f11ae0ac48243d00cb9194d" }, + "nvim-cmp": { "branch": "main", "commit": "d818fd0624205b34e14888358037fb6f5dc51234" }, "nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" }, - "nvim-lspconfig": { "branch": "master", "commit": "53a3c6444ec5006b567071614c83edc8ad651f6d" }, + "nvim-lspconfig": { "branch": "master", "commit": "01e08d4bf1c35e5126b2ad5209725e4c552289ab" }, "nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" }, - "nvim-tree.lua": { "branch": "master", "commit": "8b2c5c678be4b49dff6a2df794877000113fd77b" }, - "nvim-treesitter": { "branch": "master", "commit": "6cd4ce6cab184e8787f164a182954534221f2af2" }, + "nvim-tree.lua": { "branch": "master", "commit": "f9ff00bc06d7cb70548a3847d7a2a05e928bc988" }, + "nvim-treesitter": { "branch": "master", "commit": "3076b9a98a130a3601a41c5e3def1ffb8b796367" }, "nvim-treesitter-refactor": { "branch": "master", "commit": "65ad2eca822dfaec2a3603119ec3cc8826a7859e" }, - "nvim-ts-autotag": { "branch": "main", "commit": "ddfccbf0df1b9349c2b9e9b17f4afa8f9b6c1ed1" }, - "nvim-ts-context-commentstring": { "branch": "main", "commit": "cb064386e667def1d241317deed9fd1b38f0dc2e" }, + "nvim-ts-autotag": { "branch": "main", "commit": "26c365cc7d58d0da17b13e747855d331eb26fcf0" }, + "nvim-ts-context-commentstring": { "branch": "main", "commit": "6b5f95aa4d24f2c629a74f2c935c702b08dbde62" }, "nvim-web-devicons": { "branch": "master", "commit": "c0cfc1738361b5da1cd0a962dd6f774cc444f856" }, "nx.nvim": { "branch": "main", "commit": "f8a3a21b3d540889401a40d1f2803083794c0372" }, "plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" }, "popup.nvim": { "branch": "master", "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "cf48d4dfce44e0b9a2e19a008d6ec6ea6f01a83b" }, "telescope.nvim": { "branch": "master", "commit": "bfcc7d5c6f12209139f175e6123a7b7de6d9c18a" }, - "todo-comments.nvim": { "branch": "main", "commit": "51e10f838e84b4756c16311d0b1ef0972c6482d2" }, + "todo-comments.nvim": { "branch": "main", "commit": "96fee098a90e7c09c9811aa7df71d773ba8b9b53" }, "toggleterm.nvim": { "branch": "main", "commit": "cd55bf6aab3f88c259fa29ea86bbdcb1a325687d" }, - "tokyonight.nvim": { "branch": "main", "commit": "c16eaeb9eaf4eb307431e58ec6101eecf2dbe52d" }, - "vim-fugitive": { "branch": "master", "commit": "d0c1a437536778bcc8174b7cb2ffdf98f611e6fe" }, - "which-key.nvim": { "branch": "main", "commit": "0099511294f16b81c696004fa6a403b0ae61f7a0" } + "tokyonight.nvim": { "branch": "main", "commit": "6adfcde66e8af2f22dd5d76060980abd8daa0df8" }, + "vim-fugitive": { "branch": "master", "commit": "8c8cdf4405cb8bdb70dd9812a33bb52363a87dbc" }, + "which-key.nvim": { "branch": "main", "commit": "a1770d266f58499ca03e0b83272f07003052dbed" } } \ No newline at end of file diff --git a/lua/cosmic/plugins/toggleterm/init.lua b/lua/cosmic/plugins/toggleterm/init.lua index 2fd35df..dd5f690 100644 --- a/lua/cosmic/plugins/toggleterm/init.lua +++ b/lua/cosmic/plugins/toggleterm/init.lua @@ -1,6 +1,5 @@ local user_config = require('cosmic.core.user') local map = require('cosmic.utils').set_keymap -local create_buf_map = require('cosmic.utils').create_buf_map return { 'akinsho/toggleterm.nvim', config = function() diff --git a/lua/cosmic/plugins/which-key/init.lua b/lua/cosmic/plugins/which-key/init.lua index 57a406e..2730f9e 100644 --- a/lua/cosmic/plugins/which-key/init.lua +++ b/lua/cosmic/plugins/which-key/init.lua @@ -4,12 +4,11 @@ return { config = function() local wk = require('which-key') wk.setup({ - window = { + win = { border = user_config.border, - position = 'bottom', - margin = { 1, 0, 1, 0 }, - padding = { 3, 2, 3, 2 }, - winblend = 20, + wo = { + winblend = 20, + }, }, layout = { height = { min = 4, max = 25 }, @@ -19,60 +18,25 @@ return { }, }) - wk.register({ - [''] = { - b = { - name = '+buffer', - }, - c = { - name = '+quickfix', - }, - f = { - name = '+find', - }, - h = { - name = '+gitsigns', - t = { - name = '+toggle', - }, - }, - k = { - name = '+terminal', - }, - l = { - name = '+lsp', - d = { - name = '+diagnostics', - }, - t = { - name = '+toggle', - }, - w = { - name = '+workspace', - }, - }, - g = { - name = '+goto', - }, - n = { - name = '+tree', - }, - s = { - name = '+session', - }, - t = { - name = '+tab', - }, - p = { - name = '+plugins', - }, - v = { - name = '+git', - t = { - name = '+toggle', - }, - }, - }, + wk.add({ + { 'b', group = 'buffer' }, + { 'c', group = 'quickfix' }, + { 'f', group = 'find' }, + { 'h', group = 'gitsigns' }, + { 'h', group = 'gitsigns' }, + { 'ht', group = 'toggle' }, + { 'k', group = 'terminal' }, + { 'l', group = 'lsp' }, + { 'ld', group = 'diagnostics' }, + { 'lt', group = 'toggle' }, + { 'lw', group = 'workspace' }, + { 'g', group = 'goto' }, + { 'n', group = 'tree' }, + { 's', group = 'session' }, + { 't', group = 'tab' }, + { 'p', group = 'plugins' }, + { 'v', group = 'git' }, + { 'vt', group = 'toggle' }, }) end, event = 'VeryLazy', From 383f1249c3e0c0c737b3fcbe5f6beb9f9af7d4c7 Mon Sep 17 00:00:00 2001 From: Matthew Leong Date: Wed, 28 Aug 2024 11:56:32 -0700 Subject: [PATCH 22/22] feat: update hotkeys --- lazy-lock.json | 56 ++++++++++++------------- lua/cosmic/core/mappings.lua | 19 +++------ lua/cosmic/plugins/gitsigns/init.lua | 24 +++++------ lua/cosmic/plugins/toggleterm/init.lua | 14 ++----- lua/cosmic/plugins/toggleterm/utils.lua | 8 +++- lua/cosmic/plugins/which-key/init.lua | 28 ++++++------- 6 files changed, 69 insertions(+), 80 deletions(-) diff --git a/lazy-lock.json b/lazy-lock.json index 9fe45ba..9fab2c6 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,8 +1,8 @@ { "Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" }, - "LuaSnip": { "branch": "master", "commit": "ce0a05ab4e2839e1c48d072c5236cce846a387bc" }, - "SchemaStore.nvim": { "branch": "main", "commit": "2580d32172f66fa37c0e57fb14e1b5bc94ed9e15" }, - "auto-session": { "branch": "main", "commit": "08c279882d4117a3e6ade1a014f7cf4af7c34fec" }, + "LuaSnip": { "branch": "master", "commit": "45db5addf8d0a201e1cf247cae4cdce605ad3768" }, + "SchemaStore.nvim": { "branch": "main", "commit": "ae75241aed204d829fe15595bbf05e6fbf3d49dd" }, + "auto-session": { "branch": "main", "commit": "0e9aa77525b5217e8eacb36007edd3d02bb2a91a" }, "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, "cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" }, "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" }, @@ -10,37 +10,37 @@ "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, "cosmic-ui": { "branch": "main", "commit": "c0b14531999f2bfef3d927c4dcd57a1a8fed5ee9" }, "friendly-snippets": { "branch": "main", "commit": "00ebcaa159e817150bd83bfe2d51fa3b3377d5c4" }, - "gitsigns.nvim": { "branch": "main", "commit": "f4928ba14eb6c667786ac7d69927f6aee6719f1e" }, - "lazy.nvim": { "branch": "main", "commit": "d731a6b005fd239e85e555bd57362382f6c1e461" }, - "lazydev.nvim": { "branch": "main", "commit": "02f1055a777264d4b65896051ec28d0f322f7932" }, - "lualine.nvim": { "branch": "master", "commit": "544dd1583f9bb27b393f598475c89809c4d5e86b" }, + "gitsigns.nvim": { "branch": "main", "commit": "899e993850084ea33d001ec229d237bc020c19ae" }, + "lazy.nvim": { "branch": "main", "commit": "077102c5bfc578693f12377846d427f49bc50076" }, + "lazydev.nvim": { "branch": "main", "commit": "491452cf1ca6f029e90ad0d0368848fac717c6d2" }, + "lualine.nvim": { "branch": "master", "commit": "b431d228b7bbcdaea818bdc3e25b8cdbe861f056" }, "luvit-meta": { "branch": "main", "commit": "ce76f6f6cdc9201523a5875a4471dcfe0186eb60" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "37a336b653f8594df75c827ed589f1c91d91ff6c" }, - "mason.nvim": { "branch": "main", "commit": "f96a31855fa8aea55599cea412fe611b85a874ed" }, - "noice.nvim": { "branch": "main", "commit": "3b5ea551448bd769976428458c11ae3f5849b7ba" }, - "none-ls-extras.nvim": { "branch": "main", "commit": "059bb6561b8f5ff99a7acc9262b557ebbe5c34ec" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "482350b050bd413931c2cdd4857443c3da7d57cb" }, + "mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" }, + "noice.nvim": { "branch": "main", "commit": "448bb9c524a7601035449210838e374a30153172" }, + "none-ls-extras.nvim": { "branch": "main", "commit": "dfdc998a8c7bb728abab156942bd43ed2345845a" }, "none-ls-shellcheck.nvim": { "branch": "main", "commit": "0f84461241e76e376a95fb7391deac82dc3efdbf" }, - "none-ls.nvim": { "branch": "main", "commit": "2870f66b1cb263f6e0bfffdb089739b874343a3a" }, + "none-ls.nvim": { "branch": "main", "commit": "203f5ebde4a1af48ba2eb146401b5be2e7866942" }, "nui.nvim": { "branch": "main", "commit": "61574ce6e60c815b0a0c4b5655b8486ba58089a1" }, - "nvim-autopairs": { "branch": "master", "commit": "78a4507bb9ffc9b00f11ae0ac48243d00cb9194d" }, - "nvim-cmp": { "branch": "main", "commit": "d818fd0624205b34e14888358037fb6f5dc51234" }, + "nvim-autopairs": { "branch": "master", "commit": "19606af7c039271d5aa96bceff101e7523af3136" }, + "nvim-cmp": { "branch": "main", "commit": "ae644feb7b67bf1ce4260c231d1d4300b19c6f30" }, "nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" }, - "nvim-lspconfig": { "branch": "master", "commit": "01e08d4bf1c35e5126b2ad5209725e4c552289ab" }, + "nvim-lspconfig": { "branch": "master", "commit": "2a6f00ff66e276ab3289be8bb9f844f7ab385848" }, "nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" }, - "nvim-tree.lua": { "branch": "master", "commit": "f9ff00bc06d7cb70548a3847d7a2a05e928bc988" }, - "nvim-treesitter": { "branch": "master", "commit": "3076b9a98a130a3601a41c5e3def1ffb8b796367" }, + "nvim-tree.lua": { "branch": "master", "commit": "d43ab67d0eb4317961c5e9d15fffe908519debe0" }, + "nvim-treesitter": { "branch": "master", "commit": "7a64148896289a91cb2a92e9da3f76d5512a3fb8" }, "nvim-treesitter-refactor": { "branch": "master", "commit": "65ad2eca822dfaec2a3603119ec3cc8826a7859e" }, - "nvim-ts-autotag": { "branch": "main", "commit": "26c365cc7d58d0da17b13e747855d331eb26fcf0" }, - "nvim-ts-context-commentstring": { "branch": "main", "commit": "6b5f95aa4d24f2c629a74f2c935c702b08dbde62" }, - "nvim-web-devicons": { "branch": "master", "commit": "c0cfc1738361b5da1cd0a962dd6f774cc444f856" }, + "nvim-ts-autotag": { "branch": "main", "commit": "e239a560f338be31337e7abc3ee42515daf23f5e" }, + "nvim-ts-context-commentstring": { "branch": "main", "commit": "375c2d86cee6674afd75b4f727ce3a80065552f7" }, + "nvim-web-devicons": { "branch": "master", "commit": "3722e3d1fb5fe1896a104eb489e8f8651260b520" }, "nx.nvim": { "branch": "main", "commit": "f8a3a21b3d540889401a40d1f2803083794c0372" }, - "plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" }, + "plenary.nvim": { "branch": "master", "commit": "ec289423a1693aeae6cd0d503bac2856af74edaa" }, "popup.nvim": { "branch": "master", "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "cf48d4dfce44e0b9a2e19a008d6ec6ea6f01a83b" }, - "telescope.nvim": { "branch": "master", "commit": "bfcc7d5c6f12209139f175e6123a7b7de6d9c18a" }, - "todo-comments.nvim": { "branch": "main", "commit": "96fee098a90e7c09c9811aa7df71d773ba8b9b53" }, - "toggleterm.nvim": { "branch": "main", "commit": "cd55bf6aab3f88c259fa29ea86bbdcb1a325687d" }, - "tokyonight.nvim": { "branch": "main", "commit": "6adfcde66e8af2f22dd5d76060980abd8daa0df8" }, - "vim-fugitive": { "branch": "master", "commit": "8c8cdf4405cb8bdb70dd9812a33bb52363a87dbc" }, - "which-key.nvim": { "branch": "main", "commit": "a1770d266f58499ca03e0b83272f07003052dbed" } -} \ No newline at end of file + "telescope.nvim": { "branch": "master", "commit": "5972437de807c3bc101565175da66a1aa4f8707a" }, + "todo-comments.nvim": { "branch": "main", "commit": "8f45f353dc3649cb9b44cecda96827ea88128584" }, + "toggleterm.nvim": { "branch": "main", "commit": "137d06fb103952a0fb567882bb8527e2f92d327d" }, + "tokyonight.nvim": { "branch": "main", "commit": "b0e7c7382a7e8f6456f2a95655983993ffda745e" }, + "vim-fugitive": { "branch": "master", "commit": "0444df68cd1cdabc7453d6bd84099458327e5513" }, + "which-key.nvim": { "branch": "main", "commit": "6c1584eb76b55629702716995cca4ae2798a9cca" } +} diff --git a/lua/cosmic/core/mappings.lua b/lua/cosmic/core/mappings.lua index a36b4ac..c83fdcf 100644 --- a/lua/cosmic/core/mappings.lua +++ b/lua/cosmic/core/mappings.lua @@ -9,9 +9,11 @@ map('n', 'cp', ':cprevzz', { desc = 'Prev Item' }) map('n', 'cn', ':cnextzz', { desc = 'Next Item' }) -- buffer navigation -map('n', 'bp', ':bprev', { desc = 'Prev buffer' }) -map('n', 'bn', ':bnext', { desc = 'Next buffer' }) -map('n', 'bd', ':bdelete', { desc = 'Delete buffer' }) +map('n', 'kp', ':bprev', { desc = 'Prev buffer' }) +map('n', 'kn', ':bnext', { desc = 'Next buffer' }) +map('n', 'kd', ':bdelete', { desc = 'Delete buffer' }) +map('n', 'kc', ':new', { desc = 'New buffer' }) +map('n', 'ko', '%bd|e#', { desc = 'Close all buffers but the current one' }) -- https://stackoverflow.com/a/42071865/516188 -- tab navigation map('n', 'tp', ':tabprevious', { desc = 'Prev tab' }) @@ -33,14 +35,3 @@ map('n', '', ':resize -2', { desc = 'Resize -2' }) map('n', '', ':resize +2', { desc = 'Resize +2' }) map('n', '', ':vertical resize -2', { desc = 'Vertical Resize -2' }) map('n', '', ':vertical resize +2', { desc = 'Vertical Resize +2' }) - --- map('n', '', [[wincmd h]], {}) --- map('n', '', [[wincmd j]], {}) --- map('n', '', [[wincmd k]], {}) --- map('n', '', [[wincmd l]], {}) ---[[ map('n', '', 'h', {}) ]] ---[[ map('n', '', 'j', {}) ]] ---[[ map('n', '', 'k', {}) ]] ---[[ map('n', '', 'l', {}) ]] - -map('n', 'bo', '%bd|e#', { desc = 'Close all buffers but the current one' }) -- https://stackoverflow.com/a/42071865/516188 diff --git a/lua/cosmic/plugins/gitsigns/init.lua b/lua/cosmic/plugins/gitsigns/init.lua index ba11626..1e71bc4 100644 --- a/lua/cosmic/plugins/gitsigns/init.lua +++ b/lua/cosmic/plugins/gitsigns/init.lua @@ -53,30 +53,30 @@ return { }) -- Actions - map('n', 'hs', gs.stage_hunk, { desc = 'Stage hunk' }) - map('n', 'hr', gs.reset_hunk, { desc = 'Reset hunk' }) - map('v', 'hs', function() + map('n', 'vs', gs.stage_hunk, { desc = 'Stage hunk' }) + map('n', 'vr', gs.reset_hunk, { desc = 'Reset hunk' }) + map('v', 'vs', function() gs.stage_hunk({ vim.fn.line('.'), vim.fn.line('v') }) end, { desc = 'Stage hunk selection', }) - map('v', 'hr', function() + map('v', 'vr', function() gs.reset_hunk({ vim.fn.line('.'), vim.fn.line('v') }) end, { desc = 'Reset hunk selection', }) - map('n', 'hS', gs.stage_buffer, { desc = 'Stage buffer' }) - map('n', 'hu', gs.undo_stage_hunk, { desc = 'Undo stage hunk' }) - map('n', 'hR', gs.reset_buffer, { desc = 'Reset buffer' }) - map('n', 'hp', gs.preview_hunk, { desc = 'Preview hunk' }) - map('n', 'hb', function() + map('n', 'vS', gs.stage_buffer, { desc = 'Stage buffer' }) + map('n', 'vu', gs.undo_stage_hunk, { desc = 'Undo stage hunk' }) + map('n', 'vR', gs.reset_buffer, { desc = 'Reset buffer' }) + map('n', 'vp', gs.preview_hunk, { desc = 'Preview hunk' }) + map('n', 'vb', function() gs.blame_line({ full = true }) end, { desc = 'Blame line', }) - map('n', 'htb', gs.toggle_current_line_blame, { desc = 'Toggle blame current line' }) - map('n', 'hd', gs.diffthis, { desc = 'Diff buffer' }) - map('n', 'hD', function() + map('n', 'vtb', gs.toggle_current_line_blame, { desc = 'Toggle blame current line' }) + map('n', 'vd', gs.diffthis, { desc = 'Diff buffer' }) + map('n', 'vD', function() gs.diffthis('~') end, { desc = 'Diff project' }) map('n', 'td', gs.toggle_deleted, { desc = 'Toggle delete' }) diff --git a/lua/cosmic/plugins/toggleterm/init.lua b/lua/cosmic/plugins/toggleterm/init.lua index dd5f690..475c055 100644 --- a/lua/cosmic/plugins/toggleterm/init.lua +++ b/lua/cosmic/plugins/toggleterm/init.lua @@ -16,23 +16,17 @@ return { }) local terminal_utils = require('cosmic.plugins.toggleterm.utils') - map('t', 'k', [[]], { desc = 'Visual mode' }) - -- toggle terminals - map('n', 'kk', ':ToggleTerm', { desc = 'Toggle Terminal' }) - map('t', 'kk', [[]] .. ':ToggleTerm', { desc = 'Toggle Terminal' }) + map('n', 'xx', ':ToggleTerm', { desc = 'Toggle Terminal' }) -- new terminal - map('n', 'kn', terminal_utils.new_terminal, { desc = 'New terminal' }) - map('t', 'kn', terminal_utils.new_terminal, { desc = 'New terminal' }) + map('n', 'xn', terminal_utils.new_terminal, { desc = 'New terminal' }) -- select terminal to open - map('n', 'kf', ':TermSelect', { desc = 'Choose open terminal' }) - map('t', 'kf', [[]] .. ':TermSelect', { desc = 'Choose open terminal' }) + map('n', 'fx', ':TermSelect', { desc = 'Find open terminal' }) -- rename terminal - map('n', 'kr', ':ToggleTermSetName', { desc = 'Rename terminal', buffer = 0 }) - map('t', 'kr', [[]] .. ':ToggleTermSetName', { desc = 'Rename terminal', buffer = 0 }) + map('n', 'xr', ':ToggleTermSetName', { desc = 'Rename terminal', buffer = 0 }) -- terminal only mappings vim.cmd("autocmd! TermOpen term://* lua require('cosmic.plugins.toggleterm.utils').set_terminal_keymaps()") diff --git a/lua/cosmic/plugins/toggleterm/utils.lua b/lua/cosmic/plugins/toggleterm/utils.lua index 79ff942..9a5b8d9 100644 --- a/lua/cosmic/plugins/toggleterm/utils.lua +++ b/lua/cosmic/plugins/toggleterm/utils.lua @@ -7,6 +7,12 @@ function M.new_terminal() terminal:toggle() end -function M.set_terminal_keymaps() end +function M.set_terminal_keymaps() + map('t', '', [[]], { desc = 'Visual mode' }) + -- map('t', 'xx', [[]] .. ':ToggleTerm', { desc = 'Toggle Terminal' }) + -- map('t', 'xn', M.new_terminal, { desc = 'New terminal' }) + -- map('t', 'fx', [[]] .. ':TermSelect', { desc = 'Find open terminal' }) + -- map('t', 'xr', [[]] .. ':ToggleTermSetName', { desc = 'Rename terminal', buffer = 0 }) +end return M diff --git a/lua/cosmic/plugins/which-key/init.lua b/lua/cosmic/plugins/which-key/init.lua index 2730f9e..d86883c 100644 --- a/lua/cosmic/plugins/which-key/init.lua +++ b/lua/cosmic/plugins/which-key/init.lua @@ -9,9 +9,10 @@ return { wo = { winblend = 20, }, + padding = { 3, 5 }, -- extra window padding [top/bottom, right/left] }, layout = { - height = { min = 4, max = 25 }, + height = { min = 10, max = 25 }, width = { min = 20, max = 50 }, spacing = 8, align = 'center', @@ -19,23 +20,20 @@ return { }) wk.add({ - { 'b', group = 'buffer' }, - { 'c', group = 'quickfix' }, - { 'f', group = 'find' }, - { 'h', group = 'gitsigns' }, - { 'h', group = 'gitsigns' }, - { 'ht', group = 'toggle' }, - { 'k', group = 'terminal' }, - { 'l', group = 'lsp' }, + { 'k', group = 'buffer' }, + { 'c', group = 'quickfix' }, + { 'f', group = 'find' }, + { 'g', group = 'goto' }, + { 'x', group = 'terminal' }, + { 'l', group = 'lsp' }, { 'ld', group = 'diagnostics' }, { 'lt', group = 'toggle' }, { 'lw', group = 'workspace' }, - { 'g', group = 'goto' }, - { 'n', group = 'tree' }, - { 's', group = 'session' }, - { 't', group = 'tab' }, - { 'p', group = 'plugins' }, - { 'v', group = 'git' }, + { 'n', group = 'tree' }, + { 'p', group = 'plugins' }, + { 's', group = 'session' }, + { 't', group = 'tab' }, + { 'v', group = 'git' }, { 'vt', group = 'toggle' }, }) end,