aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configs/nvim/init.lua152
-rw-r--r--configs/nvim/lazy-lock.json20
-rw-r--r--configs/nvim/lua/crupest/constants.lua32
-rw-r--r--configs/nvim/lua/crupest/nvim.lua114
-rw-r--r--configs/nvim/lua/crupest/nvim/fs.lua167
-rw-r--r--configs/nvim/lua/crupest/nvim/keymap.lua9
-rw-r--r--configs/nvim/lua/crupest/nvim/lsp/c.lua7
-rw-r--r--configs/nvim/lua/crupest/nvim/lsp/csharp.lua14
-rw-r--r--configs/nvim/lua/crupest/nvim/lsp/deno.lua13
-rw-r--r--configs/nvim/lua/crupest/nvim/lsp/frontend.lua28
-rw-r--r--configs/nvim/lua/crupest/nvim/lsp/init.lua34
-rw-r--r--configs/nvim/lua/crupest/nvim/lsp/lua.lua4
-rw-r--r--configs/nvim/lua/crupest/nvim/lsp/rust.lua13
-rw-r--r--configs/nvim/lua/crupest/nvim/plugins/cmp.lua31
-rw-r--r--configs/nvim/lua/crupest/nvim/plugins/format.lua76
-rw-r--r--configs/nvim/lua/crupest/nvim/plugins/formatter.lua114
-rw-r--r--configs/nvim/lua/crupest/nvim/plugins/gitsign.lua51
-rw-r--r--configs/nvim/lua/crupest/nvim/plugins/init.lua11
-rw-r--r--configs/nvim/lua/crupest/nvim/plugins/lint.lua39
-rw-r--r--configs/nvim/lua/crupest/nvim/plugins/others.lua20
-rw-r--r--configs/nvim/lua/crupest/nvim/plugins/snip.lua5
-rw-r--r--configs/nvim/lua/crupest/nvim/plugins/telescope.lua11
-rw-r--r--configs/nvim/lua/crupest/system.lua7
-rw-r--r--configs/nvim/lua/crupest/utils/find.lua (renamed from configs/nvim/lua/crupest/system/find.lua)7
-rw-r--r--configs/nvim/lua/crupest/utils/fs.lua (renamed from configs/nvim/lua/crupest/system/fs.lua)0
-rw-r--r--configs/nvim/lua/crupest/utils/nvim.lua44
-rw-r--r--configs/nvim/lua/crupest/utils/table.lua (renamed from configs/nvim/lua/crupest/table.lua)0
-rw-r--r--configs/nvim/lua/plugins.lua15
28 files changed, 268 insertions, 770 deletions
diff --git a/configs/nvim/init.lua b/configs/nvim/init.lua
index 92cfedb..a2b84aa 100644
--- a/configs/nvim/init.lua
+++ b/configs/nvim/init.lua
@@ -19,10 +19,7 @@ if is_win then
let &shellpipe = '2>&1 | %%{ "$_" } | tee %s; exit $LastExitCode'
set shellquote= shellxquote=
]])
-else
- vim.cmd([[
- let &shell='bash --login'
- ]])
+ vim.opt.completeslash = 'slash'
end
-- spellchecker: enable
@@ -36,11 +33,6 @@ vim.opt.wrap = false;
vim.opt.number = true;
-- spellchecker: enable
-if is_win then
- -- spellchecker: disable-next-line
- vim.opt.completeslash = 'slash'
-end
-
vim.g.load_doxygen_syntax = true;
vim.g.doxygen_javadoc_autobrief = false;
@@ -63,142 +55,6 @@ require("lazy").setup("plugins")
vim.cmd("colorscheme catppuccin-macchiato")
--- setup neo-tree
-require("neo-tree").setup({
- filesystem = {
- filtered_items = {
- hide_dotfiles = false,
- hide_gitignored = false,
- hide_hidden = false, -- only works on Windows for hidden files/directories
- },
- use_libuv_file_watcher = true
- }
-})
-
--- setup lualine
-require('lualine').setup({
- options = {
- theme = "auto", -- Can also be "auto" to detect automatically.
- }
-})
-
--- setup toggleterm
-require("toggleterm").setup {
- open_mapping = "<C-`>",
- start_in_insert = false,
-}
-
--- setup autopairs
-require("nvim-autopairs").setup {}
-
--- setup gitsigns
-require('gitsigns').setup()
-
--- setup format
-local format = require("crupest.nvim.plugins.format")
-format.setup_format()
-
--- setup lint
-local lint = require("crupest.nvim.plugins.lint")
-lint.setup_lint()
-
--- setup nvim-cmp
-local snip = require("crupest.nvim.plugins.snip")
-local luasnip = snip.luasnip
-snip.setup_snip()
-
-local cmp = require("cmp")
-
-cmp.setup({
- snippet = {
- expand = function(args)
- luasnip.lsp_expand(args.body)
- end,
- },
- window = {
- },
- mapping = cmp.mapping.preset.insert({
- ['<C-j>'] = cmp.mapping.select_next_item(),
- ['<C-k>'] = cmp.mapping.select_prev_item(),
- ['<C-b>'] = cmp.mapping.scroll_docs(-4),
- ['<C-f>'] = cmp.mapping.scroll_docs(4),
- ['<C-Space>'] = cmp.mapping.complete(),
- ['<C-e>'] = cmp.mapping.abort(),
- ['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
- ['<C-y>'] = cmp.mapping.confirm({ select = true })
- }),
- sources = cmp.config.sources({
- { name = 'nvim_lsp' },
- { name = 'luasnip' },
- }, {
- { name = 'buffer' },
- })
-})
-
-
-require("crupest.nvim.lsp.c").setup_lsp_c()
-require("crupest.nvim.lsp.lua").setup_lsp_lua()
-require("crupest.nvim.lsp.deno").setup_lsp_deno()
-require("crupest.nvim.lsp.frontend").setup_lsp_frontend()
-require("crupest.nvim.lsp.csharp").setup_lsp_csharp()
--- There is some problem of rust analyzer.
--- require("crupest.nvim.lsp.rust").setup_lsp_rust()
-
--- Use LspAttach autocommand to only map the following keys
--- after the language server attaches to the current buffer
-vim.api.nvim_create_autocmd('LspAttach', {
- group = vim.api.nvim_create_augroup('UserLspConfig', {}),
- callback = function(ev)
- -- Enable completion triggered by <c-x><c-o>
- vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc'
-
- -- Buffer local mappings.
- -- See `:help vim.lsp.*` for documentation on any of the below functions
- local opts = { buffer = ev.buf }
- vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts)
- vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts)
- vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts)
- vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts)
- vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, opts)
- vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, opts)
- vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, opts)
- vim.keymap.set('n', '<space>wl', function()
- print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
- end, opts)
- vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, opts)
- vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, opts)
- vim.keymap.set({ 'n', 'v' }, '<space>ca', vim.lsp.buf.code_action, opts)
- vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts)
-
- vim.keymap.set('n', '<space>f', format.do_format, opts)
- end,
-})
-
-
--- For terminal emulator
-vim.keymap.set('t', '<leader><esc>', [[<C-\><C-n>]])
-
--- setup keymap for telescope
-local builtin = require('telescope.builtin')
-vim.keymap.set('n', '<leader>f', builtin.find_files, {})
-vim.keymap.set('n', '<leader>g', builtin.live_grep, {})
-vim.keymap.set('n', '<leader>b', builtin.buffers, {})
-vim.keymap.set('n', '<leader>h', builtin.help_tags, {})
-
--- setup keymap for tree
-vim.keymap.set('n', '<leader>t', "<cmd>Neotree toggle<cr>", {})
-
--- See `:help vim.diagnostic.*` for documentation on any of the below functions
-vim.keymap.set('n', '<leader>le', vim.diagnostic.open_float)
-vim.keymap.set('n', '<leader>l[', vim.diagnostic.goto_prev)
-vim.keymap.set('n', '<leader>l]', vim.diagnostic.goto_next)
-vim.keymap.set('n', '<leader>ll', vim.diagnostic.setloclist)
-vim.keymap.set('n', '<leader>lr', lint.run_lint)
-
-vim.keymap.set("n", "<c-tab>", "<cmd>bnext<cr>")
-vim.keymap.set("n", "<c-s-tab>", "<cmd>bNext<cr>")
-vim.keymap.set("n", "<s-tab>", "<c-o>")
-vim.keymap.set("n", "<c-q>", require("crupest.nvim").win_close_buf)
-vim.keymap.set("n", "<esc>", require("crupest.nvim").close_float)
-
-require("crupest.nvim.fs").setup_filesystem_user_commands()
+require("crupest.nvim.lsp").setup()
+require("crupest.nvim.plugins").setup()
+require("crupest.nvim.keymap").setup()
diff --git a/configs/nvim/lazy-lock.json b/configs/nvim/lazy-lock.json
index b16a6e0..59f5473 100644
--- a/configs/nvim/lazy-lock.json
+++ b/configs/nvim/lazy-lock.json
@@ -1,24 +1,22 @@
{
- "LuaSnip": { "branch": "master", "commit": "7ad2eaeaca56d6ed63acacbfc114b99f1f67b982" },
+ "LuaSnip": { "branch": "master", "commit": "45db5addf8d0a201e1cf247cae4cdce605ad3768" },
"catppuccin": { "branch": "main", "commit": "4fd72a9ab64b393c2c22b168508fd244877fec96" },
"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" },
- "formatter.nvim": { "branch": "master", "commit": "ad246d34ce7a32f752071ed81b09b94e6b127fad" },
- "gitsigns.nvim": { "branch": "main", "commit": "562dc47189ad3c8696dbf460d38603a74d544849" },
- "lazy.nvim": { "branch": "main", "commit": "077102c5bfc578693f12377846d427f49bc50076" },
+ "gitsigns.nvim": { "branch": "main", "commit": "1ef74b546732f185d0f806860fa5404df7614f28" },
+ "lazy.nvim": { "branch": "main", "commit": "48b52b5cfcf8f88ed0aff8fde573a5cc20b1306d" },
"lualine.nvim": { "branch": "master", "commit": "b431d228b7bbcdaea818bdc3e25b8cdbe861f056" },
- "neo-tree.nvim": { "branch": "main", "commit": "206241e451c12f78969ff5ae53af45616ffc9b72" },
+ "neo-tree.nvim": { "branch": "main", "commit": "0774fa2085c62a147fcc7b56f0ac37053cc80217" },
"nui.nvim": { "branch": "main", "commit": "61574ce6e60c815b0a0c4b5655b8486ba58089a1" },
- "nvim-autopairs": { "branch": "master", "commit": "19606af7c039271d5aa96bceff101e7523af3136" },
+ "nvim-autopairs": { "branch": "master", "commit": "fd2badc24e675f947162a16c124d395bde80dbd6" },
"nvim-cmp": { "branch": "main", "commit": "ae644feb7b67bf1ce4260c231d1d4300b19c6f30" },
- "nvim-lint": { "branch": "master", "commit": "debabca63c0905b59ce596a55a8e33eafdf66342" },
- "nvim-lspconfig": { "branch": "master", "commit": "911167921d49cd5c1c9b2436031d0da3945e787f" },
- "nvim-web-devicons": { "branch": "master", "commit": "3722e3d1fb5fe1896a104eb489e8f8651260b520" },
- "omnisharp-extended-lsp.nvim": { "branch": "main", "commit": "aad7bf06b4ca0de816b919d475a75b30f5f62b61" },
+ "nvim-lint": { "branch": "master", "commit": "a7ce9c78a7c710c28bee56dfab10a5c0c80b7fb5" },
+ "nvim-lspconfig": { "branch": "master", "commit": "bdbc65aadc708ce528efb22bca5f82a7cca6b54d" },
+ "nvim-web-devicons": { "branch": "master", "commit": "9793801f974bba70e4ac5d7eae6c4f5659993d8e" },
"plenary.nvim": { "branch": "master", "commit": "ec289423a1693aeae6cd0d503bac2856af74edaa" },
"telescope.nvim": { "branch": "master", "commit": "5972437de807c3bc101565175da66a1aa4f8707a" },
"toggleterm.nvim": { "branch": "main", "commit": "137d06fb103952a0fb567882bb8527e2f92d327d" }
-} \ No newline at end of file
+}
diff --git a/configs/nvim/lua/crupest/constants.lua b/configs/nvim/lua/crupest/constants.lua
deleted file mode 100644
index 89ae968..0000000
--- a/configs/nvim/lua/crupest/constants.lua
+++ /dev/null
@@ -1,32 +0,0 @@
-local config_patterns = {
- cspell = {
- ".cspell.json",
- "cspell.json",
- ".cSpell.json",
- "cSpell.json",
- "cspell.config.js",
- "cspell.config.cjs",
- "cspell.config.json",
- "cspell.config.yaml",
- "cspell.config.yml",
- "cspell.yaml",
- "cspell.yml",
- },
- nodejs = {
- "package.json"
- },
- deno = {
- "deno.json", "deno.jsonc"
- }
-}
-
-local filetype_collections = {
- js_ts = { 'javascript', 'javascriptreact', 'typescript', 'typescriptreact' },
- html_css = { 'html', 'css' },
- frontend = { 'javascript', 'javascriptreact', 'typescript', 'typescriptreact', 'html', 'css' },
-}
-
-return {
- config_patterns = config_patterns,
- filetype_collections = filetype_collections,
-}
diff --git a/configs/nvim/lua/crupest/nvim.lua b/configs/nvim/lua/crupest/nvim.lua
deleted file mode 100644
index 505f06c..0000000
--- a/configs/nvim/lua/crupest/nvim.lua
+++ /dev/null
@@ -1,114 +0,0 @@
-local function list_listed_bufs()
- local bufs = vim.api.nvim_list_bufs()
- local result = {}
- for _, v in ipairs(bufs) do
- if vim.fn.buflisted(v) ~= 0 then
- table.insert(result, v)
- end
- end
- return result
-end
-
-local function get_previous_buffer(buf)
- local bufs = list_listed_bufs()
-
- -- no buffers at all
- if #bufs == 0 then return nil end
-
- -- find the buf in bufs
- local index = 0
- for i, v in ipairs(bufs) do
- if buf == v then
- index = i
- break
- end
- end
-
- -- it's the only one
- if #bufs == 1 and index == 1 then
- return nil
- end
-
- -- it's the first one
- if index == 1 then
- return bufs[2]
- end
-
- return bufs[index - 1]
-end
-
--- list the windows that are currently editing the given buffer
-local function list_wins_editing_buf(buf)
- local wins = vim.api.nvim_list_wins()
- local result = {}
- for _, win in ipairs(wins) do
- if vim.api.nvim_win_get_buf(win) == buf then
- table.insert(result, win)
- end
- end
- return result
-end
-
-local function buf_is_normal(buf)
- return vim.fn.bufexists(buf) ~= 0 and vim.fn.buflisted(buf) ~= 0
-end
-
--- Delete current buffer and jump back.
--- If no previous jump, switch to previous buffer.
--- If no previous buffer (no other buffers), create a unnamed one. (So the window does not quit.)
-local function win_close_buf()
- local buf = vim.api.nvim_get_current_buf()
-
- if not buf_is_normal(buf) then
- return
- end
-
- local jumps_info = vim.fn.getjumplist()
-
- local old_jumps = { unpack(jumps_info[1], 1, jumps_info[2]) }
- while #old_jumps ~= 0 do
- local last_jump = old_jumps[#old_jumps]
- if last_jump.bufnr ~= buf and vim.fn.bufexists(last_jump.bufnr) ~= 0 and vim.fn.buflisted(last_jump.bufnr) ~= 0 then
- break
- end
- table.remove(old_jumps, #old_jumps)
- end
-
- if #old_jumps ~= 0 then
- local last_jump = old_jumps[#old_jumps]
- vim.api.nvim_win_set_buf(0, last_jump.bufnr)
- vim.api.nvim_win_set_cursor(0, {last_jump.lnum, last_jump.col})
- else
- local previous_buf = get_previous_buffer(buf)
- if previous_buf then
- vim.api.nvim_win_set_buf(0, previous_buf)
- else
- local new_buf = vim.api.nvim_create_buf(true, false)
- vim.api.nvim_win_set_buf(0, new_buf)
- end
- end
-
- local wins = list_wins_editing_buf(buf)
- if #wins == 0 then
- vim.api.nvim_buf_delete(buf, {})
- end
-end
-
-local function close_float()
- local wins = vim.api.nvim_list_wins()
- for _, v in ipairs(wins) do
- if vim.api.nvim_win_get_config(v).relative ~= '' then
- vim.api.nvim_win_close(v, false)
- end
- end
-end
-
-return {
- list_listed_bufs = list_listed_bufs,
- buf_is_normal = buf_is_normal,
- get_previous_buffer = get_previous_buffer,
- list_wins_editing_buf = list_wins_editing_buf,
- win_close_buf = win_close_buf,
- close_float = close_float,
-}
-
diff --git a/configs/nvim/lua/crupest/nvim/fs.lua b/configs/nvim/lua/crupest/nvim/fs.lua
deleted file mode 100644
index 2410535..0000000
--- a/configs/nvim/lua/crupest/nvim/fs.lua
+++ /dev/null
@@ -1,167 +0,0 @@
-local crupest_nvim = require("crupest.nvim");
-local fs = require("crupest.system.fs");
-local full_path = require("crupest.system").full_path;
-
-local list_listed_bufs = crupest_nvim.list_listed_bufs;
-local buf_is_normal = crupest_nvim.buf_is_normal;
-
--- There are two situations.
--- 1. the new path is not a dir, then it is used
--- 2. the new path is a dir, then it is appended with the last name of old path, to create a new valid file path
-local function coerce_path_for_dir(old, new)
- if fs.isdir(new) then
- return new .. "/" .. vim.fn.fnamemodify(old, ":t")
- end
- return new
-end
-
-local function do_mv_file(old, new, overwrite)
- new = coerce_path_for_dir(old, new)
-
- if full_path(old) == full_path(new) then
- vim.notify("Paths are identical. Do nothing.", vim.log.levels.WARN)
- return false
- end
-
- if not fs.isfile(old) then
- vim.notify("Not exists or not a file. Can't move.", vim.log.levels.ERROR)
- return false
- end
-
- if not overwrite and fs.exist(new) then
- vim.notify("Target path exists.", vim.log.levels.ERROR)
- return false
- end
-
- fs.move(old, new)
- vim.notify("File moved.")
-
- return new
-end
-
-local function mv_file(old, new, overwrite)
- new = do_mv_file(old, new, overwrite)
- if not new then return end
-
- local bufs = list_listed_bufs()
- for _, b in ipairs(bufs) do
- if full_path(vim.api.nvim_buf_get_name(b)) == full_path(old) then
- vim.api.nvim_buf_set_name(b, new)
- end
- end
-end
-
-local function mv_buf_file(buf, new, overwrite)
- if not buf_is_normal(buf) then
- vim.notify("Buf is not a normal buffer, can't move it.", vim.log.levels.ERROR)
- return
- end
-
- local name = vim.api.nvim_buf_get_name(buf)
-
- new = do_mv_file(name, new, overwrite)
- if not new then return end
-
- vim.api.nvim_buf_set_name(buf, new)
-end
-
-local function mv_dir(old_dir, new_dir, overwrite)
- new_dir = coerce_path_for_dir(old_dir, new_dir)
-
- if full_path(old_dir) == full_path(new_dir) then
- vim.notify("Paths are identical. Do nothing.", vim.log.levels.WARN)
- return
- end
-
- if not fs.isdir(old_dir) then
- vim.notify("Not exist or not a dir. Can't move.", vim.log.levels.ERROR)
- end
-
- if not overwrite and fs.exist(new_dir) then
- vim.notify("Target path exists.", vim.log.levels.ERROR)
- return
- end
-
- if fs.isdir(old_dir) then
- fs.move(old_dir, new_dir)
- vim.notify("Dir moved.")
- end
-
- local bufs = list_listed_bufs()
-
- for _, buf in ipairs(bufs) do
- local name = vim.api.nvim_buf_get_name(buf)
- local full_name = full_path(name)
- local old_dir_full = full_path(old_dir)
- if string.find(full_name, old_dir_full, 1, true) == 1 then
- local new_name = new_dir .. string.sub(full_name, #old_dir_full + 1)
- vim.api.nvim_buf_set_name(buf, new_name)
- end
- end
-end
-
-local function rename_file(old, new, overwrite)
- local dir = vim.fn.fnamemodify(old, ":h")
- mv_file(old, dir .. "/" .. new, overwrite)
-end
-
-local function rename_buf_file(buf, new_name, overwrite)
- local old_path = vim.api.nvim_buf_get_name(buf)
- local dir = vim.fn.fnamemodify(old_path, ":h")
- mv_buf_file(buf, dir .. "/" .. new_name, overwrite)
-end
-
-local function setup_filesystem_user_commands()
- vim.api.nvim_create_user_command("Mv", function(opts)
- mv_buf_file(vim.api.nvim_get_current_buf(), opts.fargs[1])
- end, {
- nargs = 1,
- complete = "file"
- })
-
- vim.api.nvim_create_user_command("MvFile", function(opts)
- if (#opts.fargs ~= 2) then
- vim.notify("MvFile accepts exactly two arguments, old file and new file.")
- end
- mv_file(opts.fargs[1], opts.fargs[2])
- end, {
- nargs = "+",
- complete = "file"
- })
-
- vim.api.nvim_create_user_command("MvDir", function(opts)
- if (#opts.fargs ~= 2) then
- vim.notify("MvDir accepts exactly two arguments, old dir and new dir.")
- end
- mv_dir(opts.fargs[1], opts.fargs[2])
- end, {
- nargs = "+",
- complete = "file"
- })
-
- vim.api.nvim_create_user_command("Rename", function(opts)
- rename_buf_file(vim.api.nvim_get_current_buf(), opts.fargs[1])
- end, {
- nargs = 1,
- complete = "file"
- })
-
- vim.api.nvim_create_user_command("RenameFile", function(opts)
- if (#opts.fargs ~= 2) then
- vim.notify("RenameFile accepts exactly two arguments, old file and new file.")
- end
- rename_file(opts.fargs[1], opts.fargs[2])
- end, {
- nargs = "+",
- complete = "file"
- })
-end
-
-return {
- mv_file = mv_file,
- mv_buf_file = mv_buf_file,
- mv_dir = mv_dir,
- rename_file = rename_file,
- rename_buf_file = rename_buf_file,
- setup_filesystem_user_commands = setup_filesystem_user_commands
-}
diff --git a/configs/nvim/lua/crupest/nvim/keymap.lua b/configs/nvim/lua/crupest/nvim/keymap.lua
new file mode 100644
index 0000000..624c04c
--- /dev/null
+++ b/configs/nvim/lua/crupest/nvim/keymap.lua
@@ -0,0 +1,9 @@
+local function setup()
+ vim.keymap.set("n", "<c-tab>", "<cmd>bnext<cr>")
+ vim.keymap.set("n", "<c-s-tab>", "<cmd>bNext<cr>")
+ vim.keymap.set("n", "<esc>", require("crupest.utils.nvim").close_float)
+end
+
+return {
+ setup = setup
+}
diff --git a/configs/nvim/lua/crupest/nvim/lsp/c.lua b/configs/nvim/lua/crupest/nvim/lsp/c.lua
index 28edae0..e0466b1 100644
--- a/configs/nvim/lua/crupest/nvim/lsp/c.lua
+++ b/configs/nvim/lua/crupest/nvim/lsp/c.lua
@@ -1,10 +1,11 @@
local lspconfig = require("lspconfig")
local capabilities = require("cmp_nvim_lsp").default_capabilities()
-local get_exe = require("crupest.system.find").get_exe
+
+local get_exe = require("crupest.utils.find").get_exe
local brew_clangd_path = "/usr/local/opt/llvm/bin/clangd"
-local function setup_lsp_c()
+local function setup()
local clangd = "clangd"
if get_exe(brew_clangd_path) then
@@ -24,5 +25,5 @@ local function setup_lsp_c()
end
return {
- setup_lsp_c = setup_lsp_c
+ setup = setup
}
diff --git a/configs/nvim/lua/crupest/nvim/lsp/csharp.lua b/configs/nvim/lua/crupest/nvim/lsp/csharp.lua
deleted file mode 100644
index f5cd29b..0000000
--- a/configs/nvim/lua/crupest/nvim/lsp/csharp.lua
+++ /dev/null
@@ -1,14 +0,0 @@
-local lspconfig = require("lspconfig");
-local capabilities = require("cmp_nvim_lsp").default_capabilities()
-
-
-local function setup_lsp_csharp()
- lspconfig.csharp_ls.setup {
- capabilities = capabilities,
- root_dir = lspconfig.util.root_pattern("*.csproj"),
- }
-end
-
-return {
- setup_lsp_csharp = setup_lsp_csharp
-}
diff --git a/configs/nvim/lua/crupest/nvim/lsp/deno.lua b/configs/nvim/lua/crupest/nvim/lsp/deno.lua
deleted file mode 100644
index d553a35..0000000
--- a/configs/nvim/lua/crupest/nvim/lsp/deno.lua
+++ /dev/null
@@ -1,13 +0,0 @@
-local lspconfig = require("lspconfig");
-local capabilities = require("cmp_nvim_lsp").default_capabilities()
-
-local function setup_lsp_deno()
- lspconfig.denols.setup {
- capabilities = capabilities,
- root_dir = lspconfig.util.root_pattern("deno.json", "deno.jsonc"),
- }
-end
-
-return {
- setup_lsp_deno = setup_lsp_deno
-}
diff --git a/configs/nvim/lua/crupest/nvim/lsp/frontend.lua b/configs/nvim/lua/crupest/nvim/lsp/frontend.lua
deleted file mode 100644
index 2573cf1..0000000
--- a/configs/nvim/lua/crupest/nvim/lsp/frontend.lua
+++ /dev/null
@@ -1,28 +0,0 @@
-local lspconfig = require("lspconfig");
-local capabilities = require("cmp_nvim_lsp").default_capabilities()
-
-local function setup_lsp_frontend()
- lspconfig.cssls.setup {
- capabilities = capabilities
- }
-
- lspconfig.html.setup {
- capabilities = capabilities
- }
-
- lspconfig.tsserver.setup {
- capabilities = capabilities,
- on_new_config = function(new_config, new_root_dir)
- local local_tsserver = require("crupest.system.find").find_npm_exe(new_root_dir, "typescript-language-server");
- if local_tsserver then
- new_config.cmd = { local_tsserver, "--stdio" }
- end
- end,
- root_dir = lspconfig.util.root_pattern("package.json"),
- single_file_support = false,
- }
-end
-
-return {
- setup_lsp_frontend = setup_lsp_frontend
-}
diff --git a/configs/nvim/lua/crupest/nvim/lsp/init.lua b/configs/nvim/lua/crupest/nvim/lsp/init.lua
new file mode 100644
index 0000000..464d7ef
--- /dev/null
+++ b/configs/nvim/lua/crupest/nvim/lsp/init.lua
@@ -0,0 +1,34 @@
+local function setup()
+ require("crupest.nvim.lsp.c").setup()
+ require("crupest.nvim.lsp.lua").setup()
+
+ -- Use LspAttach autocommand to only map the following keys
+ -- after the language server attaches to the current buffer
+ vim.api.nvim_create_autocmd('LspAttach', {
+ group = vim.api.nvim_create_augroup('UserLspConfig', {}),
+ callback = function(ev)
+ -- Buffer local mappings.
+ -- See `:help vim.lsp.*` for documentation on any of the below functions
+ local opts = { buffer = ev.buf }
+ vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts)
+ vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts)
+ vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts)
+ vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, opts)
+ vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, opts)
+ vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, opts)
+ vim.keymap.set('n', '<space>wl', function()
+ print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
+ end, opts)
+ vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, opts)
+ vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, opts)
+ vim.keymap.set({ 'n', 'v' }, '<space>ca', vim.lsp.buf.code_action, opts)
+ vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts)
+ vim.keymap.set('n', '<space>f', vim.lsp.buf.format, opts)
+ end,
+ })
+end
+
+
+return {
+ setup = setup
+}
diff --git a/configs/nvim/lua/crupest/nvim/lsp/lua.lua b/configs/nvim/lua/crupest/nvim/lsp/lua.lua
index 4df0f49..1785515 100644
--- a/configs/nvim/lua/crupest/nvim/lsp/lua.lua
+++ b/configs/nvim/lua/crupest/nvim/lsp/lua.lua
@@ -1,7 +1,7 @@
local lspconfig = require("lspconfig")
local capabilities = require("cmp_nvim_lsp").default_capabilities()
-local function setup_lsp_lua()
+local function setup()
lspconfig.lua_ls.setup {
capabilities = capabilities,
settings = {
@@ -27,5 +27,5 @@ local function setup_lsp_lua()
end
return {
- setup_lsp_lua = setup_lsp_lua
+ setup = setup
}
diff --git a/configs/nvim/lua/crupest/nvim/lsp/rust.lua b/configs/nvim/lua/crupest/nvim/lsp/rust.lua
deleted file mode 100644
index 219fc12..0000000
--- a/configs/nvim/lua/crupest/nvim/lsp/rust.lua
+++ /dev/null
@@ -1,13 +0,0 @@
-local lspconfig = require("lspconfig")
-local capabilities = require("cmp_nvim_lsp").default_capabilities()
-
-
-local function setup_lsp_rust()
- lspconfig.rust_analyzer.setup {
- capabilities = capabilities,
- }
-end
-
-return {
- setup_lsp_rust = setup_lsp_rust
-}
diff --git a/configs/nvim/lua/crupest/nvim/plugins/cmp.lua b/configs/nvim/lua/crupest/nvim/plugins/cmp.lua
new file mode 100644
index 0000000..9b1d876
--- /dev/null
+++ b/configs/nvim/lua/crupest/nvim/plugins/cmp.lua
@@ -0,0 +1,31 @@
+local function setup()
+ local cmp = require("cmp")
+ local luasnip = require("luasnip")
+
+ cmp.setup {
+ snippet = {
+ expand = function(args)
+ luasnip.lsp_expand(args.body)
+ end,
+ },
+ window = {
+ },
+ mapping = cmp.mapping.preset.insert({
+ ['<C-b>'] = cmp.mapping.scroll_docs(-4),
+ ['<C-f>'] = cmp.mapping.scroll_docs(4),
+ ['<C-Space>'] = cmp.mapping.complete(),
+ ['<C-e>'] = cmp.mapping.abort(),
+ ['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
+ }),
+ sources = cmp.config.sources({
+ { name = 'nvim_lsp' },
+ { name = 'luasnip' },
+ }, {
+ { name = 'buffer' },
+ })
+ }
+end
+
+return {
+ setup = setup
+}
diff --git a/configs/nvim/lua/crupest/nvim/plugins/format.lua b/configs/nvim/lua/crupest/nvim/plugins/format.lua
deleted file mode 100644
index 0e3320a..0000000
--- a/configs/nvim/lua/crupest/nvim/plugins/format.lua
+++ /dev/null
@@ -1,76 +0,0 @@
-local find = require("crupest.system.find")
-local constants = require("crupest.constants")
-
-local function wrap_formatter_with_exe(name, exe)
- local formatter = require('formatter.defaults.' .. name)
- formatter = formatter()
- formatter.try_node_modules = false
- formatter.exe = exe
- return formatter
-end
-
-local function set_formatters_for_filetype(filetype, formatters)
- require('formatter.config').values.filetype[filetype] = formatters
-end
-
-local my_formatters = {
- {
- name = "prettier",
- exe_places = { "npm" },
- filetypes = constants.filetype_collections.frontend,
- config_files = constants.config_patterns.nodejs,
- },
-}
-
-local function find_custom_formatter(opts)
- if opts == nil then opts = {} end
- if opts.buf == nil then opts.buf = 0 end
-
- for _, f in ipairs(my_formatters) do
- local r = find.find_exe_for_buf(opts.buf, f)
- if r ~= nil then
- local formatter = wrap_formatter_with_exe(r.name, r.exe_path)
- set_formatters_for_filetype(r.filetype, { formatter })
- return r.name
- end
- end
-
- return nil
-end
-
-
-local function do_format(opt)
- if not opt then
- opt = {}
- end
-
- if not opt.buf then
- opt.buf = 0
- end
-
- local custom_formatter = find_custom_formatter(opt)
-
- if custom_formatter then
- print("Use custom formatters: " .. custom_formatter .. ".")
- vim.cmd("Format")
- return
- end
-
- local has_lsp = vim.lsp.get_active_clients({ bufnr = 0 })
- if has_lsp then
- print("Use lsp formatter.")
- vim.lsp.buf.format { async = true }
- return
- end
-
- vim.notify("No formatters found.", vim.log.levels.ERROR);
-end
-
-local function setup_format()
- require("formatter").setup {}
-end
-
-return {
- setup_format = setup_format,
- do_format = do_format,
-}
diff --git a/configs/nvim/lua/crupest/nvim/plugins/formatter.lua b/configs/nvim/lua/crupest/nvim/plugins/formatter.lua
deleted file mode 100644
index 9f6138f..0000000
--- a/configs/nvim/lua/crupest/nvim/plugins/formatter.lua
+++ /dev/null
@@ -1,114 +0,0 @@
-local fs = require("crupest.system.fs")
-local find_npm_exe = require("crupest.system.find").find_npm_exe;
-
-local prettier_formatter = function()
- local current_buffer = vim.api.nvim_buf_get_name(0)
- local prettier_exe = find_npm_exe(current_buffer, "prettier") or "prettier"
-
- if vim.fn.has("win32") ~= 0 then
- local escape = fs.escape_space
- current_buffer = escape(current_buffer)
- prettier_exe = escape(prettier_exe)
- end
-
- return {
- exe = prettier_exe,
- args = {
- "--stdin-filepath",
- current_buffer
- },
- stdin = true,
- }
-end
-
-local formatters_for_filetype = {
- html = {
- prettier_formatter
- },
- css = {
- prettier_formatter
- },
- javascript = {
- prettier_formatter
- },
- javascriptreact = {
- prettier_formatter
- },
- typescript = {
- prettier_formatter
- },
- typescriptreact = {
- prettier_formatter
- }
-}
-
-local function get_formatter_name(formatter)
- if formatter == prettier_formatter then return "prettier" end
- return nil
-end
-
-local function get_formatter_name_list(formatters)
- local result = {}
- for _, formatter in ipairs(formatters) do
- table.insert(result, get_formatter_name(formatter))
- end
- return result
-end
-
-local function setup_formatter()
- require("formatter").setup {
- filetype = formatters_for_filetype
- }
-end
-
-
-local function get_custom_formatters(bufnr)
- local filetype = vim.api.nvim_buf_get_option(bufnr, "filetype")
- for ft, formatters in pairs(formatters_for_filetype) do
- if filetype == ft then
- return true, get_formatter_name_list(formatters)
- end
- end
- return false, {}
-end
-
-local function run_formatter(opt)
- if not opt then
- opt = {}
- end
-
- if not opt.buf then
- opt.buf = 0
- end
-
- local has_custom_formatter, formatter_names = get_custom_formatters(opt.buf)
-
- local formatter_name_str = ""
- for i, name in ipairs(formatter_names) do
- if i == 1 then
- formatter_name_str = name
- else
- formatter_name_str = formatter_name_str .. " " .. name
- end
- end
-
- if has_custom_formatter then
- print("Use custom formatters: " .. formatter_name_str .. ".")
- vim.cmd("Format")
- return
- end
-
- local has_lsp = vim.lsp.get_active_clients({ bufnr = 0 })
- if has_lsp then
- print("Use lsp formatter.")
- vim.lsp.buf.format { async = true }
- return
- end
-
- vim.notify("No formatters found.", vim.log.levels.ERROR);
-end
-
-return {
- setup_formatter = setup_formatter,
- run_formatter = run_formatter
-}
diff --git a/configs/nvim/lua/crupest/nvim/plugins/gitsign.lua b/configs/nvim/lua/crupest/nvim/plugins/gitsign.lua
new file mode 100644
index 0000000..220c91a
--- /dev/null
+++ b/configs/nvim/lua/crupest/nvim/plugins/gitsign.lua
@@ -0,0 +1,51 @@
+local function setup()
+ local gitsigns = require('gitsigns')
+ gitsigns.setup {
+ on_attach = function(bufnr)
+ local function map(mode, l, r, opts)
+ opts = opts or {}
+ opts.buffer = bufnr
+ vim.keymap.set(mode, l, r, opts)
+ end
+
+ -- Navigation
+ map('n', ']c', function()
+ if vim.wo.diff then
+ vim.cmd.normal({ ']c', bang = true })
+ else
+ gitsigns.nav_hunk('next')
+ end
+ end)
+
+ map('n', '[c', function()
+ if vim.wo.diff then
+ vim.cmd.normal({ '[c', bang = true })
+ else
+ gitsigns.nav_hunk('prev')
+ end
+ end)
+
+ -- Actions
+ map('n', '<leader>hs', gitsigns.stage_hunk)
+ map('n', '<leader>hr', gitsigns.reset_hunk)
+ map('v', '<leader>hs', function() gitsigns.stage_hunk { vim.fn.line('.'), vim.fn.line('v') } end)
+ map('v', '<leader>hr', function() gitsigns.reset_hunk { vim.fn.line('.'), vim.fn.line('v') } end)
+ map('n', '<leader>hS', gitsigns.stage_buffer)
+ map('n', '<leader>hu', gitsigns.undo_stage_hunk)
+ map('n', '<leader>hR', gitsigns.reset_buffer)
+ map('n', '<leader>hp', gitsigns.preview_hunk)
+ map('n', '<leader>hb', function() gitsigns.blame_line { full = true } end)
+ map('n', '<leader>tb', gitsigns.toggle_current_line_blame)
+ map('n', '<leader>hd', gitsigns.diffthis)
+ map('n', '<leader>hD', function() gitsigns.diffthis('~') end)
+ map('n', '<leader>td', gitsigns.toggle_deleted)
+
+ -- Text object
+ map({ 'o', 'x' }, 'ih', ':<C-U>Gitsigns select_hunk<CR>')
+ end
+ }
+end
+
+return {
+ setup = setup
+}
diff --git a/configs/nvim/lua/crupest/nvim/plugins/init.lua b/configs/nvim/lua/crupest/nvim/plugins/init.lua
new file mode 100644
index 0000000..637c8e5
--- /dev/null
+++ b/configs/nvim/lua/crupest/nvim/plugins/init.lua
@@ -0,0 +1,11 @@
+local function setup()
+ require("crupest.nvim.plugins.lint").setup()
+ require("crupest.nvim.plugins.snip").setup()
+ require("crupest.nvim.plugins.cmp").setup()
+ require("crupest.nvim.plugins.telescope").setup()
+ require("crupest.nvim.plugins.gitsign").setup()
+end
+
+return {
+ setup = setup
+}
diff --git a/configs/nvim/lua/crupest/nvim/plugins/lint.lua b/configs/nvim/lua/crupest/nvim/plugins/lint.lua
index 2ba3e36..6649e74 100644
--- a/configs/nvim/lua/crupest/nvim/plugins/lint.lua
+++ b/configs/nvim/lua/crupest/nvim/plugins/lint.lua
@@ -1,23 +1,30 @@
local lint = require("lint")
-local find = require('crupest.system.find')
-local constants = require("crupest.constants")
+local find = require('crupest.utils.find')
+local is_win = vim.fn.has("win32") ~= 0
+local cspell_config_patterns = {
+ ".cspell.json",
+ "cspell.json",
+ ".cSpell.json",
+ "cSpell.json",
+ "cspell.config.js",
+ "cspell.config.cjs",
+ "cspell.config.json",
+ "cspell.config.yaml",
+ "cspell.config.yml",
+ "cspell.yaml",
+ "cspell.yml",
+}
local my_linters = {
{
name = "cspell",
exe_places = { "npm", "global" },
- config_files = constants.config_patterns.cspell,
- },
- {
- name = "eslint",
- exe_places = { "npm" },
- filetypes = constants.filetype_collections.js_ts,
- config_files = constants.config_patterns.nodejs,
+ config_files = cspell_config_patterns,
},
}
-local function run_lint(opt)
+local function run(opt)
if not opt then
opt = {}
end
@@ -44,8 +51,8 @@ local function run_lint(opt)
lint.try_lint(linter_names)
end
-local function setup_lint()
- if require('crupest.system').is_win then
+local function setup()
+ if is_win then
for _, l in ipairs(my_linters) do
local name = l.name
local linter = require('lint.linters.' .. name)
@@ -59,14 +66,16 @@ local function setup_lint()
vim.api.nvim_create_autocmd({ "BufWritePost" }, {
callback = function(opt)
- run_lint({
+ run({
buf = opt.buffer
})
end,
})
+
+ vim.keymap.set('n', '<leader>lr', run)
end
return {
- setup_lint = setup_lint,
- run_lint = run_lint
+ setup = setup,
+ run = run
}
diff --git a/configs/nvim/lua/crupest/nvim/plugins/others.lua b/configs/nvim/lua/crupest/nvim/plugins/others.lua
new file mode 100644
index 0000000..2d728ae
--- /dev/null
+++ b/configs/nvim/lua/crupest/nvim/plugins/others.lua
@@ -0,0 +1,20 @@
+local function setup()
+ require("neo-tree").setup {
+ filesystem = {
+ filtered_items = {
+ hide_dotfiles = false,
+ hide_gitignored = false,
+ hide_hidden = false, -- only works on Windows for hidden files/directories
+ },
+ use_libuv_file_watcher = true
+ }
+ }
+
+ require('lualine').setup {}
+
+ require("nvim-autopairs").setup {}
+end
+
+return {
+ setup = setup
+}
diff --git a/configs/nvim/lua/crupest/nvim/plugins/snip.lua b/configs/nvim/lua/crupest/nvim/plugins/snip.lua
index 1cf1b7c..1cf9800 100644
--- a/configs/nvim/lua/crupest/nvim/plugins/snip.lua
+++ b/configs/nvim/lua/crupest/nvim/plugins/snip.lua
@@ -26,7 +26,7 @@ local function copy(args)
return args[1]
end
-local function setup_snip()
+local function setup()
vim.keymap.set({ "i", "s" }, "<C-L>", function() luasnip.jump(1) end, { silent = true })
vim.keymap.set({ "i", "s" }, "<C-J>", function() luasnip.jump(-1) end, { silent = true })
@@ -69,6 +69,5 @@ local function setup_snip()
end
return {
- setup_snip = setup_snip,
- luasnip = luasnip
+ setup = setup,
}
diff --git a/configs/nvim/lua/crupest/nvim/plugins/telescope.lua b/configs/nvim/lua/crupest/nvim/plugins/telescope.lua
new file mode 100644
index 0000000..d68b7f2
--- /dev/null
+++ b/configs/nvim/lua/crupest/nvim/plugins/telescope.lua
@@ -0,0 +1,11 @@
+local function setup()
+ local builtin = require('telescope.builtin')
+ vim.keymap.set('n', '<leader>ff', builtin.find_files, {})
+ vim.keymap.set('n', '<leader>fg', builtin.live_grep, {})
+ vim.keymap.set('n', '<leader>fb', builtin.buffers, {})
+ vim.keymap.set('n', '<leader>fh', builtin.help_tags, {})
+end
+
+return {
+ setup = setup
+}
diff --git a/configs/nvim/lua/crupest/system.lua b/configs/nvim/lua/crupest/system.lua
deleted file mode 100644
index 982aaa4..0000000
--- a/configs/nvim/lua/crupest/system.lua
+++ /dev/null
@@ -1,7 +0,0 @@
-local is_win = vim.fn.has("win32") ~= 0
-local is_mac = vim.fn.has("mac") ~= 0
-
-return {
- is_win = is_win,
- is_mac = is_mac
-}
diff --git a/configs/nvim/lua/crupest/system/find.lua b/configs/nvim/lua/crupest/utils/find.lua
index 0876622..83968d2 100644
--- a/configs/nvim/lua/crupest/system/find.lua
+++ b/configs/nvim/lua/crupest/utils/find.lua
@@ -1,11 +1,10 @@
-local system = require("crupest.system")
-local fs = require("crupest.system.fs");
+local fs = require("crupest.utils.fs");
+local is_win = vim.fn.has("win32") ~= 0
local win_exe_exts = { "exe", "CMD", "cmd", "ps1" }
-
local function get_exe(path)
- if system.is_win then
+ if is_win then
for _, ext in ipairs(win_exe_exts) do
if string.find(path, "%." .. ext .. "$") and fs.isfile(path) then
return path
diff --git a/configs/nvim/lua/crupest/system/fs.lua b/configs/nvim/lua/crupest/utils/fs.lua
index d34c2f6..d34c2f6 100644
--- a/configs/nvim/lua/crupest/system/fs.lua
+++ b/configs/nvim/lua/crupest/utils/fs.lua
diff --git a/configs/nvim/lua/crupest/utils/nvim.lua b/configs/nvim/lua/crupest/utils/nvim.lua
new file mode 100644
index 0000000..ac732fd
--- /dev/null
+++ b/configs/nvim/lua/crupest/utils/nvim.lua
@@ -0,0 +1,44 @@
+local function list_listed_bufs()
+ local bufs = vim.api.nvim_list_bufs()
+ local result = {}
+ for _, v in ipairs(bufs) do
+ if vim.fn.buflisted(v) ~= 0 then
+ table.insert(result, v)
+ end
+ end
+ return result
+end
+
+-- list the windows that are currently editing the given buffer
+local function list_wins_editing_buf(buf)
+ local wins = vim.api.nvim_list_wins()
+ local result = {}
+ for _, win in ipairs(wins) do
+ if vim.api.nvim_win_get_buf(win) == buf then
+ table.insert(result, win)
+ end
+ end
+ return result
+end
+
+local function buf_is_normal(buf)
+ return vim.fn.bufexists(buf) ~= 0 and vim.fn.buflisted(buf) ~= 0
+end
+
+
+local function close_float()
+ local wins = vim.api.nvim_list_wins()
+ for _, v in ipairs(wins) do
+ if vim.api.nvim_win_get_config(v).relative ~= '' then
+ vim.api.nvim_win_close(v, false)
+ end
+ end
+end
+
+return {
+ list_listed_bufs = list_listed_bufs,
+ buf_is_normal = buf_is_normal,
+ list_wins_editing_buf = list_wins_editing_buf,
+ close_float = close_float,
+}
+
diff --git a/configs/nvim/lua/crupest/table.lua b/configs/nvim/lua/crupest/utils/table.lua
index 22419b0..22419b0 100644
--- a/configs/nvim/lua/crupest/table.lua
+++ b/configs/nvim/lua/crupest/utils/table.lua
diff --git a/configs/nvim/lua/plugins.lua b/configs/nvim/lua/plugins.lua
index 1e4ded9..d7d0247 100644
--- a/configs/nvim/lua/plugins.lua
+++ b/configs/nvim/lua/plugins.lua
@@ -2,7 +2,6 @@
return {
{ "catppuccin/nvim", name = "catppuccin", priority = 1000 },
"neovim/nvim-lspconfig",
- "Hoffs/omnisharp-extended-lsp.nvim",
"hrsh7th/nvim-cmp",
"hrsh7th/cmp-nvim-lsp",
"hrsh7th/cmp-buffer",
@@ -10,12 +9,15 @@ return {
"hrsh7th/cmp-cmdline",
"L3MON4D3/LuaSnip",
"saadparwaiz1/cmp_luasnip",
- "nvim-tree/nvim-web-devicons",
- "nvim-lua/plenary.nvim",
- "nvim-lualine/lualine.nvim",
- "nvim-telescope/telescope.nvim",
+ {
+ "nvim-lualine/lualine.nvim",
+ dependencies = { 'nvim-tree/nvim-web-devicons' }
+ },
+ {
+ "nvim-telescope/telescope.nvim",
+ dependencies = { 'nvim-lua/plenary.nvim' }
+ },
"windwp/nvim-autopairs",
- "mhartington/formatter.nvim",
"mfussenegger/nvim-lint",
"akinsho/toggleterm.nvim",
"lewis6991/gitsigns.nvim",
@@ -23,6 +25,7 @@ return {
"nvim-neo-tree/neo-tree.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
+ "nvim-tree/nvim-web-devicons",
"MunifTanjim/nui.nvim",
},
},