diff --git a/after/plugin/cmp.lua b/after/plugin/cmp.lua index e77cc4ac..ad117758 100644 --- a/after/plugin/cmp.lua +++ b/after/plugin/cmp.lua @@ -1,47 +1,47 @@ -- [[ Configure nvim-cmp ]] -- See `:help cmp` -local cmp = require 'cmp' -local luasnip = require 'luasnip' -require('luasnip.loaders.from_vscode').lazy_load() -luasnip.config.setup {} - -cmp.setup { - snippet = { - expand = function(args) - luasnip.lsp_expand(args.body) - end, - }, - mapping = cmp.mapping.preset.insert { - [''] = cmp.mapping.select_next_item(), - [''] = cmp.mapping.select_prev_item(), - [''] = cmp.mapping.scroll_docs(-4), - [''] = cmp.mapping.scroll_docs(4), - [''] = cmp.mapping.complete {}, - [''] = cmp.mapping.confirm { - behavior = cmp.ConfirmBehavior.Replace, - select = true, - }, - [''] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_next_item() - elseif luasnip.expand_or_locally_jumpable() then - luasnip.expand_or_jump() - else - fallback() - end - end, { 'i', 's' }), - [''] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_prev_item() - elseif luasnip.locally_jumpable(-1) then - luasnip.jump(-1) - else - fallback() - end - end, { 'i', 's' }), - }, - sources = { - { name = 'nvim_lsp' }, - { name = 'luasnip' }, - }, -} +-- local cmp = require 'cmp' +-- local luasnip = require 'luasnip' +-- require('luasnip.loaders.from_vscode').lazy_load() +-- luasnip.config.setup {} +-- +-- cmp.setup { +-- snippet = { +-- expand = function(args) +-- luasnip.lsp_expand(args.body) +-- end, +-- }, +-- mapping = cmp.mapping.preset.insert { +-- [''] = cmp.mapping.select_next_item(), +-- [''] = cmp.mapping.select_prev_item(), +-- [''] = cmp.mapping.scroll_docs(-4), +-- [''] = cmp.mapping.scroll_docs(4), +-- [''] = cmp.mapping.complete {}, +-- [''] = cmp.mapping.confirm { +-- behavior = cmp.ConfirmBehavior.Replace, +-- select = true, +-- }, +-- [''] = cmp.mapping(function(fallback) +-- if cmp.visible() then +-- cmp.select_next_item() +-- elseif luasnip.expand_or_locally_jumpable() then +-- luasnip.expand_or_jump() +-- else +-- fallback() +-- end +-- end, { 'i', 's' }), +-- [''] = cmp.mapping(function(fallback) +-- if cmp.visible() then +-- cmp.select_prev_item() +-- elseif luasnip.locally_jumpable(-1) then +-- luasnip.jump(-1) +-- else +-- fallback() +-- end +-- end, { 'i', 's' }), +-- }, +-- sources = { +-- { name = 'nvim_lsp' }, +-- { name = 'luasnip' }, +-- }, +-- } diff --git a/after/plugin/lsp.lua b/after/plugin/lsp.lua index 08d74724..6b13d0e6 100644 --- a/after/plugin/lsp.lua +++ b/after/plugin/lsp.lua @@ -1,93 +1,93 @@ --- [[ Configure LSP ]] --- This function gets run when an LSP connects to a particular buffer. -local on_attach = function(_, bufnr) - -- NOTE: Remember that lua is a real programming language, and as such it is possible - -- to define small helper and utility functions so you don't have to repeat yourself - -- many times. - -- - -- In this case, we create a function that lets us more easily define mappings specific - -- for LSP related items. It sets the mode, buffer and description for us each time. - local nmap = function(keys, func, desc) - if desc then - desc = 'LSP: ' .. desc - end - - vim.keymap.set('n', keys, func, { buffer = bufnr, desc = desc }) - end - - nmap('rn', vim.lsp.buf.rename, '[R]e[n]ame') - nmap('ca', vim.lsp.buf.code_action, '[C]ode [A]ction') - - nmap('gd', vim.lsp.buf.definition, '[G]oto [D]efinition') - nmap('gr', require('telescope.builtin').lsp_references, '[G]oto [R]eferences') - nmap('gI', require('telescope.builtin').lsp_implementations, '[G]oto [I]mplementation') - nmap('D', vim.lsp.buf.type_definition, 'Type [D]efinition') - nmap('ds', require('telescope.builtin').lsp_document_symbols, '[D]ocument [S]ymbols') - nmap('ws', require('telescope.builtin').lsp_dynamic_workspace_symbols, '[W]orkspace [S]ymbols') - - -- See `:help K` for why this keymap - nmap('K', vim.lsp.buf.hover, 'Hover Documentation') - nmap('', vim.lsp.buf.signature_help, 'Signature Documentation') - - -- Lesser used LSP functionality - nmap('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration') - nmap('wa', vim.lsp.buf.add_workspace_folder, '[W]orkspace [A]dd Folder') - nmap('wr', vim.lsp.buf.remove_workspace_folder, '[W]orkspace [R]emove Folder') - nmap('wl', function() - print(vim.inspect(vim.lsp.buf.list_workspace_folders())) - end, '[W]orkspace [L]ist Folders') - - -- Create a command `:Format` local to the LSP buffer - vim.api.nvim_buf_create_user_command(bufnr, 'Format', function(_) - vim.lsp.buf.format() - end, { desc = 'Format current buffer with LSP' }) -end - --- Enable the following language servers --- Feel free to add/remove any LSPs that you want here. They will automatically be installed. +-- -- [[ Configure LSP ]] +-- -- This function gets run when an LSP connects to a particular buffer. +-- local on_attach = function(_, bufnr) +-- -- NOTE: Remember that lua is a real programming language, and as such it is possible +-- -- to define small helper and utility functions so you don't have to repeat yourself +-- -- many times. +-- -- +-- -- In this case, we create a function that lets us more easily define mappings specific +-- -- for LSP related items. It sets the mode, buffer and description for us each time. +-- local nmap = function(keys, func, desc) +-- if desc then +-- desc = 'LSP: ' .. desc +-- end -- --- Add any additional override configuration in the following tables. They will be passed to --- the `settings` field of the server config. You must look up that documentation yourself. +-- vim.keymap.set('n', keys, func, { buffer = bufnr, desc = desc }) +-- end -- --- If you want to override the default filetypes that your language server will attach to you can --- define the property 'filetypes' to the map in question. -local servers = { - -- clangd = {}, - -- gopls = {}, - -- pyright = {}, - -- rust_analyzer = {}, - -- tsserver = {}, - -- html = { filetypes = { 'html', 'twig', 'hbs'} }, - - lua_ls = { - Lua = { - workspace = { checkThirdParty = false }, - telemetry = { enable = false }, - }, - }, -} - --- Setup neovim lua configuration -require('neodev').setup() - --- nvim-cmp supports additional completion capabilities, so broadcast that to servers -local capabilities = vim.lsp.protocol.make_client_capabilities() -capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities) - --- Ensure the servers above are installed -local mason_lspconfig = require 'mason-lspconfig' - -mason_lspconfig.setup { - ensure_installed = vim.tbl_keys(servers), -} - -mason_lspconfig.setup_handlers { - function(server_name) - require('lspconfig')[server_name].setup { - capabilities = capabilities, - on_attach = on_attach, - settings = servers[server_name], - filetypes = (servers[server_name] or {}).filetypes, - } - end -} +-- nmap('rn', vim.lsp.buf.rename, '[R]e[n]ame') +-- nmap('ca', vim.lsp.buf.code_action, '[C]ode [A]ction') +-- +-- nmap('gd', vim.lsp.buf.definition, '[G]oto [D]efinition') +-- nmap('gr', require('telescope.builtin').lsp_references, '[G]oto [R]eferences') +-- nmap('gI', require('telescope.builtin').lsp_implementations, '[G]oto [I]mplementation') +-- nmap('D', vim.lsp.buf.type_definition, 'Type [D]efinition') +-- nmap('ds', require('telescope.builtin').lsp_document_symbols, '[D]ocument [S]ymbols') +-- nmap('ws', require('telescope.builtin').lsp_dynamic_workspace_symbols, '[W]orkspace [S]ymbols') +-- +-- -- See `:help K` for why this keymap +-- nmap('K', vim.lsp.buf.hover, 'Hover Documentation') +-- nmap('', vim.lsp.buf.signature_help, 'Signature Documentation') +-- +-- -- Lesser used LSP functionality +-- nmap('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration') +-- nmap('wa', vim.lsp.buf.add_workspace_folder, '[W]orkspace [A]dd Folder') +-- nmap('wr', vim.lsp.buf.remove_workspace_folder, '[W]orkspace [R]emove Folder') +-- nmap('wl', function() +-- print(vim.inspect(vim.lsp.buf.list_workspace_folders())) +-- end, '[W]orkspace [L]ist Folders') +-- +-- -- Create a command `:Format` local to the LSP buffer +-- vim.api.nvim_buf_create_user_command(bufnr, 'Format', function(_) +-- vim.lsp.buf.format() +-- end, { desc = 'Format current buffer with LSP' }) +-- end +-- +-- -- Enable the following language servers +-- -- Feel free to add/remove any LSPs that you want here. They will automatically be installed. +-- -- +-- -- Add any additional override configuration in the following tables. They will be passed to +-- -- the `settings` field of the server config. You must look up that documentation yourself. +-- -- +-- -- If you want to override the default filetypes that your language server will attach to you can +-- -- define the property 'filetypes' to the map in question. +-- local servers = { +-- -- clangd = {}, +-- -- gopls = {}, +-- -- pyright = {}, +-- -- rust_analyzer = {}, +-- -- tsserver = {}, +-- -- html = { filetypes = { 'html', 'twig', 'hbs'} }, +-- +-- lua_ls = { +-- Lua = { +-- workspace = { checkThirdParty = false }, +-- telemetry = { enable = false }, +-- }, +-- }, +-- } +-- +-- -- Setup neovim lua configuration +-- require('neodev').setup() +-- +-- -- nvim-cmp supports additional completion capabilities, so broadcast that to servers +-- local capabilities = vim.lsp.protocol.make_client_capabilities() +-- capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities) +-- +-- -- Ensure the servers above are installed +-- local mason_lspconfig = require 'mason-lspconfig' +-- +-- mason_lspconfig.setup { +-- ensure_installed = vim.tbl_keys(servers), +-- } +-- +-- mason_lspconfig.setup_handlers { +-- function(server_name) +-- require('lspconfig')[server_name].setup { +-- capabilities = capabilities, +-- on_attach = on_attach, +-- settings = servers[server_name], +-- filetypes = (servers[server_name] or {}).filetypes, +-- } +-- end +-- } diff --git a/after/plugin/neotree.lua b/after/plugin/neotree.lua index 3a7509c8..bb0b7995 100644 --- a/after/plugin/neotree.lua +++ b/after/plugin/neotree.lua @@ -1 +1,15 @@ +require('neo-tree').setup({ + event_handlers = { + { + -- On opening a file this event listener closes the Neotree window + event = "file_opened", + handler = function() + vim.cmd("Neotree toggle") + end, + id = "file_opened_event_handler" + } + } +}) vim.keymap.set('n', '', ':Neotree filesystem reveal left toggle', { desc = 'Toggles explorer tab'}) +vim.keymap.set('n', 'gs', ':Neotree float git_status', { desc = 'Shows git status' }) +--vim.keymap.set('n', 'b', ':Neotree toggle show buffers right') diff --git a/lua/custom/plugins/lsp-config.lua b/lua/custom/plugins/lsp-config.lua new file mode 100644 index 00000000..e046b7d9 --- /dev/null +++ b/lua/custom/plugins/lsp-config.lua @@ -0,0 +1,23 @@ +return { + { + "williamboman/mason.nvim", + config = function () + require('mason').setup() + end + }, + { + 'williamboman/mason-lspconfig.nvim', + config = function() + require("mason-lspconfig").setup { + ensure_installed = { "lua_ls", "pyright" }, + } + end + }, + { + "neovim/nvim-lspconfig", + config = function() + local lspconfig = require('lspconfig') + lspconfig.lua_ls.setup({}) + end + } +} diff --git a/lua/custom/plugins/init.lua b/lua/custom/plugins/neotree.lua similarity index 99% rename from lua/custom/plugins/init.lua rename to lua/custom/plugins/neotree.lua index bf889d12..c822878c 100644 --- a/lua/custom/plugins/init.lua +++ b/lua/custom/plugins/neotree.lua @@ -3,7 +3,6 @@ -- -- See the kickstart.nvim README for more information return { - { "nvim-neo-tree/neo-tree.nvim", branch = "v3.x", diff --git a/lua/pluginlist.lua b/lua/pluginlist.lua index 86f176c5..ae628fd3 100644 --- a/lua/pluginlist.lua +++ b/lua/pluginlist.lua @@ -11,38 +11,38 @@ return { -- NOTE: First, some plugins that don't require any configuration -- NOTE: This is where your plugins related to LSP can be installed. -- The configuration is done below. Search for lspconfig to find it below. - { - -- LSP Configuration & Plugins - 'neovim/nvim-lspconfig', - dependencies = { - -- Automatically install LSPs to stdpath for neovim - { 'williamboman/mason.nvim', config = true }, - 'williamboman/mason-lspconfig.nvim', + -- { + -- -- LSP Configuration & Plugins + -- 'neovim/nvim-lspconfig', + -- dependencies = { + -- -- Automatically install LSPs to stdpath for neovim + -- { 'williamboman/mason.nvim', config = true }, + -- 'williamboman/mason-lspconfig.nvim', + -- + -- -- Useful status updates for LSP + -- -- NOTE: `opts = {}` is the same as calling `require('fidget').setup({})` + -- { 'j-hui/fidget.nvim', tag = 'legacy', opts = {} }, + -- + -- -- Additional lua configuration, makes nvim stuff amazing! + -- 'folke/neodev.nvim', + -- }, + -- }, - -- Useful status updates for LSP - -- NOTE: `opts = {}` is the same as calling `require('fidget').setup({})` - { 'j-hui/fidget.nvim', tag = 'legacy', opts = {} }, - - -- Additional lua configuration, makes nvim stuff amazing! - 'folke/neodev.nvim', - }, - }, - - { - -- Autocompletion - 'hrsh7th/nvim-cmp', - dependencies = { - -- Snippet Engine & its associated nvim-cmp source - 'L3MON4D3/LuaSnip', - 'saadparwaiz1/cmp_luasnip', - - -- Adds LSP completion capabilities - 'hrsh7th/cmp-nvim-lsp', - - -- Adds a number of user-friendly snippets - 'rafamadriz/friendly-snippets', - }, - }, + -- { + -- -- Autocompletion + -- 'hrsh7th/nvim-cmp', + -- dependencies = { + -- -- Snippet Engine & its associated nvim-cmp source + -- 'L3MON4D3/LuaSnip', + -- 'saadparwaiz1/cmp_luasnip', + -- + -- -- Adds LSP completion capabilities + -- 'hrsh7th/cmp-nvim-lsp', + -- + -- -- Adds a number of user-friendly snippets + -- 'rafamadriz/friendly-snippets', + -- }, + -- }, -- Useful plugin to show you pending keybinds. { 'folke/which-key.nvim', opts = {} },