diff --git a/lua/plugins/code.lua b/lua/plugins/code.lua new file mode 100644 index 0000000..96297c3 --- /dev/null +++ b/lua/plugins/code.lua @@ -0,0 +1,105 @@ +return { + { + "windwp/nvim-autopairs", + lazy = true, + event = "InsertEnter", + opts = { + -- Treesitter config + check_ts = true, + ts_config = { + lua = { "string" }, -- do not add pair in this node + }, + + -- General config + map_cr = true, + }, + }, + { + "neovim/nvim-lspconfig", + dependencies = { + "williamboman/mason-lspconfig.nvim", + "hrsh7th/cmp-nvim-lsp", -- Interface for nvim-cmp + }, + init = function() + require("mason-lspconfig").setup_handlers { + function(server_name) + require("lspconfig")[server_name].setup { + capabilities = capabilites, + } + end + } + end + }, + { + "williamboman/mason-lspconfig.nvim", -- LSP Installer + dependencies = { + "williamboman/mason.nvim" + }, + opts = { + automatic_installation = true, + ensure_installed = { + -- May need cargo (>1.80), unzip and npm + "asm_lsp", + "bashls", + "clangd", + "neocmake", + "pyright", + }, + }, + }, + { + "hrsh7th/nvim-cmp", + event = "InsertEnter", + dependencies = { + -- Snippet engine + "L3MON4D3/LuaSnip", + "saadparwaiz1/cmp_luasnip", + + + -- Plugins + "hrsh7th/cmp-buffer", -- indexer + "hrsh7th/cmp-path", -- Autocomplete for filesystem paths + "hrsh7th/cmp-cmdline", -- Autocomplete for vims commandline + "hrsh7th/cmp-nvim-lua", -- Autocomplete for vim options + }, + 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" }, + { name = "buffer" }, + { name = "path" }, + }, + enabled = function() + local context = require("cmp.config.context") + -- disable in autocomplete in comments + return not (context.in_treesitter_capture("comment") or context.in_syntax_group("Comment")) + end + }) + + cmp.setup.cmdline({ '/', '?' }, { + mapping = cmp.mapping.preset.cmdline(), + sources = { + { name = 'buffer' } + } + } + ) + + cmp.setup.cmdline(':', { + mapping = cmp.mapping.preset.cmdline(), + sources = cmp.config.sources( + {{ name = 'path' }}, + {{ name = 'cmdline' }} + ), + matching = { disallow_symbol_nonprefix_matching = false } + }) + end + } +} diff --git a/lua/plugins/syntax.lua b/lua/plugins/syntax.lua index 486cc40..4d8e233 100644 --- a/lua/plugins/syntax.lua +++ b/lua/plugins/syntax.lua @@ -20,10 +20,12 @@ return { indent = { enable = true, }, - incremental_selection = { - init_selection = "", - - }, +--[[ incremental_selection = { + enable = true, + keymaps = { + init_selection = "", + } + }, ]]-- } - } + }, } diff --git a/lua/plugins/tooling.lua b/lua/plugins/tooling.lua new file mode 100644 index 0000000..52be722 --- /dev/null +++ b/lua/plugins/tooling.lua @@ -0,0 +1,6 @@ +return { + { + "williamboman/mason.nvim", + opts = {} + }, +}