diff options
Diffstat (limited to '.config/nvim/lua/plugin')
| -rw-r--r-- | .config/nvim/lua/plugin/init.lua | 2 | ||||
| -rw-r--r-- | .config/nvim/lua/plugin/lsp.lua | 81 | ||||
| -rw-r--r-- | .config/nvim/lua/plugin/packer.lua | 15 | ||||
| -rw-r--r-- | .config/nvim/lua/plugin/setup.lua | 45 |
4 files changed, 91 insertions, 52 deletions
diff --git a/.config/nvim/lua/plugin/init.lua b/.config/nvim/lua/plugin/init.lua index 6cd9e35..4e60f98 100644 --- a/.config/nvim/lua/plugin/init.lua +++ b/.config/nvim/lua/plugin/init.lua @@ -1,3 +1,3 @@ require("plugin.packer") require("plugin.setup") --- require("plugin.lsp") +require("plugin.lsp") diff --git a/.config/nvim/lua/plugin/lsp.lua b/.config/nvim/lua/plugin/lsp.lua new file mode 100644 index 0000000..50eed85 --- /dev/null +++ b/.config/nvim/lua/plugin/lsp.lua @@ -0,0 +1,81 @@ +local lspconf = require("lspconfig") +local cmp = require("cmp") +local capabilities = require("cmp_nvim_lsp").default_capabilities() + +vim.opt.signcolumn = "yes" + +local servers = { + ["lua_ls"] = { + settings = { + Lua = { + runtime = { + version = "LuaJIT" + }, + }, + }, + }, + ["clangd"] = {}, +} + +for lsp, conf in pairs(servers) do + conf.capabilities = capabilities + lspconf[lsp].setup(conf) +end + +cmp.setup({ + preselect = "item", + completion = { + completeopt = "menu,menuone,noinsert", + }, + window = { + completion = cmp.config.window.bordered(), + documentation = cmp.config.window.bordered(), + }, + formatting = { + fields = { "menu", "abbr", "kind" }, + + format = function(entry, item) + local menu_icon = { + nvim_lsp = "L", + buffer = "B", + path = "P", + nvim_lua = "V", + } + + item.menu = menu_icon[entry.source.name] + + return item + end, + }, + mapping = { + ["<CR>"] = cmp.mapping.confirm({ select = false }), + ["<Tab>"] = cmp.mapping.select_next_item(), + ["<S-Tab>"] = cmp.mapping.select_prev_item(), + }, + sources = { + { name = "path" }, + { name = "nvim_lsp" }, + { name = "buffer", keyword_length = 3 }, + }, +}) + +vim.api.nvim_create_autocmd("LspAttach", { + group = vim.api.nvim_create_augroup("UserLspConfig", {}), + callback = function(ev) + vim.bo[ev.buf].omnifunc = "v:lua.vim.lsp.omnifunc" + 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", "gr", vim.lsp.buf.references, opts) + vim.keymap.set("n", "go", vim.lsp.buf.type_definition, opts) + vim.keymap.set("n", "<leader>ls", vim.lsp.buf.signature_help, opts) + vim.keymap.set("n", "<space>rn", vim.lsp.buf.rename, opts) + vim.keymap.set("n", "<leader>h", vim.lsp.buf.hover, opts) + vim.keymap.set({"n", "v"}, "<space>ca", vim.lsp.buf.code_action, opts) + vim.keymap.set("n", "<space>f", + function() + vim.lsp.buf.format({async = true}) + end, opts) + end +}) diff --git a/.config/nvim/lua/plugin/packer.lua b/.config/nvim/lua/plugin/packer.lua index 961af13..359ceab 100644 --- a/.config/nvim/lua/plugin/packer.lua +++ b/.config/nvim/lua/plugin/packer.lua @@ -1,16 +1,10 @@ return require("packer").startup(function(use) use {"wbthomason/packer.nvim"} - use {"windwp/nvim-autopairs"} - use { - "nvim-telescope/telescope.nvim", - requires = { - { "nvim-lua/plenary.nvim"} - }, - } + use {"ibhagwan/fzf-lua"} + use {"stevearc/oil.nvim"} use {"lewis6991/gitsigns.nvim"} - use {"numToStr/Comment.nvim"} use {"williamboman/mason.nvim"} use {"neovim/nvim-lspconfig"} @@ -21,9 +15,4 @@ return require("packer").startup(function(use) use {"hrsh7th/cmp-nvim-lua"} use {"michaeljsmith/vim-indent-object"} - - use { - "nvim-treesitter/nvim-treesitter", - run = ":TSUpdate" - } end) diff --git a/.config/nvim/lua/plugin/setup.lua b/.config/nvim/lua/plugin/setup.lua index ca2be66..7a53c6a 100644 --- a/.config/nvim/lua/plugin/setup.lua +++ b/.config/nvim/lua/plugin/setup.lua @@ -1,43 +1,12 @@ ---@diagnostic disable: undefined-global -require("gitsigns").setup {} -require("Comment").setup {} -require("mason").setup {} +require("gitsigns").setup({}) +require("mason").setup({}) -require("nvim-autopairs").setup { - fast_wrap = { - map = "<M-e>", - chars = { "<", "{", "[", "(", "\"", "'" }, - pattern = [=[[%"%"%>%]%)%}%,]]=], - end_key = "$", - keys = "qwertyuiopzxcvbnmasdfghjkl", - check_comma = true, - highlight = "Search", - highlight_grey="Comment" - } -} +require("oil").setup({}) +vim.keymap.set("n", "<leader>e", "<CMD>Oil<CR>", {}) -require("nvim-treesitter.configs").setup { - ensure_installed = { "c", "lua", "vimdoc" }, - sync_install = true, - highlight = { - enable = true, - additional_vim_regex_highlighting = true, - }, - indent = {enable = true}, -} +require("fzf-lua").setup(require("fzf-lua.profiles.telescope")) +vim.keymap.set("n", "<C-o>", function() FzfLua.files({}) end, {}) -local builtin = require("telescope.builtin") -require("telescope").setup { - pickers = { - find_files = { - theme = "dropdown", - } - } -} - -vim.keymap.set("n", "<C-o>", builtin.find_files, {}) -vim.keymap.set("n", "<C-g>", builtin.git_files, {}) -vim.keymap.set("n", "<C-f>", function() - builtin.grep_string({ search = vim.fn.input("grep>") }) -end) +vim.keymap.set("n", "<C-f>", function() FzfLua.grep() end, {}) |
