diff --git a/lazy-lock.json b/lazy-lock.json index b5017b8..fc7dbf8 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,11 +1,19 @@ { + "LuaSnip": { "branch": "master", "commit": "ce0a05ab4e2839e1c48d072c5236cce846a387bc" }, "buffer_manager.nvim": { "branch": "main", "commit": "fd36131b2b3e0f03fd6353ae2ffc88cf920b3bbb" }, - "hererocks": { "branch": "master", "commit": "ec640f26e25f4a8e16f236d78bf35ab72b197b29" }, - "lazy.nvim": { "branch": "main", "commit": "9005e8ede7ff9e6434818c32d99860d7154d0432" }, + "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" }, + "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, + "hererocks": { "branch": "master", "commit": "8bd2fcfdd65cfa7535ce39ea372a63b0bdb8e528" }, + "lazy.nvim": { "branch": "main", "commit": "0507e19289539396313503f6eb6b02bbe8a5e483" }, "lualine.nvim": { "branch": "master", "commit": "0a5a66803c7407767b799067986b4dc3036e1983" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "37a336b653f8594df75c827ed589f1c91d91ff6c" }, + "mason.nvim": { "branch": "main", "commit": "0950b15060067f752fde13a779a994f59516ce3d" }, + "nvim-cmp": { "branch": "main", "commit": "a110e12d0b58eefcf5b771f533fc2cf3050680ac" }, + "nvim-lspconfig": { "branch": "master", "commit": "7edfd6692ba17f8d4fe08d84142781898ab0a672" }, "plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "9ef21b2e6bb6ebeaf349a0781745549bbb870d27" }, - "telescope.nvim": { "branch": "master", "commit": "58ec6eca1c3704d130d749843e16fbf6c8cdc57e" }, + "telescope.nvim": { "branch": "master", "commit": "7bd2f9b72f8449780b79bcf351534e2cd36ec43a" }, "tokyonight.nvim": { "branch": "main", "commit": "30d7be361a7fbf187a881f17e574e9213d5108ea" }, "vim-wakatime": { "branch": "master", "commit": "3cb40867cb5a3120f9bef76eff88edc7f1dc1a23" } } \ No newline at end of file diff --git a/lua/core/keys.lua b/lua/core/keys.lua index 96a1d81..1303bb5 100644 --- a/lua/core/keys.lua +++ b/lua/core/keys.lua @@ -24,3 +24,8 @@ map("v", "r", "\"hy:%s/h//g") -- Buffer manager map("n", "b", ":lua require(\"buffer_manager.ui\").toggle_quick_menu()") + +-- LSP +map("n", "lf", "lua vim.lsp.buf.format { async = true }") +map("n", "la", "lua vim.lsp.buf.code_action()") +map("n", "lr", "lua vim.lsp.buf.rename()") diff --git a/lua/plugins/cmp.lua b/lua/plugins/cmp.lua new file mode 100644 index 0000000..8bcb3fb --- /dev/null +++ b/lua/plugins/cmp.lua @@ -0,0 +1,33 @@ +return { + "hrsh7th/nvim-cmp", + event = "InsertEnter", + dependencies = { + "hrsh7th/cmp-nvim-lsp", + "hrsh7th/cmp-buffer", + "L3MON4D3/LuaSnip", + "saadparwaiz1/cmp_luasnip" + }, + config = function() + local cmp = require("cmp") + + cmp.setup { + snippet = { + expand = function(args) + require("luasnip").lsp_expand(args.body) + end + }, + sources = { + { name = "nvim_lsp" }, + { name = "luasnip" } + }, + mapping = cmp.mapping.preset.insert({ + [""] = cmp.mapping.complete(), + [""] = cmp.mapping.scroll_docs(-4), + [""] = cmp.mapping.scroll_docs(4), + [""] = cmp.mapping.confirm({ select = true }), + [""] = cmp.mapping.select_next_item(), + [""] = cmp.mapping.select_prev_item() + }) + } + end +} diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua new file mode 100644 index 0000000..63909ec --- /dev/null +++ b/lua/plugins/lsp.lua @@ -0,0 +1,24 @@ +return { + "williamboman/mason-lspconfig.nvim", + dependencies = { + "williamboman/mason.nvim", + "neovim/nvim-lspconfig", + "hrsh7th/cmp-nvim-lsp" + }, + config = function() + local lspconfig = require("lspconfig") + local lsp_capabilities = require("cmp_nvim_lsp").default_capabilities() + + local defaultSetup = function(server) + lspconfig[server].setup { + capabilities = lsp_capabilities + } + end + + require("mason").setup() + require("mason-lspconfig").setup { + ensure_installed = {}, + handlers = { defaultSetup } + } + end +} diff --git a/lua/plugins/telescope.lua b/lua/plugins/telescope.lua index c81f376..c78d337 100644 --- a/lua/plugins/telescope.lua +++ b/lua/plugins/telescope.lua @@ -9,7 +9,6 @@ return { local builtin = require("telescope.builtin") telescope.setup() - telescope.load_extension("fzf") vim.keymap.set("n", "ff", builtin.fd, {}) @@ -18,7 +17,7 @@ return { vim.keymap.set("n", "", builtin.current_buffer_fuzzy_find, {}) -- Visual word highlight - local default_opts = {noremap = true, silent = true} + local default_opts = { noremap = true, silent = true } vim.api.nvim_set_keymap("v", "", "y:Telescope current_buffer_fuzzy_find default_text=0", {}) vim.api.nvim_set_keymap("v", "fw", "y:Telescope live_grep default_text=0", {}) vim.api.nvim_set_keymap("v", "ff", "y:Telescope fd default_text=0", {})